
从源码构建sentrux并贡献代码Rust Workspace结构、模块分工与开发环境完全教程【免费下载链接】sentruxReal-time architectural sensor that helps AI agents close the feedback loop, enabling recursive self-improvement of code quality. Pure Rust.项目地址: https://gitcode.com/gh_mirrors/se/sentruxsentrux 是一款纯 Rust 编写的实时代码架构传感器Architectural Sensor以 Treemap 可视化的方式帮助 AI Agent 感知代码质量、闭合扫描→评分→改进的反馈环。本文带你从源码构建这个 Rust Workspace 项目拆解它的模块分工并准备好你的开发环境为第一次贡献代码铺平道路 一、准备工作克隆仓库并搭建 Rust 开发环境构建 sentrux 只需要官方 Rust 工具链无任何额外运行时依赖——这正是Pure Rust. Single binary.的承诺。前置要求Rust 1.75推荐 rustup 安装curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | shLinux 用户需要系统图形库如libwayland-dev、libxkbcommon-dev以支持 egui/wgpu 窗口后端获取源码git clone https://gitcode.com/gh_mirrors/se/sentrux cd sentrux cargo build --release首次构建会编译约 40 个依赖 crate耐心稍等几分钟即可。构建产物为target/release/sentrux单文件二进制直接运行即可打开 GUI。二、Workspace 结构两个 crate 各司其职sentrux 是一个典型的 Rust Workspace由根目录的 Cargo.toml 统一管理sentrux/ ├── Cargo.toml # Workspace 定义 共享依赖 ├── sentrux-core/ # 核心库分析、指标、布局、渲染、UI └── sentrux-bin/ # 入口层CLI 参数解析 三种模式装配┌─────────────────────────────────────────────┐ │ sentrux-binsentrux 二进制入口 │ │ GUI 模式 / mcp 模式 / check / gate │ └──────────────────┬──────────────────────────┘ │ path 依赖 ┌──────────────────▼──────────────────────────┐ │ sentrux-core分析引擎库 │ │ analysis → metrics → layout → renderer │ └─────────────────────────────────────────────┘为什么这样拆分设计意图写得很直白见 sentrux-bin/src/lib.rssentrux-core—— 一切逻辑都在这里源码扫描、依赖图构建、质量指标计算、Treemap 布局、egui 界面、MCP 服务器。所有模块都是pub方便外部 crate 复用如私有sentrux-procrate。sentrux-bin—— 只是接线员。它用 clap 定义命令行参数然后启动 GUI、MCP 服务器或 CI 检查模式之一自身几乎不含业务逻辑。根 Cargo.toml 还统一了eframe 0.31、egui 0.31两个 UI 依赖版本并配置了 release 优化opt-level 3lto thin。三、sentrux-core 模块分工一次数据流经七大模块sentrux-core 是整个项目的心脏见 sentrux-core/src/lib.rs代码扫描到像素上屏的完整数据流如下模块职责关键内容analysis扫描与解析文件系统遍历、tree-sitter 解析 52 种语言、import 解析、构建 import/call/inherit 三张依赖图metrics质量指标结构耦合度、循环依赖、God-file 检测、圈复杂度、0–10000 分质量信号入口函数compute_healthlayout布局引擎将文件树转换为带位置的矩形和路由后的边squarified treemap 或 blueprint 网格两种模式renderer渲染管线纯函数式绘制矩形、依赖边、热力覆盖层、小地图、徽标无任何副作用app应用层SentruxApp实现 egui 界面管理扫描/布局后台线程与 crossbeam 消息通道core共享类型FileNode、Snapshot、边类型、设置与主题——只放词汇表不放业务逻辑license/pro_registry许可与注册版本档位校验、Pro 工具注册几个值得学习的工程细节插件化语言支持plugins/目录下每种语言一个plugin.toml tree-sitter 查询文件如 plugins/rust/plugin.toml二进制内不含任何语言知识sentrux plugin add-standard一条命令装齐 52 种语言。纯函数渲染renderer通过RenderContext只读结构获取数据刻意切断对 app 状态的依赖方便测试与替换后端。调试开关设置环境变量SENTRUX_DEBUG1后debug_log!宏定义于 lib.rs才会输出调试信息Release 构建默认静默。四、sentrux-bin一个入口三种模式入口极其精简sentrux-bin/src/main.rs 只有一行——调用sentrux_bin::run()。真正的装配逻辑在 sentrux-bin/src/main_impl.rs用 clap derive 定义了四种形态命令模式用途sentrux [path]GUI 模式默认打开实时 Treemap 可视化窗口sentrux --mcpMCP 模式启动 Model Context Protocol 服务器供 AI Agent 调用 9 个工具sentrux check .检查模式执行.sentrux/rules.toml架构规则退出码 0/1CI 友好sentrux gate --save .质量门禁保存基线后对比捕捉 Agent 会话期间的结构退化五、日常开发工作流从修改到验证1. 本地快速迭代GUI 调试cargo run -- /path/to/your/project # debug 构建启动 GUI2. 跑测试项目测试覆盖率很高analysis、metrics、layout等模块都带独立的tests.rs/tests2.rs如 sentrux-core/src/analysis/graph/tests.rscargo test # 全量测试 cargo test -p sentrux-core metrics # 只跑指标模块3. Release 构建cargo build --release # opt-level3 thin LTO4. Linux GPU 回退若 GUI 启动失败可强制指定渲染后端WGPU_BACKENDvulkan sentrux # 强制 Vulkan WGPU_BACKENDgl sentrux # 强制 OpenGL六、第一次贡献如何找到合适的切入点选一个语言插件——最简单、最独立的贡献方式。参考 plugins/go/一个plugin.toml加一个tags.scm查询文件即可让 sentrux 理解一种新语言。补指标或修 bug——阅读 docs/quality-signal-design.md 理解质量信号模型再到sentrux-core/src/metrics/下动手每个子模块都自带测试。遵循分层纪律——core只放共享类型、renderer保持纯函数、业务逻辑不要漏进sentrux-bin。对照 docs/pro-architecture.md 可以看清分层边界。本地验证三件套cargo build→cargo test→cargo run打开 GUI 确认无回归然后提交 PR。总结sentrux 用两个 crate 就讲清了分析引擎与入口装配的分离艺术sentrux-core七大模块形成扫描 → 指标 → 布局 → 渲染的单向数据流sentrux-bin仅负责以 GUI/MCP/Check/Gate 四种形态启动它。现在你已能独立从源码构建它、读懂它的每一层分工——去提交你的第一个 PR 吧一个实时架构传感器正等待更多贡献者 【免费下载链接】sentruxReal-time architectural sensor that helps AI agents close the feedback loop, enabling recursive self-improvement of code quality. Pure Rust.项目地址: https://gitcode.com/gh_mirrors/se/sentrux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考