Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自作JavaScriptランタイムを作るための5分レシピ

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Ryu Ryu
June 19, 2026
29

 自作JavaScriptランタイムを作るための5分レシピ

Avatar for Ryu

Ryu

June 19, 2026

Transcript

  1. 4 JavaScript ランタイムとは モジュールシステムやAPI などを含む、 JavaScript エンジンを搭載したJavaScript の実行基盤を指す。 例) Node.js

    、Bun 、Deno など JavaScript エンジンとは JavaScript のコードを構文解析して実行するインタープリター部分を指す。 例) V8 、SpiderMonkey 、JavaScriptCore 、QuickJS など JS エンジンに良い感じにAPI を生やせば、自作のJS ランタイムができる
  2. 5 開発環境 Rust を使ってください 三大ランタイム中2 つがRust で書かれている Bun はZig からRust

    にリライト中 Deno はRust で書かれている JS 向けのエコシステムが充実している Oxc やSWC などのJS/TS パーサー V8 ではTemporal はRust で実装されている https://github.com/boa-dev/temporal
  3. 6 おすすめのJS エンジン 2 選 V8 使用事例: Chromium, Node.js, Deno,

    など Deno がV8 を採用していることもあり、 Rust 内でエコシステムが充実している 困ったらDeno のライブラリ、コードを参考にすれば大体解決する rusty_v8 V8 のRust バインディング https://github.com/denoland/rusty_v8
  4. 7 おすすめのJS エンジン 2 選 QuickJS 使用事例: LLRT 小さくて扱いやすい( バイナリサイズが1MB

    程度) 小さいのに多くのJS の仕様をサポートしている rquickjs QuickJS のRust バインディング https://github.com/delskayn/rquickjs
  5. 9 付録:TypeScript の実行をサポートするには 一部のJS エンジンはTypeScript を直接実行できるものもあるが、 通常はTypeScript をJavaScript に変換する必要がある 直接実行をサポートする場合はType

    Stripping を実装しよう TypeScript の型情報を削除して純粋なJavaScript コードに変換して実行 JavaScript/TypeScript のパーサー・コンパイラーを利用して実装できる Oxc https://github.com/oxc-project/oxc SWC https://github.com/swc-project/swc
  6. 10 まとめ JS エンジンに良い感じにAPI を生やせば、自作JS ランタイムだ Rust ならJS エンジンへのバインディングも、 JS/TS

    パーサー・コンパイラーも揃っているのでおすすめ おすすめのJS エンジンは、V8 とQuickJS パフォーマンスや互換性を考えて作るならv8 学習用、小さく始めるならQuickJS