全域弹性伸缩

同一套架构、同一份核心代码,从 32KB RAM 的 STM32 到 16GB 内存的服务器,零修改运行。

核心理念

AxonCog 最关键的工程优势是弹性伸缩。这不是两套代码分别做端侧和云端, 而是同一套代码通过编译时 feature gate 自动适配不同资源约束。

关键在于三点:HV 向量固定 1256 字节(不因平台变化)、核心算法不依赖动态内存分配(no_std 兼容)、 传输层和插件层通过 trait 抽象解耦(平台特定代码隔离在 trait 实现中)。 这使得同一份核心代码可以在完全不同的硬件平台上编译运行,无需任何修改。

mcu feature 三级裁剪

同一套代码在不同资源约束下的弹性运行。MCU 模式下所有核心功能(HV 编码、场协同、决策、传输)全部可用,只是模板数和节点数缩减。

模式模板数节点数动态记忆内存占用
桌面模式10246432条~1.1MB
嵌入式模式64168条~200KB
MCU 模式884条~27KB

注意:三级模式之间不是"功能阉割",而是"资源适配"。所有核心功能(HV 编码、场协同、决策、传输)在三级模式下都完整可用。 MCU 模式下裁剪的只是模板数量和节点数量,不是功能本身。

Feature Gate 三级体系

每个 Crate 都有 std / alloc / no_std 三级 feature gate,根据目标平台自动裁剪

std

完整标准库模式

HashMap、Vec、String、文件 I/O、网络栈

目标平台桌面 Linux / Windows / macOS
最低 RAM16MB+
alloc

堆分配可用,无标准库

Vec、Box、String(无文件 I/O、无网络栈)

目标平台嵌入式 Linux / RTOS
最低 RAM256KB+
no_std

纯静态分配,零堆分配

静态数组、const generics、零 OS 依赖

目标平台STM32F4 / RP2040 裸机
最低 RAM32KB+

Crate 依赖与 Feature 支持

axoncog-core 是零外部依赖(除 libm)的纯 no_std crate,所有其他 crate 都依赖它。依赖关系严格单向,不存在循环依赖。

CrateFeature 支持
axoncog-core零外部依赖(除 libm),纯 no_std
axoncog-encodeno_std / alloc
axoncog-memoryno_std / alloc
axoncog-decideno_std
axoncog-transportstd / no_std
axoncog-pluginstd / alloc
axoncog-clistd only

渐进式降级

跨平台能力不是通过"为每个平台写一套代码"实现的,而是通过"一套代码 + feature gate 条件编译"实现的。

1

axoncog-core 零外部依赖

除 libm 外零依赖,保证最大可移植性

2

三级 feature gate

所有 crate 都有 std / alloc / no_std 三级 feature gate,根据目标平台自动裁剪

3

libm 替代标准数学库

no_std 下用 libm 替代 std::f32::exp() 等方法

弹性伸缩的数学基础

固定向量尺寸

HV 向量固定 1256 字节(157 个 u64),不因平台变化。 无论是 STM32 还是服务器,单个向量的内存布局完全一致。

零动态分配

核心算法不依赖动态内存分配。no_std 模式下所有内存预分配在栈上, MCU 模式下整个引擎只需 27KB。

Trait 抽象解耦

传输层和插件层通过 trait 抽象解耦,平台特定代码隔离在 trait 实现中。 核心逻辑与平台无关。

编译示例

桌面模式(默认)

# 标准编译,使用 std feature
cargo build --release

MCU 模式(STM32F4)

# 编译到 ARM Cortex-M4F,启用 mcu feature
cargo build --release --target thumbv7em-none-eabihf --no-default-features --features mcu

WASM 模式

# 编译到 WebAssembly
cargo build --release --target wasm32-unknown-unknown --no-default-features --features alloc

关键:三种编译模式使用的是同一份源代码,仅通过 feature gate 控制编译行为。 不需要修改任何业务代码,不需要条件分支,Rust 编译器在编译时自动选择正确的实现。