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

Wasm わからないけど Go で実装したいから入門する

Kotaro Otaka
December 10, 2024
89

Wasm わからないけど Go で実装したいから入門する

Kotaro Otaka

December 10, 2024
Tweet

Transcript

  1. INDEX 01 Wasm ( WebAssembly ) とは 02 Go ×

    Wasm 03 なぜ Wasm に入門するのか 04 Go × WASI
  2. 01 Wasm ( WebAssembly ) とは 02 Go × Wasm

    03 なぜ Wasm に入門するのか 04 Go × WASI INDEX #goconnect
  3. WASM ( WebAssembly ) WebAssembly は現代のウェブブラウザーで実行できる新しい種類の コードです。ネイティブに近いパフォーマンスで動作する、コンパクト なバイナリー形式の低レベルなアセンブリー風言語です。さらに、 C/ C++、C#

    や Rust などの言語のコンパイル先となり、それらの言語を ウェブ上で実行することができます。 https:/ /developer.mozilla.org/ja/docs/WebAssembly/Concepts より抜粋 #goconnect #goconnect
  4. WASM ( WebAssembly ) JavaScript を補完、並行して動作するように設計されています。 WebAssembly JavaScript API を使用して、

    WebAssembly モジュールを JavaScript アプリケーションに読み込み、2 つの間で機能を共有できま す。これにより、WebAssembly コードの記述方法を知らなくても、 WebAssembly のパフォーマンスとパワー、 JavaScript の表現力と柔軟 性を同じアプリケーションで活用できます。 https:/ /developer.mozilla.org/ja/docs/WebAssembly/Concepts より抜粋 #goconnect #goconnect
  5. INDEX 01 Wasm ( WebAssembly ) とは 02 Go ×

    Wasm 03 なぜ Wasm に入門するのか 04 Go × WASI #goconnect
  6. Go Wiki: WebAssembly 5T Go を実装すQ CT Wasm としてビルドすQ "T

    JavaScript サポートファイルをコピーすQ T JavaScript を実装する https://go.dev/wiki/WebAssembly より #goconnect #goconnect ※ Go のバージョンは 1.23
  7. JavaScript での実装 ← wasm_exec.js のクラスをインスタンス化 ← Wasm モジュールをコンパイル & インスタンス化

    ← Wasm モジュールを取得 & 指定 ← Wasm モジュールと JavaScript の橋渡し ← Wasm を実行 #goconnect #goconnect
  8. INDEX 01 Wasm ( WebAssembly ) とは 02 Go ×

    Wasm 03 なぜ Wasm に入門するのか 04 Go × WASI #goconnect
  9. Wasm ランタイム Supabase Edge Functions Deno Deploy Cloudflare Workers https://supabase.com/docs/guides/functions

    https://deno.com/deploy https://developers.cloudflare.com/workers #goconnect #goconnect
  10. Wasm ランタイム Supabase Edge Functions Deno Deploy Cloudflare Workers https://supabase.com/docs/guides/functions

    https://deno.com/deploy https://developers.cloudflare.com/workers #goconnect #goconnect 無料でデプロイできる(Edge)サーバー
  11. Wasm ランタイム Supabase Edge Functions Deno Deploy Cloudflare Workers https://supabase.com/docs/guides/functions

    https://deno.com/deploy https://developers.cloudflare.com/workers #goconnect v v #goconnect 無料!
  12. Wasm ランタイム Supabase Edge Functions Deno Deploy Cloudflare Workers https://supabase.com/docs/guides/functions

    https://deno.com/deploy https://developers.cloudflare.com/workers #goconnect #goconnect 最高!
  13. JavaScript ↔︎ Go Request: Response: #goconnect #goconnect https://developer.mozilla.org/ja/docs/Web/API/ Request https://pkg.go.dev/net/http#Response

    https://pkg.go.dev/net/http#Request https://developer.mozilla.org/ja/docs/Web/API/ Response → →
  14. JavaScript ↔︎ Go #goconnect #goconnect Request: Response: https://developer.mozilla.org/ja/docs/Web/API/ Request https://pkg.go.dev/net/http#Response

    https://pkg.go.dev/net/http#Request https://developer.mozilla.org/ja/docs/Web/API/ Response → → 結構めんどくさい & JavaScript の知識が必要
  15. INDEX 01 Wasm ( WebAssembly ) とは 02 Go ×

    Wasm 03 なぜ Wasm に入門するのか 04 Go × WASI #goconnect
  16. Wasm のさらに向こうへ WASI Plus Ultra!! WASI ( WebAssembly System Interface

    ) の登場 Web 以外でも WebAssembly を使おうという動き ↓ これにともない WASI ランタイムが登場 l wasmtimj l Luce™ l l WasmEdge  etc... Wasmem ↓ #goconnect #goconnect
  17. Kotaro Otaka おーたかこーたろー / @otakakot Web Engineer 新卒入社 Hello Golang!

    Web Engineer @株式会社ビットキー 2020.04 2021.04 2022.11 Go言語推し #goconnect