# 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 - .NET 基础工具库
[](https://www.apache.org/licenses/LICENSE-2.0.html)
[](https://www.nuget.org/packages/TUtility)
[](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) 协议。