Numbat 是一种静态类型编程语言,专为科学计算设计,将物理量纲和单位作为一等公民,帮助科研人员在计算中自动检查单位一致性。
这个工具是什么
Numbat 是一个用 Rust 实现的开源科学计算语言,采用静态类型系统,将长度、时间等物理量纲作为类型进行静态检查。它提供交互式终端 REPL 和在线试用页面,标准库涵盖 SI、美制、英制、航海、天文、原子、核物理等多种单位与常数。单位系统本身用 Numbat 语言编写,用户可通过 init.nbt 文件扩展或自定义。项目采用 Apache-2.0 许可证,在 GitHub 上获得约 2687 星标。
核心能力
- 物理量纲作为类型:静态类型系统在编译期检查量纲一致性,减少单位错误。
- 单位一等公民:支持多种单位输入方式、自定义单位,并用 -> 运算符便捷转换。
- 标准库丰富:内置大量物理量纲、单位、数学与物理常数以及预定义函数。
- 交互式 REPL:提供命令历史、Ctrl-R 搜索和 Tab 补全,适合一次性小计算。
科研中的典型用法
- 在科研计算中快速进行单位换算,例如将 30 km/h 转换为 mph 或合并不同单位长度。
- 编写带量纲检查的计算脚本,利用静态类型在运行前发现量纲不匹配的错误。
- 通过 init.nbt 定义领域专用单位(如 unit bathtub = 150 L),扩展标准库以适应特定实验场景。
快速上手
可通过官网在线试用,或参考安装文档在本地安装 CLI 工具。安装后直接运行 `numbat` 进入交互式 REPL,输入表达式即可计算;也可编写 .nbt 脚本文件执行。入门建议阅读官方教程和语法参考,了解单位表示、转换运算符 -> 和类型注解的基本用法。
生态与相近工具
同领域有 GNU units、Frink 等单位计算工具,以及 Python 的 Pint 等库。Numbat 的差异在于将量纲作为静态类型并自带完整语言与 REPL;若只需简单换算,GNU units 更轻量;若已用 Python 生态,Pint 更易集成。
项目信息
- 仓库:sharkdp/numbat
- 星标:2,687 · 派生:116
- 主要语言:Rust
- 许可证:Apache-2.0
- 最近提交:2026-08-25
- 项目主页:https://numbat.dev
本文属于《学科研究工具知识库 · 物理学》第 6 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

发表评论 取消回复