component-model
component-model copied to clipboard
Repository for design and specification of the Component Model
This PR servers as an initial description of what the desired behavior of an `unlocked-dep` would include. As exemplified in the PR, most language toolchains would probably use it in...
This PR adds BuildTargets.md to define this new concept of "build targets" as presented in both [CG-06](https://docs.google.com/presentation/d/1Y-R2fsvsurfT1cpKMvxERnqAPvWlLgiEESiheUj-QUY/edit#slide=id.g2e1fc4d92ea_0_223) and [WASI-06-12](https://github.com/WebAssembly/meetings/blob/main/wasi/2024/WASI-06-13.md), which itself was a revision of the earlier "`wasit2`" idea that...
This all started with defining zero copy shared memory over a WIT interface (channel is WIT resource, inspired by [iceoryx2](https://github.com/eclipse-iceoryx/iceoryx2?tab=readme-ov-file#publish-subscribe)): ```Rust let channel = Channel_u32::new("topic"); loop { let message =...
This is a link to tom7's amazing PhD: http://tom7.org/papers/modal-types-for-mobile-code.pdf As the PhD says, it's about "modal types for mobile code". We see it as an alternative to the threading model...
Currently in the canonical ABI resources (`own` and `borrow`) are required to strictly follow the specification in terms of how integers are assigned to handles as they are created. Specifically...
While the asymmetry between imported and exported functions and resources is directly caused by the asymmetry between guest and host, a symmetrical ABI option would enable direct fusion of components...
This extends #181 with the ability to embed bounded strings or lists directly within other structures while maintaining the variable length property. Some environments require avoiding all memory allocations at...
I think it would be beneficial to add a built-in `error` type to the Component Model and WIT to serve as the go-to type to use when you want to...
Following #377, we'd like to be able to write `@deprecated` with a `message` parameter containing a user-defined string, like this: ```wit package local:demo; interface host { @deprecated(version = "1.1.0", message...
This isn't a fully-fleshed out idea, but it's coming up in #369 and so I thought it might be nice to split out here. I'm tentatively excited about it, though...