-
Notifications
You must be signed in to change notification settings - Fork 38.9k
Discussion: Interest in cross-IDE WebAssembly extension standard? #293400
Description
Summary
Hi VS Code team! 👋
We're developing an open standard for WebAssembly-based IDE extensions that enables cross-IDE portability. Given VS Code's ongoing work with WASM extensions, we wanted to reach out and gauge interest in potential collaboration or alignment.
The Standard
Repository: WebAssembly-IDEs-Extension-standard
Key features:
- WIT-based interfaces: Type-safe API definitions using WebAssembly Interface Types
- Capability-based security: Fine-grained permission model similar to VS Code's
- Conformance levels: IDEs can implement subsets progressively (0-5)
- Language agnostic: Extensions in Rust, C/C++, Go, AssemblyScript, etc.
Interface Coverage
| Category | Interfaces |
|---|---|
| Core | lifecycle, logging, context, events, storage |
| Editor | text, selection, decorations |
| Workspace | filesystem, project |
| UI | notifications, commands, menus, quickpick, webview |
| Language | completion, diagnostics, hover, definition, symbols |
| Network | fetch, websocket, realtime |
| Collaboration | crdt, awareness, session (optional) |
Why We're Reaching Out
-
Alignment opportunity: Your WASM extension work is impressive. Aligning on interfaces could benefit the broader ecosystem.
-
Ecosystem benefits: A shared standard could allow extensions to work across VS Code, Zed, and other editors implementing the standard.
-
Your expertise: VS Code's extension API is mature and well-designed. We'd love input on our interface design.
Questions
- Is there interest in participating in or observing the standard's development?
- Would VS Code consider supporting a subset of these interfaces for WASM extensions?
- Are there technical constraints or design decisions from your WASM work that we should consider?
We understand VS Code has its own roadmap and priorities. Even feedback on the approach would be valuable!
Note: This is exploratory. We're not expecting immediate adoption, just opening a dialogue. The standard is currently at v0.1 (draft).
cc @jrieken @bpasero (apologies if these aren't the right people to tag)