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

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

コアC ABI実行入口WASM の上に構築C++17 計算コアヘッダ + ネイティブライブラリWASM (@libraz/formulon)Native Node(packages/npm-native)Python (formulon)配列 / CF 評価、コメント、ページ分割に対応CLI (formulon-cli-<os>-<arch>)formulon-cell (参考 UI)formulon-mcp (stdio エージェントサーバー)コアC ABI実行入口WASM の上に構築C++17 計算コアヘッダ + ネイティブライブラリWASM (@libraz/formulon)Native Node (packages/npm-native)Python (formulon)配列 / CF 評価、コメント、ページ分割に対CLI (formulon-cli-<os>-<arch>)formulon-cell (参考 UI)formulon-mcp (stdio エージェントサーバー)

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

用語: 実行入口

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

実行入口ごとの成熟度

実行入口成熟度補足
WASM最も広い JS APIformulon.d.ts、ブラウザ / Node 対応
Python広い workbook APIwasmtime で動くラッパー、context manager 対応
CLI用途を絞ったツールeval / recalc / dump / paginate
Native Node共有計算 API共有 Workbook メソッドを N-API アドオンで公開。ふりがな、反復設定の read-back、3 状態 visibility、印刷設定、range XF、cache-index pivot item も対応。table 作成、AutoFilter XML、cell-style 作成は WASM のみ
C ABI低レベル API 境界各パッケージが呼び出す共通インタフェース
MCPエージェント向け実行入口WASM の上に乗る。許可リストに基づいて呼び出す
formulon-cell参考 UI結合試験と実装例のための公開 UI。Excel 互換の完成 UI ではない

Python のパリティ境界

Python は配列全体の evaluate_formula_array()、条件付き書式の evaluate_cf_formula()、ふりがなテキストの取得・設定、コメント列挙(comment_count() / get_comments())、paginate()、反復設定の read-back、3 状態 sheet visibility、typed print settings、range XF、cache-index pivot item を含む、ワークブックの広い範囲を同等に扱います。明示的な非公開項目は、一般的なスカラーの evaluate_formula_text() と反復進捗コールバックです。Python が C ABI のすべてのエントリーポイントをそのまま公開するわけではありません。

Python は visual conditional-format payload、DXF、pivot report layout、pivot-cache worksheet-source access も公開し、data validation の allow_blank 省略時は False を使います。

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

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

次に読むもの