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

最新のWasm事情

asuka
October 18, 2024

 最新のWasm事情

Niigata5分Tech #13 1周年記念
https://niigata-5min-tech.connpass.com/event/332786/

asuka

October 18, 2024
Tweet

More Decks by asuka

Other Decks in Technology

Transcript

  1. asuka (@a_skua) • 株式会社モニクル ◦ SWE / プロダクトSRE • WebAssemblyの同人誌を書いている人

    ◦ WebAssemblyでできること ▪ 商業誌:実践入門WebAssembly ◦ ご注文はWASIですか? ◦ ご注文はWASIですか?? ▪ 商業誌:WebAssembly System Interface入門 ◦ WebAssembly Cookbook vol.1 2 WHOIS
  2. Niigata 5分 Tech 結構参加している 3 • N5T#5 AssemblyScriptではじめるWebAssembly入門 • N5T#8

    技術書典16オフライン振り返り • N5T#10 エンジニアコミュニティ • N5T#12 夏の思い出 • N5T#12 go:wasmexport • N5T#13 祝1周年 東京から飲みにきた
  3. コンポーネントモデルとは 従来のWasm • モジュールが1つの単位 • 1バイナリ1モジュール • ESモジュールのようなものだと思ってもらってOK これからのWasm •

    複数のモジュールを組み合わせたコンポーネントが1つの単位 • コンポーネント同士の合成もできる 10 VMの定義 • どういう命令セットがあるか? データフォーマットの定義 • stringはメモリ上でどう表現されるのか?
  4. • データ定義をするためのIDL「WITを提供」 • WITに対応するABIが定義されている → WITからコードを自動生成できる コンポーネントモデルとは 11 record customer

    { id: u64, name: string, picture: option<list<u8>>, account-manager: employee, } enum color { hot-pink, lime-green, navy-blue, } example.wit 高レイヤーのデータ型を定義できる ProtobufやGraphQLと同じ世界観
  5. コンポーネントモデルとは 12 record customer { id: u64, name: string, picture:

    option<list<u8>>, account-manager: employee, } enum color { hot-pink, lime-green, navy-blue, } example.wit インターフェースをexportするためのコードを生成 インターフェースをimportするためのコードを生成 Wasmコンポーネントにビルド Wasmコンポーネントにビルド ( `・ω・´) COMPOSE!!  ≡⊃C⊂≡ Wasmコンポーネント
  6. コンポーネントモデルとは 14 record customer { id: u64, name: string, picture:

    option<list<u8>>, account-manager: employee, } enum color { hot-pink, lime-green, navy-blue, } example.wit インターフェースをexportするためのコードを生成 Wasmをimportするためのグルーコードを生成 Wasmモジュールにビルド Wasmのimport フロントエンドの実装 グルーコードのimport こういうこともできる
  7. コンポーネントモデルとは 15 record customer { id: u64, name: string, picture:

    option<list<u8>>, account-manager: employee, } enum color { hot-pink, lime-green, navy-blue, } example.wit インターフェースをexportするためのコードを生成 Wasmをimportするためのグルーコードを生成 Wasmモジュールにビルド Wasmのimport フロントエンドの実装 グルーコードのimport Microsoftがwit2tsを作っている https://github.com/microsoft/vscode-wasm