タグ

ブックマーク / zenn.dev/chikoski (5)

  • Hello, world! with Wasm Component(ライブラリー編)

    前回までのあらすじ: cargo-componentを使ってWebAssemblyコンポーネント(Wasmコンポーネント)を作りました Wasmtimeで実行しました wasm-toolsを使って作成したコンポーネントのワールドを出力しました 今回の内容: WebAssembly Interface Type(WIT)を使ってWasmコンポーネントのインターフェースを定義します wit-bindgenの力を借りつつ、インターフェースをRustで実装します 実装したWasmコンポーネントをコンポーネントレジストリーに登録します。 用意するもの Rustのツールチェーン cargo-component Wasmtime wasm-tools 前回作成したhello-wasm-cliプロジェクト hello-wasm-cliプロジェクトは次のようなフォルダー構成をしています: . ├── Car

    Hello, world! with Wasm Component(ライブラリー編)
  • Hello, world! with Wasm Component

    TL;DR cargo-componentを使うと、Wasmコンポーネントを作成するためのRustプロジェクトを作成できます 作成したWasmコンポーネントはWasmtimeを使って実行できます 作成したWasmコンポーネントはwasi:cli/runインターフェースを実装しています 必要なツール 必要なツールは次の4つです。 Rustのツールチェーン cargo-component Wasmtime wasm-tools Rustのツールチェーンはこちらに説明があります。 cargo-component cargo-componentは、Wasmコンポーネントの管理を行うためのRustのパッケージ管理ツールであるCargoのサブコマンドです。今回はプロジェクトの作成とビルドに利用します。 cargo-componentはCargoを使ってインストールできます: Usage: cargo

    Hello, world! with Wasm Component
  • RustによるマクロサービスフレームワークSpin入門


    Advent of Spin 2023SpinSpin TL;DR SpinRust JSONkey-value Hurl使 Spin Spin  HTTP(S)Redis  Wasm WASI preview 2 
    RustによるマクロサービスフレームワークSpin入門
  • Rustで学ぶWebAssembly Interface Type入門


    TL;DR Wasm  world   Wasmi32i64, f32, f644  pub struct Point { x: i32, y: u8, z: u16, } #[no_mangle] pub fn hash(point: &P
    Rustで学ぶWebAssembly Interface Type入門
    igrep
    igrep 2023/12/16
    wit-bindgenってRustだけじゃないんだなぁ。すごい。あとwasmtime.py知らなかった
  • Visula Studio Code WIT IDL plugin

    TL;TR WebAssembly Interface Typeで、Wasmコンポーネントのインタフェースを記述できます Visual Studio Codeには WIT IDLプラグインがあります WIT IDLプラグインは、シンタックスハイライトと、ある程度のコード補完ができます 背景:WebAssembly Interface Type (WIT)とは WebAssembly(Wasm)周りのツールチェーンは、少しずつコンポーネントモデルに対応を始めています。 いくつかのWasmモジュールを組み合わせてもう少し粒度の大きいソフトウェアコンポーネントを定義するものがWasmコンポーネントです。 Wasmモジュールと同様、Wasmコンポーネントも他のプログラムに埋めこんで利用されます。他のプログラムから利用されるプログラムを書く場合、 ユーザー定義型を含めたインタフェースはどうなっている

    Visula Studio Code WIT IDL plugin
  • 1