浏览器中的化学信息学

chematic 可编译为 WebAssembly,因此分子解析、描述符计算、指纹生成、2D 结构绘制和 相似性搜索都能直接在浏览器标签页中运行 —— 无需服务器往返,数据也不会离开页面。 无论是构建一次性的分析小组件,还是完整的离线化合物浏览器,只要需要轻量级、 本地优先的 JavaScript 或 TypeScript 化学工具包,这都是一个实用的选择。

可在客户端运行的功能

  • SMILES / SMARTS 解析与标准化
  • 分子描述符(分子量、LogP、TPSA、氢键供体/受体数量等)
  • 指纹生成(ECFP、MACCS 等)以及 Tanimoto/Dice 相似性搜索
  • 以 SVG 形式呈现的 2D 结构绘制
  • 通过 SMARTS 匹配实现的子结构搜索

以上所有功能都是本地计算 —— 不会向任何服务器发送数据。整个项目中唯一的例外是 AI 代理工具 name_to_smiles,它属于独立的 MCP 服务器 (详见AI 代理),并非浏览器 / WASM 构建版本的一部分。

包体积

以下数字于 2026-09-11 直接从已发布的 @kent-tokyo/chematic@1.0.13 npm 包中测量得出:WebAssembly 二进制文件为 原始大小 3.95 MB / gzip 压缩后 1.44 MB。这只是某个 发布版本的快照,而非永久规格 —— 随着库的发展,该数字会发生变化。默认构建包含 2D 结构 绘制功能(使用 resvg/rustybuzz),占据了体积的大部分; 如果不需要该功能,请参阅文档了解按功能裁剪的构建方式。

安装

npm install @kent-tokyo/chematic

Pure Rust by default。The optional native-inchi feature vendors the IUPAC InChI C reference implementation for bit-exact standard InChI output. It is opt-in and isolated to the chematic-inchi crate. 关于哪些功能是稳定版、部分支持或实验性的 完整说明,请参阅验证页面

CDN —— 无需构建步骤

已发布的 npm 包可以直接通过 CDN 使用,无需打包工具 —— 在发布本页之前,已针对 jsDelivr (以及镜像来源 unpkg) 实际验证过可正常运行。生产环境中务必固定具体版本号 —— 未固定版本的 @latest 链接 可能会在未来的发布中改变行为,而您却毫不知情。

<script type="module">
  import init, { parse_smiles } from "https://cdn.jsdelivr.net/npm/@kent-tokyo/chematic@1.0.13/chematic_wasm.js";

  await init();
  const mol = parse_smiles("CC(=O)Oc1ccccc1C(=O)O"); // 阿司匹林
  console.log(mol.molecular_weight().toFixed(2)); // 180.16
  mol.free();
</script>

适用场景

如果您正在评估浏览器内分子分析的方案 —— 有时会以"轻量级 RDKit.js 替代品"的关键词被搜索到 —— 当您希望使用一个体积小、本地优先、构建过程中不含 C++ 工具链的 WASM 模块时,chematic 是一个合理的选择。RDKit 自身的 WASM 构建版本(RDKit.js)在功能完整度上更胜一筹, 并拥有更长期的验证积累;请根据您所需要的功能范围和验证历史来做选择。 详见验证与 RDKit 选择指南