guidomantilla/yarumo
GitHub: guidomantilla/yarumo
Yarumo 是一个模块化 Go 工具包,为后端应用提供通用工具、配置管理、生命周期控制和智能推理功能。
Stars: 0 | Forks: 0
# Yarumo
[](https://github.com/guidomantilla/yarumo/actions/workflows/build.yml)
[](https://opensource.org/licenses/Apache-2.0)
[](https://go.dev/)
一个用于构建后端应用的模块化 Go 工具包。Yarumo 提供了涵盖通用操作、配置引导、生命周期管理、可观测性、数学以及多范式推理引擎的基础包——旨在组合,而非强加。
## 模块
Yarumo 以 Go 工作区的形式组织,包含可独立导入的模块。
| 模块 | 导入路径 | 描述 |
|--------|-------------|-------------|
| **common** | `github.com/guidomantilla/yarumo/core/common` | 核心库——包含16个包,覆盖断言、加密、错误处理、HTTP、gRPC、日志记录等 |
| **config** | `github.com/guidomantilla/yarumo/config` | 一次性引导,用于通过环境变量进行应用配置 |
| **managed** | `github.com/guidomantilla/yarumo/managed` | 组件生命周期管理(启动/停止/完成) |
| **managed/telemetry/otel** | `github.com/guidomantilla/yarumo/core/telemetry/otel` | OpenTelemetry 设置,用于追踪、指标和日志记录 |
| **maths** | `github.com/guidomantilla/yarumo/maths` | 数学基元——命题逻辑、离散概率、模糊逻辑 |
| **inference** | `github.com/guidomantilla/yarumo/inference` | 多范式推理引擎——经典、贝叶斯、模糊推理 |
### 依赖关系图
```
inference → maths → common
telemetry/otel managed config
│ │ │
└──────────────┴─────────┘
│
common
```
### 通用包
| 包 | 用途 |
|---------|---------|
| `assert` | 运行时断言 |
| `cast` | 类型转换工具 |
| `constraints` | 泛型类型约束 |
| `cron` | Cron 调度 |
| `crypto` | 哈希、签名器(HMAC, ECDSA, Ed25519, RSA-PSS)、加密器(AEAD, RSA-OAEP)、证书、密码、令牌 |
| `diagnostics` | 飞行记录器与追踪 |
| `errs` | 类型化错误处理 |
| `grpc` | gRPC 工具 |
| `http` | HTTP 客户端及辅助函数 |
| `log` | 结构化日志记录 (slog) |
| `pointer` | 安全的指针操作 |
| `random` | 随机值生成 |
| `rest` | REST API 工具 |
| `types` | 通用类型定义 |
| `uids` | ID 生成(UUID, ULID, XID, CUID2, NanoID) |
| `utils` | 通用工具 |
### 数学包
| 包 | 用途 |
|---------|---------|
| `logic` | 命题逻辑——公式、求值、转换(NNF/CNF/DNF)、化简(18条规则)、分析 |
| `logic/parser` | 支持 Unicode 运算符和关键字的递归下降解析器 |
| `logic/sat` | SAT 求解器(DPLL 算法) |
| `logic/entailment` | 逻辑蕴含与等价性检查 |
| `probability` | 离散概率——条件概率表、因子、贝叶斯定理、分布、熵 |
| `fuzzy` | 模糊逻辑——隶属函数、t-范数/t-余范数、去模糊化方法 |
### 推理引擎
| 包 | 用途 |
|---------|---------|
| `classical/engine` | 正向与反向链式推理,带溯源追踪 |
| `classical/rules` | 带优先级和条件的规则定义 |
| `classical/facts` | 支持断言/撤销/克隆操作的事实库 |
| `classical/explain` | 带逐步溯源的执行追踪 |
| `bayesian/engine` | 精确推理——枚举和变量消除算法 |
| `bayesian/network` | 带 DAG 验证的贝叶斯网络定义 |
| `bayesian/evidence` | 用于观测变量的证据库 |
| `bayesian/explain` | 带后验分布的推理追踪 |
| `fuzzy/engine` | Mamdani 和 Sugeno 推理方法 |
| `fuzzy/variable` | 带模糊化的语言变量 |
| `fuzzy/rules` | 带条件、权重和 AND/OR 运算符的模糊规则 |
| `fuzzy/explain` | 带隶属度和激活度的推理追踪 |
## 入门指南
### 要求
- Go 1.25+
- [graphviz](https://graphviz.org/)(用于生成依赖关系图)
### 安装
```
go get github.com/guidomantilla/yarumo/core/common@latest
go get github.com/guidomantilla/yarumo/maths@latest
go get github.com/guidomantilla/yarumo/inference@latest
```
### 工具链
```
make install # Install dev tools (linter, coverage, etc.)
make validate # Run full validation: tidy, generate, format, vet, lint, coverage
make build # Full build: validate + vulnerability check
```
## 许可证
[Apache License 2.0](LICENSE)
标签:API集成, ETW劫持, GET参数, Go语言, gRPC, OpenTelemetry, 加密, 可组合, 可观测性, 后端开发, 基础库, 工具包, 应用程序构建, 推理引擎, 数学计算, 断言, 日志审计, 日志记录, 概率逻辑, 模块化, 模糊逻辑, 漏洞扫描器, 生命周期管理, 用户代理, 程序破解, 经典推理, 贝叶斯推理, 错误处理