x

module
v0.0.0-...-3bb151c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2026 License: MIT

README

x

x 是一个 Go 公共库集合,提供可复用的基础能力与测试辅助组件。

背景

将跨项目的通用模块(JSON 处理、断言、日志、泛型工具等)收敛到一处,避免在多个仓库中重复维护。

快速开始

just go test  # 运行测试
just go vet   # 代码检查

目录索引

  • anyjson:动态 JSON 值表示,以及 diff、merge、transform 等操作
  • cmp:可组合断言谓词与结构化错误
  • container/list:泛型双向链表实现
  • context:类型化上下文槽位和值注入辅助
  • datauri:data URI 的解析、编码与文本序列化
  • encoding:围绕 encoding.TextMarshaler / encoding.TextUnmarshaler 的通用文本编解码辅助
  • iter:标准库 iter 的轻量辅助封装
  • logr:轻量日志抽象、上下文注入和日志级别辅助
  • logr/sloglogr 与标准库 log/slog 的适配
  • ptr:基础值到指针的便捷转换
  • reflect:零值判断、类型名称和结构标签等反射辅助
  • slices:切片相关的轻量泛型辅助函数
  • sync:对标准库 sync 的泛型补充封装
  • sync/singleflight:按键去重的并发调用抑制
  • testing:旧版测试断言入口,已弃用,建议改用 testing/v2
  • testing/bdd:旧版 BDD 测试辅助,已弃用,建议改用 testing/v2
  • testing/lines:按行表示文本和生成行级 diff 的辅助
  • testing/snapshot:基于 txtar 的测试快照装载、比较和更新
  • testing/v2:当前推荐的测试断言 API
  • types:桥接 reflect.Typego/types.Type 的统一类型抽象
  • .github/workflows:仓库 CI 配置

工具链入口

  • tool/go:Go 工具链执行入口(just go test / just go vet / just go fmt

继续阅读

  • Go 模块定义见 go.mod
  • 仓库级执行入口见 justfile
  • API 文档见 pkg.go.dev
  • 各包的导出能力与用法以源码和 Go doc 为准

Directories

Path Synopsis
Package anyjson 提供面向动态 JSON 值的统一表示,以及 diff、merge、transform 等操作能力。
Package anyjson 提供面向动态 JSON 值的统一表示,以及 diff、merge、transform 等操作能力。
Package cmp 提供可组合的断言谓词,返回结构化错误,便于测试和逐层定位失败原因。
Package cmp 提供可组合的断言谓词,返回结构化错误,便于测试和逐层定位失败原因。
container
list
Package list 提供带泛型的双向链表实现,行为与标准库 container/list 接近,但值类型更明确。
Package list 提供带泛型的双向链表实现,行为与标准库 container/list 接近,但值类型更明确。
Package context 提供类型化上下文槽位和更轻量的值注入辅助。
Package context 提供类型化上下文槽位和更轻量的值注入辅助。
Package datauri 提供 data URI 的解析、编码与文本序列化能力。
Package datauri 提供 data URI 的解析、编码与文本序列化能力。
Package encoding 提供围绕 encoding.TextMarshaler 和 encoding.TextUnmarshaler 的通用文本编解码辅助。
Package encoding 提供围绕 encoding.TextMarshaler 和 encoding.TextUnmarshaler 的通用文本编解码辅助。
Package iter 提供围绕标准 iter 包的轻量辅助封装。
Package iter 提供围绕标准 iter 包的轻量辅助封装。
Package logr 定义仓库内使用的轻量日志抽象,以及上下文注入和日志级别辅助。
Package logr 定义仓库内使用的轻量日志抽象,以及上下文注入和日志级别辅助。
slog
Package slog 提供 logr.Logger 与标准库 log/slog 之间的适配实现。
Package slog 提供 logr.Logger 与标准库 log/slog 之间的适配实现。
Package ptr 提供基础值到指针的便捷转换。
Package ptr 提供基础值到指针的便捷转换。
Package reflect 提供对标准库 reflect 的补充能力,聚焦零值判断、类型名称和结构标签解析等常见场景。
Package reflect 提供对标准库 reflect 的补充能力,聚焦零值判断、类型名称和结构标签解析等常见场景。
Package slices 提供面向切片的轻量泛型辅助函数。
Package slices 提供面向切片的轻量泛型辅助函数。
Package sync 提供对标准库 sync 的泛型补充封装。
Package sync 提供对标准库 sync 的泛型补充封装。
singleflight
Package singleflight 提供按键去重的并发调用抑制机制。
Package singleflight 提供按键去重的并发调用抑制机制。
Package testing 是旧版测试入口,已弃用。
Package testing 是旧版测试入口,已弃用。
bdd
Package bdd Deprecated use testing/v2 instead
Package bdd Deprecated use testing/v2 instead
lines
Package lines 提供按行表示文本以及生成行级 diff 的辅助能力。
Package lines 提供按行表示文本以及生成行级 diff 的辅助能力。
snapshot
Package snapshot 提供基于 txtar 的测试快照装载、比较和更新能力。
Package snapshot 提供基于 txtar 的测试快照装载、比较和更新能力。
v2
Package v2 提供当前推荐使用的测试断言 API,覆盖值检查、错误检查和快照检查等能力。
Package v2 提供当前推荐使用的测试断言 API,覆盖值检查、错误检查和快照检查等能力。
Package types 提供统一抽象,桥接 reflect.Type 与 go/types.Type,便于在运行时与静态类型系统之间做一致的类型分析。
Package types 提供统一抽象,桥接 reflect.Type 与 go/types.Type,便于在运行时与静态类型系统之间做一致的类型分析。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL