unitrix · 单位算阵
Unitrix: 通过常量化矩阵实现类型安全的物理量计算与2D几何变换
特性: 零成本抽象 · 编译期量纲检查 · 无堆分配(no_std)
快速开始
use physunits::{Celsius, Fahrenheit};
let boiling = quantity::Si::<f64, Celsius>::new(100.0);
let fahr = boiling.convert::<Fahrenheit>();
println!("Water boils at {} °F", fahr.value());
安装
[dependencies]
physunits = "0.0.6"
核心优势
特性 | 描述 |
---|
|🚀 零运行时开销 | 完全基于编译期计算|
|🔒 类型安全单位 | 量纲错误导致编译失败|
|🔄 混合计算 | 无缝衔接常量与变量|
|📐 2D几何支持 | 带单位的矩阵变换|
架构概览
量纲系统
// 编译期检查量纲一致性
let speed: Velocity = Length::new::<meter>(10.0) / Time::new::<second>(2.0);
进度追踪
-
核心功能
✅ 量纲系统
✅ SI单位框架
🚧 运算符重载 (90%) -
测试覆盖
🚧 边界条件测试 (进行中)
对比其他方案
能力 | unitrix | uom |
---|---|---|
编译期量纲检查 | ✅ | ⚠️ |
几何变换支持 | ✅ | ❌ |
常量计算优化 | ✅ | ❌ |
参与贡献
急需以下帮助:
-
物理单位定义扩展(如电磁学单位)
-
WASM兼容性测试
-
性能优化建议
-
完整文档见 docs.rs/unitrix