新しいオープンソースのスプレッドシートエンジンが技術界に登場し、開発者やスプレッドシート愛好家から注目を集めています。 WebAssembly にコンパイルされる Rust ベースのプロジェクト IronCalc は、軽量で高性能なアーキテクチャにより、従来のスプレッドシートソリューションに代わる有望な選択肢を提供しています。
技術実装
IronCalc は WebAssembly を通じてブラウザ上で完全に動作し、コア機能にサーバーサイドの処理を必要としません。このプロジェクトは、ユーザーから素早いレスポンスタイムと低リソース使用率が報告されるなど、印象的なパフォーマンスを示しています。実装には WASM にコンパイルされた Rust を使用しており、現代的なウェブアプリケーションアーキテクチャの優れた例となっています。
機能セットと開発状況
現在開発中の IronCalc は、約1年以内に Excel の数式互換性の達成を目指しています。プロジェクトではユーザーインターフェースとバックエンドエンジンを明確に分離し、様々な状況での柔軟な実装を可能にしています。コミュニティからのフィードバックによると、 Excel ユーザーになじみのある一部の基本機能はまだ開発中とのことです:
使ってみましたが、行や列のヘッダーをクリックして全体を選択する機能や、2つの列の間のリサイザーをダブルクリックしてコンテンツの長さに合わせて列の幅を自動調整する機能など、慣れ親しんだ機能の一部が欠けています。出典
今後の方向性
プロジェクトは以下のような開発の方向性を示しています:
- スクリプトのサポート :VBA 互換性の実装ではなく、 Lua や Rhai のような現代的なスクリプト言語の統合を検討中
- NPM パッケージ :1ヶ月以内に IronCalc を npm パッケージとして利用可能にする作業を進行中
- 機能の強化 :ゴールシークや感度分析などの高度な機能の実装を検討中(ただし、直近のロードマップには含まれていない)
コミュニティとライセンス
IronCalc は MIT/Apache 2.0 のデュアルライセンスで公開されており、商用およびオープンソースの実装の両方に柔軟性を提供しています。プロジェクトは開発に関する議論とサポートのために活発な Discord コミュニティを維持しています。
技術アーキテクチャ
このプロジェクトは数式評価に再帰下降パーサーを採用しており、コンピュータサイエンスの基本原則に基づく堅固な基盤を示しています。この従来型のアプローチは、多くの本番環境のコンパイラやパーサーで効果的であることが証明されています。
オープンソースと透明性へのコミットメントはプロジェクトの分析にも及んでいますが、プライバシー重視の開発実践に沿って、分析機能の完全な削除を検討しています。
IronCalc での開発に興味のある開発者にとって、このプロジェクトは単独のスプレッドシートエンジンとしても、カスタム実装の基盤としても位置づけられており、特にスプレッドシート機能を自社のアプリケーションに統合したいと考える SaaS 開発者にとって魅力的なものとなっています。