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

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

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for Kotaro Otaka Kotaro Otaka
December 10, 2024

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

The Go gopher was designed by Renée French.

https://gotalk.connpass.com/event/336208/

Avatar for Kotaro Otaka

Kotaro Otaka

December 10, 2024
Tweet

More Decks by Kotaro Otaka

Other Decks in Programming

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 Go を実装する Wasm としてビルドする JavaScript サポートファイルをコピーする 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 ランタイムが登場 wasmtime Lucet WasmEdge  etc... Wasmer ↓ #goconnect #goconnect
  17. Kotaro Otaka おーたかこーたろー / @otakakot Web Engineer 新卒入社 Hello Golang!

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