# TUtility **Repository Path**: ThingsGateway/TUtility ## Basic Information - **Project Name**: TUtility - **Description**: TUtility 是一个轻量级、高性能、功能丰富的 .NET 工具库。提供模块化启动系统、对象池、池化异步任务、定时任务调度、JSON序列化扩展等功能。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2026-04-05 - **Last Updated**: 2026-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

TUtility Logo

TUtility - .NET 基础工具库

[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) [![NuGet](https://img.shields.io/nuget/v/TUtility.svg)](https://www.nuget.org/packages/TUtility) [![.NET](https://img.shields.io/badge/.NET-8.0%20%7C%2010.0-blue.svg)](https://dotnet.microsoft.com/) ThingsGateway 生态的通用基础设施、应用启动约定和编译期工具。
## 项目简介 TUtility 面向高并发、低分配和 AOT 场景,提供通用数据结构、异步原语、调度、日志、序列化、结果模型与协议辅助工具。应用宿主相关能力独立放在 `TUtility.App`,分析器和源生成器也以单独包发布,使用者可以按需引用。 ## 项目组成 | 模块 | 路径 | 说明 | | --- | --- | --- | | `TUtility` | `src/TUtility` | 通用类型、集合、缓存、异步原语、调度、日志、JSON 和帮助类 | | `TUtility.App` | `src/TUtility.App` | 模块化启动、配置加载、托管服务与应用选项 | | `TUtility.Analyzer` | `analyzer/TUtility.Analyzer` | 编译期代码质量和性能诊断 | | `TUtility.Generator` | `analyzer/TUtility.Generator` | `AppStartup` 编译期发现与启动代码生成 | | 自动化测试 | `test/TUtility.Test` | 核心集合、并发、安全、转换和调度测试 | | 性能测试 | `benchmark/TUtility.Benchmark` | BenchmarkDotNet 基准项目 | ## 核心能力 - 结果模型:`OperResult`、`OperResult`、分页输入和 `PagedList`。 - 高性能集合:对象池、空闲对象池、过期字典、内存缓存和 `UltraMpscQueue`。 - 并发工具:异步读写锁、异步自动重置事件、并发限制器和等待锁。 - 调度能力:Cron、同步/异步计划任务、`TimerX` 和智能触发调度器。 - 数据处理:字节、位、BCD、CRC、编码、路径、文件、LINQ 和表达式筛选辅助工具。 - 安全能力:JWT、RSA、对称加密、哈希和校验算法。 - 序列化:基于 `System.Text.Json` 的统一服务、上下文和常用类型转换器。 - 日志与运行信息:控制台/文本日志、日志读取、机器信息和运行时环境辅助。 - 应用启动:按顺序加载 `AppStartup`,由源生成器完成编译期注册。 ## 安装 只使用核心工具: ```bash dotnet add package TUtility ``` 需要模块化应用启动和配置能力: ```bash dotnet add package TUtility.App dotnet add package TUtility.Generator ``` 需要编译期诊断: ```bash dotnet add package TUtility.Analyzer ``` ## 项目结构 ```text TUtility/ |-- analyzer/ | |-- TUtility.Analyzer/ | `-- TUtility.Generator/ |-- src/ | |-- TUtility/ | `-- TUtility.App/ |-- test/TUtility.Test/ |-- benchmark/TUtility.Benchmark/ |-- Directory.Build.props `-- TUtility.slnx ``` ## 构建与测试 ```bash dotnet restore TUtility.slnx dotnet build TUtility.slnx -c Release dotnet test test/TUtility.Test/TUtility.Test.csproj -c Release ``` Release 构建会生成 NuGet 包并输出到上级 `nupkgs` 目录。 ## 致谢 - [PooledAwait](https://github.com/mgravell/PooledAwait) - [NewLife.Core](https://gitee.com/NewLifeX/X) - [YitIdHelper](https://github.com/yitter/IdGenerator) ## 相关资源 - 官方文档:https://runtime.thingsgateway.cn/ - Gitee:https://gitee.com/diego2098/ThingsGateway - GitHub:https://github.com/kimdiego2098/ThingsGateway - QQ 群:605534569 ## 许可证 本项目使用 [Apache-2.0](LICENSE) 协议。