Skip to main content

2024-05-08 Community Meeting

Brooks Townsend


  • DEMO: wit-RPC Go implementation
  • DEMO: wasmCloud Golang provider SDK
  • DISCUSSION: Q2 Roadmap Review

Meeting Notes

DEMO: wit-RPC Go implementation

  • It’s exciting to be able to talk about our Go implementations so we have a couple of demos to show in this week’s community meeting.
  • First up, Roman demonstrates his wit-RPC Go implementation.
  • RPC is designed to be components-native. This is another reference implementation of the way wRPC does component model value encoding.
  • Tl;dr: the value encoding proposal is PR-ed upstream and is implemented in multiple languages. What this means is the possible mix of multi-language tooling is endless.
  • Notably, this has huge potential to interact with things outside the Wasm ecosystem. A real bridge to the future.
  • wit-bindgen over RPC, with support for Go: Roman takes us through a simple hello world package with Go in his demo. It’s very difficult to do that justice here and so we really recommend watching the demo below.
  • We can now run and maintain applications, built with components written in Go, in a distributed way with wRPC. This is a major step forward Gophers looking for ways to run and maintain the same application in a mixture of locations.
  • Some fresh innovation in the wRPC repo from Roman; wRPC key-value NATS binary - being able to invoke functions over the lattice like wasi:keyvalue/store.get.

DEMO: wasmCloud Golang provider SDK

  • Next up, Brooks shows a refreshed Go provider SDK for wasmCloud, based on Roman’s wRPC example.
  • We do have an early Go provider SDK in the wasmCloud repo provider-sdk-go. This early version includes the logic to connect to NATS, control instantiation and an RPC layer (wasmbus RPC, pre 1.0 protocol).
  • Now we have Roman’s new wRPC Go provider, we wanted to update this early SDK. Thanks to Jordan and others for giving us a solid foundation to build on. Take a look at the recording for the details and demo.
  • It didn’t take much to convert Roman’s work to apply to wasmCloud: lattice name + provider ID in wasmCloud. Create new capability provider using wasmCloud provider SDK and apply wRPC provider prefix.
  • Provider SDK handles all link location logic including health check requests and responses.
  • This was a great exercise in hot-swapping providers.
  • We can combine the RPC layer of the wRPC implementation and the logic to handle links to the NATS provider SDK, out of the box.
  • Next, we would like to bring the wRPC library as a dependency of the SDK which will smooth the developer experience.
  • We’ll focus on getting more examples into the wasmCloud monorepo in the Golang directory; more to come soon.

DISCUSSION: Q2 Roadmap Review

  • Thank you to all the community for your contributions to the roadmap discussion, and the suggestions seen since. Our Q2 high level goals are updated and ready to view.
  • Several notable new RFCs in the plan which are priorities for the next season.
  • New documentation, new feature and improvement buckets can be viewed in Github.
  • As community members looking to contribute, scan the good first issues as the starting point.

DISCUSSION: cargo smart-release in wasmCloud/wasmCloud

  • In the wasmCloud repo we have many different crates with interdependencies.
  • The hard part is releasing new versions of wash. Customarily, we work through the interdependencies individually.
  • We’ve created a way to better (more quickly) manage patches and adjustments. It this tells us what dependencies need to bump, major or minor etc.
  • Essentially, this creates a git tab and released in the right priority order. This has solved many of the update issues inherent in releasing new versions of wash.

DEMO: Lachlan: New Lattice Client

  • A special, unscheduled demo on the new version of the washboard running from the new lattice client which mirrors functionality from wash.
  • Lattice client has been rewritten so we have a way to do almost everything wash can do but through a JS library.
  • Obtain, list and stop hosts - all the standard things you would do through wash are now avail on our new lattice client. Planning for release shortly.

Where we’ll be…

May 10th: Bailey will join Dan Lorenc at Chainguard to discuss all things Wasm, Kubernetes, distroless compute models and more. With RSA happening this week all eyes are on security: this should be a good one.

May 14th: Taylor will be at SWCon in Colorado talking all things Wasm and how it’s transforming Kubernetes estates and complex compute architectures. His talk: ‘Why Worry About WASM?’ takes place at 2pm in Breakout 3 (Wasm and Severless track).

Listen in…

  • The CNCF and Bytecode Alliance came together on CNCF Cloud Native Live for an interesting discussion on WASI 0.2 the Component Model..and the role of the BA in driving forward Wasm standards and tooling.
  • Cloud Native Wasm Day recordings are available! Particular highlights are presentations from our community users MachineMetrics and Orange.
  • Bailey joined Matt Butcher and industry analyst Dustin Kirkland on theCube (SiliconAngle) during KubeCon + CloudNativeCon to talk all things WebAssembly, take a look.
  • Check out the Arm Developer Podcast where Bailey and Liam discussed the intersection of Wasm and GPU technologies.
  • Cosmonic CTO Bailey Hayes met Chris Matteson (Fermyon) and Oscar Spencer (F5 NGINX) on the panel at the latest Kubernetes meetup in New York. They explored the Wasm what’s, why’s, standards and considerations when adoption. The recording is live!
  • Listen in to the last WasmEdge community meeting where Bailey Hayes talks all things WASI 0.2 and we hear from the students of the University of Tokyo on some cool new projects.
  • Bailey was a guest on a recent Rancher Live podcast with Divya Mohan. Tune in for a deep dive into WASI 0.2!