evorule_cli/lib.rs
1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Copyright (C) 2026 EvoRule Project
3// This file is part of EvoRule, licensed under GNU Affero General Public License v3 or later.
4//! `evorule` CLI 库入口 —— 本地 JSON 规则执行工具(圈 2 合规刚需)
5//!
6//! # 定位
7//! 本 crate 同时构建为**库 + 二进制**(lib + bin):
8//! - 库形式暴露内部模块,使文档示例(doc-tests)可编译执行,保证文档与实现一致
9//! - 二进制入口见 `main.rs`(`evorule` 命令)
10//!
11//! # 模块
12//! - `cli` — clap 参数定义(子命令解析)
13//! - `commands` — 各子命令实现(validate / run / replay / diff / verify-chain)
14//! - `error` — `CliError` 统一错误类型与退出码映射
15//! - `executor` — 规则执行(调 evorule-tcb 纯函数)
16//! - `fact_log` — fact log 读写
17//! - `hash` — BLAKE3 哈希(re-export evorule-reactor 单一真相源)
18//! - `io_util` — I/O 工具
19//! - `output` — 人类可读输出格式化
20//!
21//! # 设计原则
22//! - **零网络**:任何外联必须显式 opt-in(本版本无网络调用)
23//! - **零遥测**:无任何隐式上报
24//! - **零系统依赖**:musl 静态链接(目标: 单一可执行文件)
25//! - **审计友好**:每条 fact 含 blake3 哈希链(与 evorule-governance 互通,可验真)
26
27#![forbid(unsafe_code)]
28
29pub mod cli;
30pub mod commands;
31pub mod error;
32pub mod executor;
33pub mod fact_log;
34pub mod hash;
35pub mod io_util;
36pub mod output;
37
38// 顶层 re-export:doc-tests 使用 `use evorule_cli::CliError;`
39pub use error::CliError;