bytecodealliance / bytecodealliance/wit-bindgen

Prototyping handles and resources using a bindings-based implementation

Aperta
#586 6 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
1.5k
Fork
286
Merge medio
6h 32m
PR unite (30g)
19

Descrizione

As a way to enable more experimentation with the developer-facing side of resources, I propose we add support for parsing `resource` declarations and simple `handle` types, and implement them in bindings by lowering them into code similar to what we currently write by hand and call "pseudo-resources": plain `u32` indices, which index into an implied per-store table.

Pseudo-resources don't provide cross-component isolation, and have other limitations, so they are only a temporary measure, but they are enough to open up some important developer ergonomics improvements, such as support for method-calling syntax (eg. `thing.action()` instead of `action(thing)`), greater type safety and IDE guidance, automatic destructors, structured documentation, and communication of API intent.

Even though the pseudo-resource technique itself is temporary, some of this work, such as the parsing and AST, and wit-using code that can be built on top of this, should be migratable to full resources when the pieces are in place for that.

If anyone has thoughts or questions about this, please ask! For anyone interested in working in this area, for now, please reach out to me, so we can coordinate efforts. Especially as we get into the guest-side bindings part of this, there are likely to be several parallelizable tasks.

@silesmo

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

L’issue non indica file, test o punti di ingresso. Inizia discutendo l’ambito con l’autore dell’issue prima di esaminare le dichiarazioni delle risorse, il parsing semplice degli handle, il supporto per AST e il lowering dei bindings; il lavoro sarebbe completato quando sarà stato concordato un piano di implementazione e sarà stato coordinato il lavoro tra le attività di bindings pertinenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust, wasm
Ambito
developer-experience, tooling
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.