Skip to content

Discussion: Interest in cross-IDE WebAssembly extension standard? #293400

@Amiya167

Description

@Amiya167

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

  1. Alignment opportunity: Your WASM extension work is impressive. Aligning on interfaces could benefit the broader ecosystem.

  2. Ecosystem benefits: A shared standard could allow extensions to work across VS Code, Zed, and other editors implementing the standard.

  3. Your expertise: VS Code's extension API is mature and well-designed. We'd love input on our interface design.

Questions

  1. Is there interest in participating in or observing the standard's development?
  2. Would VS Code consider supporting a subset of these interfaces for WASM extensions?
  3. 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)

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions