世界を動かす技術を、日本語で。

Show HN: Woxi - オープンソースのMathematica / Wolfram Language 再実装

2026年8月12日原文(woxi.ad-si.com)

概要

  • WoxiRust製 のWolfram Languageインタプリタ
  • ブラウザ上でローカル動作、データ送信なし
  • 多様なフロントエンド(CLI、Jupyter、Studio等)を提供
  • 高速起動 ・組み込み可能・オープンソース
  • コミュニティ拡大、互換性向上に注力中

Woxiの特徴と使い方

  • WoxiRust で実装された Wolfram Language 用インタプリタ
  • 全ての処理がローカルで完結、ユーザーデータは外部送信されない設計
  • ブラウザ上の プレイグラウンド で手軽に試せる環境
  • フルスクリーンプレイグラウンドサイドバイサイドエディタ も利用可能
    • 複数行の式やグラフィックスの実験に最適
  • コマンドラインツール としても利用可能
    • woxi evalで式評価、.wlsスクリプト直接実行
    • shebangインタプリタ としても使える
    • wolframscriptよりも 高速起動 を実現
  • Jupyterカーネル としても提供
    • woxi install-kernelでローカルインストール
    • JupyterLite 経由でブラウザからインストール不要で利用可能
  • Woxi Studio
    • Wolfram Language .nbファイル 用ネイティブノートブックエディタ
    • セルベース編集、インライングラフィック表示に対応
    • ipynb、Markdown、LaTeX、Typst、PDF へのエクスポート機能

WoxiとMathematicaの主な違い

  • 無料・オープンソース として公開
  • Wolframカーネルよりも 起動が非常に高速
    • 数ミリ秒単位 での起動、シェルスクリプトやワンライナー、短時間プロセスに最適
  • 組み込み可能
    • WASM 経由でブラウザ実行
    • 他アプリケーションへのスクリプト言語としての組み込み
  • 詳細な比較は公式ドキュメント参照

テストと今後の開発方針

  • 約26,000件のユニットテスト約900件の.wlsスクリプトスナップショットテスト で互換性を担保
  • 現在は エッジケース修正パフォーマンス向上コミュニティ拡大 が主な開発目標
  • 互換性や未実装機能 へのフィードバックを積極的に募集
  • コントリビューション・バグ報告 も歓迎

まとめ

  • WoxiWolfram Language を手軽かつ高速に利用できる 新世代インタプリタ
  • 多様な環境用途 に対応し、今後の発展が期待されるプロジェクト

Hackerたちの意見

これも6ヶ月前に投稿されたやつだね: https://news.ycombinator.com/item?id=47155526

それ以来、7,000回以上のコミットをして、Woxiの機能が大幅に拡張されたよ。だから、昔使ってみた人にはもう一度試す価値があると思う!

成熟したツールのオープンソース再実装は過小評価されてるよね。面白いのは、機能の同等性だけじゃなくて、新しいワークフローに技術を組み込みやすくすることだと思う。

このプロジェクトのおかげで、今までWolfram Languagesを使ったことがなかったけど、興味が湧いてきた。最近、自分のアプリに合う良いCASを探してるんだ。Sympy、Sage、Xcas、Maxima、Woxiでいくつかの代数問題を試してみたけど、Sage、Maxima、Woxiだけが期待通りの答えを出してくれた。使ってみたらWolfram Languageや他の項書き換え言語に魅了されちゃった。CASとはあまり関係ないけど、面白いんだよね。とにかく、このプロジェクトを見ていて、将来的に真剣に使うつもり。wljsを実行しようとしたときにいくつか気づいたことがあるんだけど、wljsがwolframscriptの実行可能ファイルとして認識するためにシェルスクリプトでラップしなきゃいけなかった。まず、バージョン番号のシステム変数が期待される実数型の代わりに文字列を返すんだ(とりあえずWoxiを修正してwljsが期待するものを返すようにした)。それに、現在のファイルの絶対パスを教える変数があって、インポートしたスクリプトで使うと間違ってる。ハードコーディングしたパスで回避したけど、さらに難しくなった。編集: PCを確認したら、変数は$VersionNumberと$InputFileNameって呼ばれてて、Get["filepath"]でファイルを評価した場合は間違ってる。とにかく、手伝いたいと思ってるけど、できるかどうかはわからない。

以前にWolframを使ったことがあるけど、主にSympyを使ってる。これを試すのが楽しみだよ。もしSympyより速かったら、めっちゃ助かるな。

このプロジェクト好き!高校の時からWolfram Languageを使ってて、時々見返す大量のノートブックを集めてるんだ。Moxiでどれくらいのセルが動くのか気になるな。1,275冊のノートブック、3GBのアーカイブはこちら -- https://drive.google.com/file/d/1RRqHnnCUevm7E0zKsHQvKNKxpzZ...

ありがとう!私も興味あるから、チェックしてみて、報告するね!

順不同実行や%変数をサポートしない理由はわかるけど、それがより読みやすくて使いやすいノートブックを作るんだよね。残念ながら、Mathematicaを使うときは、読みやすくて再現可能なノートブックを作るためじゃなくて、大学の課題を手伝うためだから、複数の文をブロックにまとめたり、%を頻繁に使ったりするショートカットを使っちゃう。もし他のコンポーネントを追加する予定があるなら、制御システムモジュールを+1したいな。個人的にはMatlabよりもずっと使いやすくて速いと思う。あのモジュールの古典解析、状態空間モデル、行列方程式ソルバーの機能を使ったことがあるけど、マイコン関連の機能は使ったことないな。https://reference.wolfram.com/language/guide/ClassicalAnalys... とにかく、卒業したらサイトライセンスがなくなるから、これを使うことになると思う。他のCASを使うなんて想像できないから、これを開発してくれてありがとう。

提案なんだけど、Python APIが構造化されたツリーを返すようになったら、もっと便利になると思うし、構造化されたツリーを受け入れられるようになったらいいな。maturinを使ってるんじゃないかな?内部のツリーを新しいバージョンにコピーして、いい感じのPythonバインディングを作る方法もいくつかあるよ。似たようなことをここでやったことがあるよ。https://github.com/philzook58/scryerpy https://github.com/philzook58/steelpy https://github.com/philzook58/microeggpy

幸運を祈るよ。いつか、MaximaやSymPy、Octave、GAP、PARI/GPなど、全然違うシステムのためのPythonの接着剤みたいなSageの代わりに、Rustで書かれた統合された(しかも超速い)ものが出てくることを願ってる。オープンソースの大ファンだけど、Sageやその仲間たちに苦労した後、Wolfram Mathematicaのライセンスを買う価値があると判断したよ(それ以来後悔してない)。もうそんなことをしなくて済むといいな。「最も欲しい」機能については、PDEに投票するよ。他のシステム(Mathematica自体を除いて)は、あまりサポートしてないからね。

https://nmd.web.illinois.edu/classes/2024/241/schedule.html からの多変数微積分のビジュアライゼーションを試してみたんだけど(「visualization」で検索してね)、Woxi Studioがそれを表示できるみたい。完全に正しいかはわからないけど(バグがいくつかあるかも)、今はMathematicaがないから比較できないんだ。

他のParallel関数も実装されてると思う?全部含めるべきだと思うよ。比較ページでは、今のところParallelSelectとParallelCasesが欠けてるから、これがあればもっとマルチスレッドプログラミングができるようになるね。