Skip to main content

2024-05-22 Community Meeting

Brooks Townsend

Agenda​

  • DEMO: Update on capability providers; Postgres
  • DISCUSSION: Roadmap review

Meeting Notes​

Postgres interface RFC​

  • Couple exciting things coming down the line.
  • Bailey put out an RFC to talk about implementing a Postgres interface.
  • Generally, a highly requested feature for wasmCloud is to be able to access SQL databases.
  • SQL implementations can vary dramatically. We're starting with Postgres since it's so commonβ€”this is a great level of abstraction to start with.
  • We're generally looking for feedback on the RFC.

Postgres provider implementation​

  • To complement the RFC, we have an open PR where Victor is implementing a Postgres provider.
  • If you're looking to try it out and give some feedback, Victor added a Rust-based example component with instructions for running.
  • Component takes no arguments and returns a string, which is what we support with wash call, in the interest of simplicity.
  • A ton of conversation around the data types used by Postgres and aligning that with WIT.
  • If anyone has an example Postgres dataset they'd like to try with this, that would be a great way to contribute to wasmCloud.
  • Bailey: Path forward is to get some real applications running on this and see how we like it. Then we'll want to start looking at other storage providers. If anyone is really passionate about a particular provider, now would be a great time to bring that up on the wasmCloud Slack.
  • Question: What do you think might be the next target?
  • Bailey: We have some interest in Couchbase. In terms of relational databases, I'm really interested in SQLite, since so many things use it.

wrpc-keyvalue-nats​

  • Roman recently showed off a binary called wrpc-keyvalue-nats. My selfish wish is to get this upstreamed into wash and make it the next generation of wash call, to invoke any wRPC-exposed function.
  • Brooks shows off using the CLI to test a provider with a set and get.
  • Colin: This is an awesome way to debug when working with Postgres or MySQL.

Capability provider updates​

  • We've been doing a lot of work around the Provider SDK for Go, which essentially mirrors the Rust SDK.
  • There are many examples coming soon, so if you're interested in building a provider in Go, you'll have a good foundation to build on.
  • Brooks showed an example currently in a PR.
  • You can use go build to build this provider and go generate to generate all of the bindings. This will get you useful IDE erroring for the WIT interfaces you're using.
  • Brooks is working on a blank provider template for Rust and Go. Expanded docs are in the works to help build custom providers.

OCI for packaging​

  • Taylor updated on OCI progress. The next wash release will be able to push and pull with the new manifest type that is progressing as community standard.
  • Question: How does it work today in wasmCloud?
  • Taylor: Right now, various platforms implement OCI in their own way. So now we're coming together to develop a community standard. We'll still be pushing more or less the same thing, but the manifest will be a bit different. The new format is a community effort bringing in folks from Microsoft, Fermyon, Fastly, and others to standardize.

wadm-client and wadm provider​

Roadmap review​

  • Maintainers are looking at RFC on pluggable secrets management. This week, next week you should expect to see an RFC on some initial design, use cases we're considering, etc. The difference between config and secrets is going to be an important part of wasmCloud applications.
  • Postgres is moving along well as discussed earlier.
  • We've added some expanded docs on wadm.
  • Liam: We should have a doc page of the week to highlight new docs additions. (Great idea!)
  • Brooks showed off the Useful WebAssembly Tools and Virtualize (with WASI Virt) pages.
  • Yordis: We could use a spot to collect common debugging issues for recording in documentation.
  • Eric: Agreed - we could provide some guidance on this in a Contributing page.

Recording​