Check out a sample server using wasi-http built with our early #WebAssembly Component Model support in @Kotlin! 🤩

https://github.com/Kotlin/sample-wasi-http-kotlin/

Still early, but very satisfying to see it working ✨

Give it a spin and share what you build 🚀

#Wasm #Kotlin #ComponentModel

1/2 👇

When I use cargo component new to build a CLI component for Rust/Wasm/Wit, the cargo component build step will automatically translate a main function to .e.g. wasi:cli/run or println! statements to the according stream functions from the wasi world. With wasm-tools component wit I can even inspect a generated with world, though none was supplied. I would llike to know more about the magic involved. Is that documented somewhere, is this something carfgo component does, or is it coming from wit-bindgen? Any help or pointers appreciated.

#rust #wasm #wit #wasi #wasip2 #cargo #componentmodel

As a complete aside: over the last few months, I've put together a little workbench repo to get myself conversant with the Wasm component model.

https://github.com/dylibso/component-workbench

It consists of a series of ".wat" files, some of which include an associated runner. Each file attempts to isolate one bit of syntax, building up to late-bound host functions.

These files are intended for people to read and edit – change stuff and see what happens!

#wasm #wasmcomponents #componentmodel

GitHub - dylibso/component-workbench: a workbench for experimenting with the component model

a workbench for experimenting with the component model - GitHub - dylibso/component-workbench: a workbench for experimenting with the component model

GitHub

Last month in Wasm - Python
#python #wasm #componentmodel

Brett Cannon (@brettcannon) from Microsoft has added a build script for building Python for WASI.
https://github.com/python/cpython/blob/main/Tools/wasm/wasi.py
https://github.com/python/cpython/blob/main/Tools/wasm/README.md#wasi-wasm32-wasi

Joel Dice from Fermyon and Peter Huene (@peterhuene) from Fastly have updated Componentize-Py from Wasmtime 13 up to 15 and are planning to be ready for Wasmtime 16 on release.
https://github.com/bytecodealliance/componentize-py/pull/43
https://github.com/bytecodealliance/componentize-py/pull/44

cpython/Tools/wasm/wasi.py at main · python/cpython

The Python programming language. Contribute to python/cpython development by creating an account on GitHub.

GitHub

Last month in Wasm - JavaScript
#javascript #node #wasm #componentmodel

Guy Bedford (@guybedford) from Fastly spoke at NodeConf EU last month talking about WebAssembly Components and JavaScript.
https://www.nodeconf.eu/guy-bedford-webassembly-components-and-javascript

JCO now passes 86 of the 97 test programs from Wasmtime and expects to pass all of them by end of year.

Guy Bedford - WebAssembly Components and JavaScript

Last month in Wasm - Go
#golang #wasm #componentmodel

Mossaka from Microsoft added support for resources to wit-bindgen/go.
https://github.com/bytecodealliance/wit-bindgen/pull/759

Johan Brandhorst-Satzkorn from Hashicorp's proposal to add a wasm32 target for golang has been acccepted.
https://github.com/golang/go/issues/63131#issuecomment-1806138218
feat(go): add resources support by Mossaka · Pull Request #759 · bytecodealliance/wit-bindgen

[Moved from PR #737] Introduction This PR refactors the wit-bindgen-go to mainly support WIT Resources. Should close #696 and #615 Resources This PR has enabled WIT resources in the Go binding gene...

GitHub
Last month in Wasm - C# and .NET
#csharp #dotnet #wasm #componentmodel

# Microsoft exploring .NET + Wasm/WASI

Richard Lander from Microsoft wrote a blog post on the future of Wasm + WASI with .NET in the cloud.
https://devblogs.microsoft.com/dotnet/extending-web-assembly-to-the-cloud/

Also, Steve Sanderson from Microsoft created an Experimental SDK for using WASI/WIT in .NET.
https://github.com/SteveSandersonMS/wasm-component-sdk
Extending WebAssembly to the Cloud with .NET - .NET Blog

We're closely following the progress of WebAssembly, including WebAssembly System Interface (WASI). There's a new experimental workload in .NET 8 for WASI that extends the capabilities of Wasm towards the Cloud.

.NET Blog

so, a few #wasm #componentmodel questions as I’ve started digging into this:

1. As a provider of host functions that are intended to “mix into” other worlds, should I prefer to export interfaces that can be imported separately or a world that can included wholesale?

2. re cargo-component: what is the difference between “package.metadata.component.dependencies” and “package.metadata.component. target.dependencies”?