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
11

 自作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