-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking: WASM Bindings (Group Chat Prod - Web) #557
Comments
Github, your 'convert to item' did me dirty when it came to converting issue 564, formerly a task about making the WASM bindings with a reference to an external URL. Apologies @nplasterer - can you please edit the correct title back into that issue? |
@bwcDvorak I think that item is just a header and doesn't need to be an issue. I restored it from the edit history. It was just linking out to the repo that will help with the bindings. |
TYVM! |
We've talked a lot about WASM bindings in terms of "make everything happen in Rust". The two sticking points are disk access (SQLite) and networking (GRPC Gateway or GRPC Web). To access the device APIs to do this in Rust, we'd need to use WASI. WASI is very bleeding edge, and making it work in a full-featured app that supports things like async and streaming, is going to be a big lift. We haven't spent a lot of time discussing the other alternative to make Risks:
I don't think we know enough yet for me to advocate for this solution. But it's a much clearer path than WASI and probably deserves a spike to derisk. |
Wasm runtimes support Host Functions. This seems to be similar to this, where we would expose a rust trait that JS needs to implement and pass host functions into the generated WASM blob. These host functions would generally be The downside here is we would need to convert all our sqlite insert/read code to a generic trait and implement it on the rust side too. |
The fact that |
Must Have
Tracking: MLS WASM DB/Storage (Group Chat Prod - Web) #556Tracking: MLS/WASM DB Storage #942xmtp_mls
client needs to be adapted to accept an abstractXmtpApiClient
& create a WASM-friendly implementation inxmtp_api_grpc_gateway
#563bindings_wasm
that mirrorbindings_ffi
https://github.com/rustwasm/wasm-bindgen (XXL)The text was updated successfully, but these errors were encountered: