wit-bindgen
wit-bindgen copied to clipboard
A language binding generator for WebAssembly interface types
I have been working on a C++ bindings generator in a fork at https://github.com/cpetig/wit-bindgen for some time. After a rewrite the code is less clumsy and could be considered for...
See discussion here: https://bytecodealliance.zulipchat.com/#narrow/stream/327223-wit-bindgen/topic/external.20export.20implementations/near/387677837 I also want this feature. It kind of used to exist with the old export macro approach that was replaced when resource type support was added....
This issue is created for a discussion on improving the `variants` type in the Go bindgen. To see how the variants type is generated, please read the head of this...
This commit overhauls the `WorldGenerator` file structure in the tinygo bindgen. Key changes include: - Splitting generated Go files into different packages for each interface, imported functions, and exported functions....
This PR moves the `define_anonymous_type` in C to the core crate, as I believe this is a common pattern in all wit binding languages generators. The benefit of this refactoring...
This is a minimum viable implementation of WIT templates per https://github.com/WebAssembly/component-model/issues/172. It supports interfaces with at most one wildcard function, which may be expanded (i.e. monomorphized) with a set of...
error snapshot ``` | 100 | pub fn generate_native_address(seed: &[u8]) -> Vec { | ^^^ not found in this scope | help: consider importing one of these items | 3...
Given the following wit: ```wit record color { r: float32, g: float32, b: float32, a: float32 } record vec4 { x: float32, y: float32, z: float32, w: float32 } //...
For example this will fail to generate correct bindings: ```wit package a:b; interface a { resource b; } world foo { use a.{b}; export f: func(x: list); } ```
Hi! I was following along with the [wasi-logging] proposal, but couldn't get `wit-bindgen` to generate markdown: ```shell $ wit-bindgen rust wit/world.wit Error: interface or world `logging` does not exist -->...