Skip to main content

2024-01-17 Community Meeting

Brooks Townsend


  • DEMO: How to build a component in a new language for wasmCloud
  • DISCUSSION: wadm 0.10.0 features and fixes
  • DISCUSSION: Weekly roadmap review

Meeting Notes

DEMO: How to build a component in a new language for wasmCloud

  • As always, there’s only so much you can glean from our notes and so do check out the recording below.
  • We have added a new PR that looks to allow us to build components in any language with wash build and run them in wasmCloud.
  • We detail this in the Wash README in the build section.
  • When you’re configuring a project that in a language that is something other than Rust or Go (1st class support) we can simply tell wash how to build that component and where it’s going.
  • There is no specific language we can’t support on wasmCloud because of the standardisation the component model brings.
  • Common WIT definitions are the key — anything that uses these WIT definitions will work in wasmCloud. Right now many tools are using wasmtime 16.0.0, but will all standardize on WASI@0.2.0 WIT definitions.
  • Brooks walks us through an example using Python.
  • We’re using the componentize-py project in the Bytecode Alliance (Joel Dice et al: kudos).
    • All of the componentize type projects (Py and JS) are based on taking code in a language and turning it into a Wasm component.
    • With the soon to be ratified WASI Preview 2 and common set of WIT definitions, this becomes easier.
  • WIT definitions have been updated to be the same as Wasmtime 16.
  • We must re-emphasise the contributions of the Bytecode Alliance community - we couldn’t do this without their contributions.
  • Python... running in wasmCloud. Sweet.

Q&A Q: If I want to compose a bunch of components, can use wash build for that? Can I deploy an app with wadm then wash build will trigger an active reload?

A: Close - you have to use 2 different commands to do it. wash dev is built for launching wasmCloud hosts and watching for file changes. The ideal scenario: we’re working on a component and, if I make a change, the dev iteration loop is run wash build and wash stop actor.

Q: What are the additional steps we need to take to make other languages 1st class supported languages?

A: Making a language a 1st class citizen requires us to guarantee your component won’t break as we take wasmCloud from version to version. We want to be intentionally conservative around how quickly we add languages but we are confident in the BA tooling that we see in the componentize-js and py projects. Check out Steve Sanderson’s .Net support which is also driving progress. The biggest step is to come with evidence of confidence of the toolchain and community requests.

@Brooks Townsend: Action item: @Make wash dev and wash actor deploy iteration loop PR - load from files

DISCUSSION: wadm 0.10.0 features and fixes

  • There is a release candidate out but we will update with one more fix.
  • We are pleased that Wadm has not needed too many updates take a look at what’s changed.
  • Coming into 0.10 release we have a couple of breaking changes:
    • Renaming some of statuses in wadm to be more industry recognisable e.g, undeployed to, compensating to reconciling, ready to deployed etc.
  • We have backwards compatible changes. This is not forward compatible so, if you have an older version of a client you may get a failure to deserialize. This should not be a problem for most people as you’ll get the upgrades through wash and everything will be updated.
  • Efficiency change: we are in the wasmCloud host as of 0.82 when we publish the heartbeat of a wasmCloud host we are including a little more info. Heartbeat and host payload inventory are now combined.
  • Wadm will not longer be querying host inventory, and it should be a little snappier to update state as a result!
  • We have some efficiency guarantees around deployments e.g. Preventing linkdefs from infinite looping.

DISCUSSION: Weekly roadmap review

  • We continue to track progress in the roadmap on a weekly basis.
  • We have a number of completed tasks which is great to see.
  • wasmCloud host metrics PR - we have volunteer from Cosmonic - Joonas Bergius - huge thank you for stewarding forward.

Where we’ll be… (check out the head of the meeting recording for a little preview on Jochen Rau’s talk track.

January 18 Bailey and Liam will join the folks over at ARM for their regular Innovation Coffee Podcast, run by the ARM Software Developers team. We’ll be looking at the intersection of Wasm and CPU technology at 12:00pm ET on the 18th.

January 23 Bailey will join, Chris Matteson (Fermyon) and Oscar Spencer (F5 NGINX) on the panel at the next Kubernetes meetup in New York. We’ll explore the Wasm what’s, why’s, standards, and considerations on adoption.

March 14 - 15 We’ll be at WASM I/O in Barcelona which really is becoming a highlight event. Be sure to say Hi if you’re there and get your tickets early. Schedule taking shape.

March 19 - 22 We’ll also be in Paris for KubeCon + CloudNativeCon EU 2024 and Cloud Native Wasm Day. We’ll publish the schedules when they are released.

As always, there was plenty of additional discussion, so watch the recording below for the full download.