refactor: enforce layered crates and Rust audit gates

This commit is contained in:
Horldsence
2026-09-24 13:00:03 +08:00
parent af151525d1
commit 8a582fc102
67 changed files with 3918 additions and 581 deletions
+17 -4
View File
@@ -13,6 +13,7 @@
- **依赖必须无环**:允许依赖同层或更低抽象,但禁止反向控制依赖和隐藏的完整链路打包。
- **std,禁止 unsafe**:workspace 使用 `unsafe_code = "forbid"`;允许使用提供安全 API 的第三方依赖。
- **实时调度交给 systemd**:进程不调用 libc FFI,不实现 `SCHED_FIFO` 或 `mlockall`。
- **二级语义分层**:crate 名不变,manifest 按 `crates/<layer>/<domain>` 组织;依赖只能由高层指向低层。
- **crate 内保持扁平**:只允许 Cargo 惯例目录 `src`、`tests`;`src` 内不建立模块子目录。
- **安全边界独立于控制律**:总线负责反馈新鲜度、命令租约和零电流;控制器通过策略接口组合。
@@ -26,11 +27,13 @@
协议
motor-protocol C620/C610、GM6020 编解码、多圈与 ID
delta10-protocol DETA10 帧布局与解码
dr16-protocol DJI DR16 D-BUS 帧布局与解码
驱动
socketcan Linux SocketCAN ↔ CanLink
slcan Lawicel 串口 CAN ↔ CanLink
delta10 DETA10 IMU 驱动
dr16 DR16 D-BUS 串口接收驱动
设备与运行时
motor Motor 能力 trait、状态、命令、减速比、注册表、EffortPolicy
@@ -53,20 +56,29 @@
chassisd 底盘守护进程二进制
spin chassis / motor 台架二进制
chassis-tune 自动整定二进制与报告/绘图适配
验证
integration-tests 跨层闭环、语义一致性与 vcan 集成测试
```
共 21 个 crate。crate 名不使用 `rm-` 等无领域含义的统一前缀。
共 24 个 crate(含顶层 `verification/integration` 集成测试包)。crate 名不使用 `rm-` 等无领域含义的统一前缀。
## 3. 允许依赖
机器可读规则见 [`config/dependency-policy.toml`](config/dependency-policy.toml) 和
[`docs/dependencies.md`](docs/dependencies.md)。`just audit` 同时检查层 rank、正常/dev 依赖、
外部库职责和 trait 边界;正常与 dev 依赖都必须单向。
主要边如下:
```text
motor-protocol -> can
delta10-protocol -> can, imu
dr16-protocol -> (无内部依赖)
socketcan -> can
slcan -> can
delta10 -> can, imu, delta10-protocol
dr16 -> dr16-protocol
motor -> can, motor-protocol
esc-bus -> can, motor, motor-protocol
@@ -82,8 +94,8 @@ tuning -> pid, motor-control, motor-model, sim-harness, experiment
chassis-config -> esc-bus, motor-control, motor-protocol, mecanum
bench -> can, esc-bus, experiment, motor, motor-control, socketcan, slcan
chassisd -> chassis-config, esc-bus, mecanum, motor-control, sim-harness, socketcan
spin -> bench, esc-bus, motor-control, socketcan, slcan
chassisd -> chassis-config, dr16, esc-bus, mecanum, motor-control, sim-harness, socketcan
spin -> bench, dr16, esc-bus, motor-control, socketcan, slcan
chassis-tune -> bench, chassis-config, experiment, sim-harness, tuning
```
@@ -136,7 +148,8 @@ tests/*.rs # 可选集成测试
- 四轮 ESC 总线、命令租约、反馈离线保护、外部控制策略。
- PID、速度/位置/串级/前馈、麦轮运动学。
- 电机模型、总线损伤、同步/异步闭环、参数搜索、预设与报告。
- `chassisd --mock`、`spin chassis|motor`、`chassis-tune`。
- `chassisd --mock`、`spin chassis|motor|rc`、`chassis-tune`。
- DR16/D-BUS 遥控输入、S1 使能、断流失能和 500 ms 速度斜坡。
未实现: