microsoft / microsoft/vscode-wasm
Feature Request: Explore alignment with cross-IDE WebAssembly Extension Standard
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 456
- Forks
- 40
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 4
Description
Summary
I'd like to propose exploring potential alignment between VS Code's WASM extension work and the emerging WebAssembly IDE Extension Standard - an open, IDE-agnostic specification for building sandboxed IDE extensions using WebAssembly.
Motivation
The WebAssembly IDE Extension Standard aims to enable write-once, run-anywhere IDE extensions through:
- Portability: Extensions work across any IDE implementing the standard
- Security: Capability-based permissions with fine-grained access control
- WASI Alignment: Built on WASI 0.2+ and the Component Model
- WIT Interfaces: Standardized interface definitions for IDE capabilities
VS Code's WASM work is excellent for running WASM within VS Code, but exploring cross-IDE portability could benefit the broader developer ecosystem.
Comparison
| Aspect | vscode-wasm | IDE Extension Standard |
|---|---|---|
| Scope | VS Code only | IDE-agnostic |
| Model | WASM within JS extension | Pure WASM extension |
| Permissions | Extension-level | Fine-grained capability-based |
| Interfaces | VS Code APIs | WIT-defined contracts |
Potential Benefits
- Ecosystem Growth: Extensions could run on VS Code, JetBrains IDEs, Zed, etc.
- Security Model: Fine-grained permissions (e.g.,
workspace:read,network:fetch:*.example.com) - Standardization: Common WIT interfaces for editor, workspace, UI, and language features
- Interoperability: Shared tooling and extension formats
Proposed Actions
- Review the specification
- Evaluate WIT interface definitions in the wit/ directory
- Consider if VS Code could optionally support extensions built to this standard
- Discuss potential collaboration on interface standardization
References
- WebAssembly IDE Extension Standard
- Specification Overview
- WIT Interface Definitions
- Example Extension
I'd love to hear the team's thoughts on this direction. Happy to discuss further or contribute if there's interest in exploring this.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked specification overview, the spec/0.1 directory, and the wit/ definitions, then inspect the examples/hello-world example. Compare those interfaces with the existing VS Code WASM work. Done would require a documented compatibility assessment and a decision about optional support or collaboration, but the issue does not identify implementation files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode, wasm
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100