【要約】Rust(+Python)が動く技術ノートを簡単に - Oxiquillを作りました [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が技術的なデモや数値実験の結果を公開したい際、従来の静的なドキュメントでは読者の体験が限定的になるという課題がある。
- ・従来の技術ブログでは、コードの実行結果が静的な画像やテキストに留まる。
- ・インタラクティブなデモを構築するには、フロントエンドの構築や実行環境の用意に多大なコストがかかる。
- ・ビルド待ち時間が長いと、ドキュメント作成のモチベーションが低下する。
// Approach
MDXをベースに、ビルド時にコードセルを抽出・解析する仕組みを構築することで、記述と実行をシームレスに統合した。
- ・AstroとStarlightを基盤とし、MDXのremarkプラグインを用いてコードセルを抽出する。
- ・Rustはビルド時にWebAssemblyへコンパイルし、ブラウザ上で実行可能にする。
- ・PythonはPyodideをWeb Worker上で動作させ、ブラウザ内で実行する。
- ・Preactを用いて、メタデータから動的な入力UI(スライダー等)を生成する。
// Result
開発者はMDX形式で記述するだけで、ブラウザ上で動作する高度なインタラクティブ・ノートを作成できる。
- ・RustのmacroやPythonのhelper関数により、グラフや表などのリッチな出力を容易に実現できる。
- ・pnpm devによるonSaveでの即時プレビューにより、開発サイクルが大幅に短縮される。
- ・外部crateの利用や、numpy/pandas等の主要ライブラリの活用も可能である。
Senior Engineer Insight
> 本ツールは、技術デモや教育用コンテンツの制作において極めて高い生産性を提供する。特に、Rust/WasmとPyodideの組み合わせは、ブラウザ完結型の計算環境として強力だ。ただし、セル間の依存関係が持てない点や、重い計算には不向きな静的サイト構成である点には注意が必要である。大規模な計算基盤ではなく、あくまで「見せるための技術ノート」として割り切ることで、その真価を発揮するだろう。