diff --git a/README.md b/README.md index 8d707c3..c3a7216 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | 项目 | 版本 | 核心能力 | 依赖 | 详细技术手册 | | :--- | :--- | :--- | :--- | :--- | -| **go/cast** | v1.0.4 | 基础类型强转; 泛型工具; 序列化 | - | [./cast/README.md](https://apigo.cc/go/cast) | +| **go/cast** | v1.1.1 | 基础类型强转; 泛型工具; 序列化 | - | [./cast/README.md](https://apigo.cc/go/cast) | | **go/convert** | v1.0.4 | 深度数据映射; 智能类型穿透 | cast | [./convert/README.md](https://apigo.cc/go/convert) | | **go/time** | v1.0.4 | 时间解析; DSL 加减计算; 归一化时区 | cast | [./time/README.md](https://apigo.cc/go/time) | | **go/rand** | v1.0.4 | 高并发随机; 闭区间生成; 洗牌 | - | [./rand/README.md](https://apigo.cc/go/rand) | @@ -16,57 +16,88 @@ | **go/crypto-sm** | v1.0.4 | 国密 (SM2/3/4); 内存安全实现 | crypto, encoding, safe | [./crypto-sm/README.md](https://apigo.cc/crypto-sm) | | **go/id** | v1.0.4 | 分布式 ID; 数据库优化 | encoding, rand | [./id/README.md](https://apigo.cc/id) | | **go/file** | v1.0.4 | 高性能 IO; 智能序列化; 内存资源加密 | convert, encoding, safe | [./file/README.md](https://apigo.cc/file) | +| **go/shell** | v1.0.4 | 终端样式; 命令执行; 命令链管道 | cast | [./shell/README.md](https://apigo.cc/go/shell) | +| **go/config** | v1.0.4 | 文件配置加载; 环境覆盖; 结构映射 | cast, convert, file | [./config/README.md](https://apigo.cc/go/config) | +| **go/log** | v1.0.0 | 高性能日志; 脱敏; 多输出渠道 | cast, config, shell | [./log/README.md](https://apigo.cc/go/log) | +| **go/http** | v1.0.2 | 高性能 HTTP 客户端; 泛型绑定; 自动透传 | cast, convert, file, log | [./http/README.md](https://apigo.cc/go/http) | +| **go/redis** | v1.0.1 | 高性能 Redis 客户端; 分布式 ID; 发布订阅 | cast, config, crypto, id, log, safe | [./redis/README.md](https://apigo.cc/go/redis) | --- ## API 指南 -### 1. cast (类型转换与泛型工具) -- **意图**: 处理类型不确定数据,提供零错误处理、静默失败的转换机制。 +### cast (类型转换与泛型工具) +- **意图**: 处理类型不确定数据,提供零错误处理、静默失败的转换机制。内置高性能 FastEncoder/FastDecoder 消除 JSON 序列化摩擦。 - **API**: - **基础转换**: Int, Int64, Uint, Uint64, Float, Float64, String, Bool, Duration - **批量转换**: Ints, Strings - **泛型工具**: If, In, Ptr, ArrayToBoolMap - - **序列化**: ToJSON/MustToJSON, ToJSONBytes/MustJSONBytes, UnmarshalJSON/MustUnmarshalJSON, UnmarshalJSONBytes/MustUnmarshalJSONBytes, ToYAML/MustToYAML, YAMLBytes/MustYAMLBytes, UnmarshalYAML/MustUnmarshalYAML, UnmarshalYAMLBytes/MustUnmarshalYAMLBytes + - **序列化**: ToJSON/MustToJSON, ToJSONDesensitize, ToJSONDesensitizeBytes, ToJSONBytes/MustToJSONBytes, UnmarshalJSON/MustUnmarshalJSON, UnmarshalJSONBytes/MustUnmarshalJSONBytes, ToYAML/MustToYAML, YAMLBytes/MustYAMLBytes, UnmarshalYAML/MustUnmarshalYAML, UnmarshalYAMLBytes/MustUnmarshalYAMLBytes - **辅助工具**: Split, SplitArgs, UniqueAppend, JoinArgs, RealValue, GetLowerName, GetUpperName, FixUpperCase -### 2. convert (深度映射与平展) +### redis (高性能 Redis 客户端) +- **意图**: 极简、安全的 Redis 交互层。自动处理连接池、序列化与重试,集成高性能分布式 ID 与发布订阅。 +- **API**: + - **核心**: GetRedis, NewRedis, Do + - **结果绑定**: To[T], Int, String, Bool, ResultMap + - **扩展能力**: Subscribe, PUBLISH, NewIdMaker + +### convert (深度映射与平展) - **意图**: 智能递归对象映射,支持单值/切片穿透,Key 大小写模糊匹配。 - **API**: - **转换入口**: To - **结构平展**: FlatStruct, FlatStructWithUnexported, FlattenStruct -### 3. time (时区与DSL处理) +### time (时区与DSL处理) - **意图**: 基于 TimeZone 上下文的时区解析、DSL 加减计算、高性能计时与时长格式化。 - **API**: - **时区上下文**: New, Parse, Format, Add, Now - **计时工具**: Start, Record, Pause, Resume, Stop, Summarize, Describe - **时长处理**: DescribeDuration -### 4. rand (高性能并发随机) +### rand (高性能并发随机) - **意图**: 闭区间、高并发场景下的随机数与字节生成。 - **API**: Int, FastInt, Float, FastFloat, Byte, Bytes, Perm, Shuffle -### 5. crypto (通用加解密与Hash) +### crypto (通用加解密与Hash) - **意图**: 混合加密体系,强制执行内存安全与资源闭环。 - **API**: NewSymmetric, NewSymmetricAndEraseKey, NewAESCBC, NewAESGCM, NewAsymmetric, NewRSA, NewECDSA, NewED25519, NewX25519, EncryptBytes, MustEncrypt, DecryptBytes, MustDecrypt, TryDecrypt, Sign, MustSign, Verify, MustVerify, GenerateKeyPair, MD5, Sha256, Sha512, HmacSha256, Pkcs5Padding, AnsiX923Padding -### 6. crypto-sm (国密专项) +### crypto-sm (国密专项) - **意图**: 完全对齐 `go/crypto` 接口,覆盖 SM2/3/4 国密标准。 - **API**: NewSM2, NewSM2AndEraseKey, GenerateSM2KeyPair, Sm3, Sm3ToHex, Sm3ToBase64, NewSM4CBC, NewSM4GCM, Encrypt, Decrypt -### 7. encoding (编解码引擎) +### encoding (编解码引擎) - **意图**: 语义明确的编解码工具,支持二进制链路与整数填充编码。 - **API**: Hex, HexToString, MustUnHex, MustUnHexFromString, Base64, Base64ToString, UrlBase64, UrlBase64ToString, MustUnBase64, MustUnUrlBase64, UrlEncode, MustUnUrlEncode, HtmlEscape, MustUnHtmlEscape, Utf8Valid, NewIntEncoder, EncodeInt, AppendInt, DecodeInt, FillInt, ExchangeInt, HashInt -### 8. id (分布式与数据库ID) +### id (分布式与数据库ID) - **意图**: 生成唯一标识符,包含针对 MySQL/PostgreSQL 的写入性能优化。 - **API**: NewIDMaker, MakeID, Get, GetForMysql, GetForPostgreSQL -### 9. file (IO 与 内存文件系统) +### file (IO 与 内存文件系统) - **意图**: 高性能磁盘 IO、智能序列化及嵌入式资源管理。 - **API**: Exists, ReadBytes, MustReadBytes, Read, MustRead, ReadLines, WriteBytes, Write, Copy, CopyToFile, Remove, Move, Replace, Search, ReadDir, UnmarshalFile, MarshalFile, MarshalFilePretty, PatchFile, Compress, Decompress, Archive, Extract, AddFileToMemory, SafeLoadFileToMemory, LoadFilesToMemoryFromB64, LoadFilesToMemoryFromJSON -### 10. safe (内存安全闭环) +### safe (内存安全闭环) - **意图**: 提供底层内存保护、防核心转储及敏感数据安全擦除。 - **API**: NewSafeBuf, NewSafeBufAndErase, NewSafeString, Open, Close, LockMemory, UnlockMemory, DisableCoreDump, ZeroMemory, MakeSafeToken, EncryptChaCha20, DecryptChaCha20 + +### config (配置加载) +- **意图**: 从文件(JSON/YAML)加载配置并支持环境变量重写,支持嵌套映射。 +- **API**: Load + +### log (日志系统) +- **意图**: 高性能异步日志记录,内置敏感数据脱敏与多渠道(Console/File/ES)分发。 +- **API**: + - **Logger**: Info, Debug, Warning, Error (带堆栈), Log (通用) + - **管理**: New (创建子 Logger), SetLevel, SetDesensitization + - **显示**: Viewable (格式化为彩色文本) + +### http (高性能 HTTP 客户端) +- **意图**: 极致精简的请求封装,支持分段下载、泛型绑定与微服务 Header 自动透传。 +- **API**: + - **客户端**: NewClient, NewClientH2C + - **请求**: Get, Post, Put, Delete, Head, MPost (Multipart) + - **响应 (Result)**: String, Bytes, To, ToT (泛型), Save + - **工具**: RelayHeaders (透传列表)