全域弹性伸缩
同一套架构、同一份核心代码,从 32KB RAM 的 STM32 到 16GB 内存的服务器,零修改运行。
核心理念
AxonCog 最关键的工程优势是弹性伸缩。这不是两套代码分别做端侧和云端, 而是同一套代码通过编译时 feature gate 自动适配不同资源约束。
关键在于三点:HV 向量固定 1256 字节(不因平台变化)、核心算法不依赖动态内存分配(no_std 兼容)、 传输层和插件层通过 trait 抽象解耦(平台特定代码隔离在 trait 实现中)。 这使得同一份核心代码可以在完全不同的硬件平台上编译运行,无需任何修改。
mcu feature 三级裁剪
同一套代码在不同资源约束下的弹性运行。MCU 模式下所有核心功能(HV 编码、场协同、决策、传输)全部可用,只是模板数和节点数缩减。
| 模式 | 模板数 | 节点数 | 动态记忆 | 内存占用 |
|---|---|---|---|---|
| 桌面模式 | 1024 | 64 | 32条 | ~1.1MB |
| 嵌入式模式 | 64 | 16 | 8条 | ~200KB |
| MCU 模式 | 8 | 8 | 4条 | ~27KB |
注意:三级模式之间不是"功能阉割",而是"资源适配"。所有核心功能(HV 编码、场协同、决策、传输)在三级模式下都完整可用。 MCU 模式下裁剪的只是模板数量和节点数量,不是功能本身。
Feature Gate 三级体系
每个 Crate 都有 std / alloc / no_std 三级 feature gate,根据目标平台自动裁剪
std完整标准库模式
HashMap、Vec、String、文件 I/O、网络栈
alloc堆分配可用,无标准库
Vec、Box、String(无文件 I/O、无网络栈)
no_std纯静态分配,零堆分配
静态数组、const generics、零 OS 依赖
Crate 依赖与 Feature 支持
axoncog-core 是零外部依赖(除 libm)的纯 no_std crate,所有其他 crate 都依赖它。依赖关系严格单向,不存在循环依赖。
| Crate | Feature 支持 |
|---|---|
axoncog-core | 零外部依赖(除 libm),纯 no_std |
axoncog-encode | no_std / alloc |
axoncog-memory | no_std / alloc |
axoncog-decide | no_std |
axoncog-transport | std / no_std |
axoncog-plugin | std / alloc |
axoncog-cli | std only |
渐进式降级
跨平台能力不是通过"为每个平台写一套代码"实现的,而是通过"一套代码 + feature gate 条件编译"实现的。
axoncog-core 零外部依赖
除 libm 外零依赖,保证最大可移植性
三级 feature gate
所有 crate 都有 std / alloc / no_std 三级 feature gate,根据目标平台自动裁剪
libm 替代标准数学库
no_std 下用 libm 替代 std::f32::exp() 等方法
弹性伸缩的数学基础
固定向量尺寸
HV 向量固定 1256 字节(157 个 u64),不因平台变化。 无论是 STM32 还是服务器,单个向量的内存布局完全一致。
零动态分配
核心算法不依赖动态内存分配。no_std 模式下所有内存预分配在栈上, MCU 模式下整个引擎只需 27KB。
Trait 抽象解耦
传输层和插件层通过 trait 抽象解耦,平台特定代码隔离在 trait 实现中。 核心逻辑与平台无关。
编译示例
桌面模式(默认)
MCU 模式(STM32F4)
WASM 模式
关键:三种编译模式使用的是同一份源代码,仅通过 feature gate 控制编译行为。 不需要修改任何业务代码,不需要条件分支,Rust 编译器在编译时自动选择正确的实现。