Skip to content

パッケージと実行入口

実行入口パッケージ実行環境
JavaScript / WASM@libraz/formulonブラウザ、worker、Node
Native Node@libraz/formulon-nativeNode.js N-API アドオン。darwin-arm64 / linux-x64 / linux-arm64 向けのビルド済みバイナリを同梱(ソース checkout からのビルドも可)
Pythonformulonwasmtime を使う py3 wheel
CLIformulon-cli-<os>-<arch>単体バイナリ
C ABIヘッダとネイティブライブラリ独自ホスト向け
MCP@libraz/formulon-mcpエージェント向け stdio MCP サーバー
参考 UI@libraz/formulon-cellブラウザ結合試験向け UI

すべての実行入口は同じ計算コアを呼び出します。違いはパッケージやホスト言語の都合であり、数式の意味が変わるべきではありません。

formulon-cellformulon-mcp はどちらも C ABI に直接乗るのではなく、WASM パッケージの上に構築されています。ブラウザや Node から @libraz/formulon を使う場合と同じ経路で計算コアに到達します。

用語: 実行入口

共有された C++17 計算コアを、各ホスト環境から呼び出すためのパッケージ境界です。WASM、Python、CLI などは、直接または間接に C ABI 経由で同じコアを呼びます。実行入口ごとに変わるのはホスト言語、メモリ所有権、入出力の形であり、数式の意味は変わりません。

実行入口ごとの成熟度

実行入口成熟度補足
WASM最も広い JS APIformulon.d.ts、ブラウザ / Node 対応
Python広い workbook API だが、最新の追加機能では WASM / Node に遅れているwasmtime で動くラッパー、context manager 対応
CLI用途を絞ったツールeval / recalc / dump
Native NodeWASM 型の APIWASM と同じ Workbook surface を N-API アドオンで公開
C ABI低レベル API 境界各パッケージが呼び出す共通インタフェース
MCPエージェント向け実行入口WASM の上に乗る。許可リストに基づいて呼び出す
formulon-cell参考 UI結合試験と実装例のための公開 UI。Excel 互換の完成 UI ではない

Python は 0.9.4 の追加機能にまだ対応していません

読み取り専用のスカラーアドホック評価 evaluateFormulaText / evaluateConditionalFormula と、シート単位のコメント列挙は C API・Native Node アドオン・WASM だけが持つ機能です。Python の Workbook にはこれに相当する評価メソッドがなく、コメントも単一セル向けの get_comment / set_comment しかありません — Native Node の getComments(sheet) や C API の fm_sheet_get_comment_count / fm_sheet_get_comment_at_index に相当する列挙 API は存在しません。なお 0.9.5 で Python にも、配列全体を返すアドホック評価 evaluate_formula_array と、関数メタデータをマージする merge_function_metadata が追加されました(スカラーの evaluate_formula_text / evaluate_conditional_formula は引き続き未対応)。Python の add_conditional_format は、他の実行入口と同様に新規ルールのインデックスを返します。

実行入口ごとの結果が食い違ったとき

同じワークブック・同じプロファイルで 2 つの実行入口が異なる値を返したら、不具合か、文書化された互換性差分として扱います。make parity-test の整合性テストは、共有の検証用ワークブックを利用可能な全チャネルで評価し、未ビルド不一致 を分けて報告します。Native Node と WASM は同じ result envelope と Workbook method shape を持つ前提です。違いは native thread、コピーコスト、WASM メモリ上限などの運用面です。

次に読むもの