Our great sponsors
-
extism
The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
take a look at the docs & github if you're interested: https://extism.org & https://github.com/extism/extism
There are lots of solutions to this, I was randomly looking into this yesterday purely out of curiosity and it looks to me like wasmi is the current go-to option.
fp-bindgen is a library that can help you if you to write custom plugin APIs for such a use case: https://github.com/fiberplane/fp-bindgen
Yes. I implemented the WASM logic for Ambient. It's all doable, but as the other commenters have mentioned, bindings can be a bit of a pain.
Here's another example: https://github.com/bnjbvr/trinity
I wrote a toy example of this a few years ago. It's probably a little outdated, but it's also probably a little easier to get your head around than reading a full-fledged plugin system in something like lapce: https://github.com/pmsanford/wasmloading
yes, it's perfectly possible, the biggest hurdle to this is that you need some way to map the data into and out of wasm memory, you can do this manually or use one of the crates that currently solve this problem (I'm author of a github)