Skip to content
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

WebAssembly Interface Types (WIT) #1721

Closed
kevburnsjr opened this issue Sep 19, 2023 · 2 comments
Closed

WebAssembly Interface Types (WIT) #1721

kevburnsjr opened this issue Sep 19, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@kevburnsjr
Copy link
Contributor

kevburnsjr commented Sep 19, 2023

waPC partially fulfills the need to transfer data beyond integers between host and guest across languages in wazero.
Apex expands on this to provide cross-language serialization for complex data types on top of WaPC.

However, it seems clear that WebAssembly Interface Templates are likely to dominate the future of this problem space.
I searched to find a WIT host bind generator for wazero and it doesn't seem to exist yet.
I haven't yet seen any posts discussing WIT host bindings for wazero anywhere either.

So before I dedicate a weekend to scoping out the work to write my own, I'd like to ask:

  • Has anyone given this topic any thought? (assume yes)
  • Does everyone consider WIT support a long term necessity for wazero? (also assume yes)
  • Are there any technical reasons why wit-bingen might not be possible for wazero?
  • Are there any technical reasons why wit-bingen might be more difficult with wazero than other runtimes?
  • Has anyone begun work on this effort?

From other wasm hosts in go:

bytecodealliance/wasmtime-go#170
Work will eventually be done in this repository to support the component model and *.wit-based bindgen, but for now there are not current plans to execute on that.

@kevburnsjr kevburnsjr added the enhancement New feature or request label Sep 19, 2023
@mathetake
Copy link
Member

I would recommend that you ask these kind of questions in #wazero channel in the Gophers slack as suggested in https://wazero.io/community/#wazero-community

But in short, we have zero intention to add any code before standardized (phase 5 of Wasm standard) phase, and hence WIT or whatever component model-related stuff is completely out of scope for now. Regardless of the state, the "support for WIT" should be implemented out of scope rathat than having here.

Simply answer you question (but please come in Gophers slack if you continue):

Does everyone consider WIT support a long term necessity for wazero? (also assume yes)

No for now, given that it's phase (phase 1/2 is completely "PoC" state, and are not worth the maintenance).

Are there any technical reasons why wit-bingen might not be possible for wazero?

I don't think so unless there's any peculiarity related to Component model

Are there any technical reasons why wit-bingen might be more difficult with wazero than other runtimes?

no.

Has anyone begun work on this effort?

no idea. (maybe ask in the #wazero channel?)

@kevburnsjr
Copy link
Contributor Author

Thanks for the response, @mathetake.
Will continue the conversation in #wazero.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants