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

.NETでruby.wasmを動かしてみた

 .NETでruby.wasmを動かしてみた

ko.rb #01でのLT資料です。
wasmtime-dotnetでruby.wasmを動かしてみた話です。
デモに使ったアプリケーションのソースコードは https://github.com/ledsun/ruby-wasm-wasmtime-dotnet にあります。

Avatar for shigeru. nakajima

shigeru. nakajima

August 25, 2025
Tweet

More Decks by shigeru. nakajima

Other Decks in Technology

Transcript

  1. wasmtime-dotnet var engine = new Engine(); var module = Module.FromFile(engine,

    "ruby.wasm"); using var linker = new Linker(engine); linker.DefineWasi(); using var store = new Store(engine); store.SetWasiConfiguration( new WasiConfiguration() .WithArgs("ruby", "--version") // Rubyのバージョンを表示 .WithInheritedStandardOutput() .WithInheritedStandardError() ); var instance = linker.Instantiate(store, module); instance.GetFunction("_start")?.Invoke();
  2. カスタムプロトコル登録 ZoomやSlackを呼び出すURL ruby://?source="p 1" var uri = new UriBuilder(args[0]); var

    query = HttpUtility.ParseQueryString(uri.Query); if (query["source"] is { Length: > 0 } source) { argument = $"-e {source}"; }