Mission: Production-grade Zero-CGO WebGPU bindings for Go
This roadmap represents our current plans and priorities, not commitments. Features, timelines, and priorities may change based on community feedback, technical constraints, and ecosystem developments. For the most current status, see our GitHub Issues and Project Board.
Enable GPU-accelerated graphics and compute in pure Go — no CGO, no complexity, just Go.
| Challenge | Our Solution |
|---|---|
| CGO complexity | Zero-CGO via goffi FFI |
| Cross-compilation pain | Pure Go builds for all platforms |
| WebGPU fragmentation | Unified API via gputypes |
| Vendor lock-in | Open source, part of gogpu ecosystem |
| Metric | Status |
|---|---|
| Latest Release | |
| Platforms | Windows, Linux, macOS (x64, arm64) |
| API Coverage | ~80% WebGPU |
| Examples | 11 working demos |
| Test Coverage | ~70% |
| Component | Version | Role |
|---|---|---|
| wgpu-native | v29.0.0.0 | WebGPU implementation (Rust) |
| goffi | v0.5.0 | Zero-CGO FFI layer |
| gputypes | v0.3.0 | WebGPU type definitions |
We use GitHub labels to track feature progress:
| Label | Meaning |
|---|---|
phase:exploring |
Under consideration, gathering feedback |
phase:design |
Actively designing solution |
phase:development |
Implementation in progress |
phase:preview |
Available for testing |
phase:stable |
Production ready |
Focus: Ensure rock-solid foundation for production use.
| Feature | Status | Issue |
|---|---|---|
| gputypes integration | ✅ stable |
— |
| wgpu-native v27 compatibility | ✅ stable |
— |
| wgpu-native v29 migration (stable webgpu-headers) | ✅ stable |
#3 |
| webgpu-headers upgrade | ✅ stable |
#3 |
| All 11 examples working | ✅ stable |
— |
| Enum conversion layer (convert.go) | ✅ stable |
— |
| Error returns on all Create* methods | ✅ stable |
— |
| gputypes type aliases (single-import) | ✅ stable |
— |
| 271 ABI verification tests | ✅ stable |
— |
Focus: Complete WebGPU API coverage and extended wgpu-native capabilities.
| Feature | Status | Issue |
|---|---|---|
| Full gogpu/wgpu API parity | ✅ stable |
— |
| Buffer mapping (Map with context, async MapPending) | ✅ stable |
— |
| Region-based copy operations (CopyTextureToBuffer) | ✅ stable |
— |
| Queue submission index (wgpuQueueSubmitForIndex) | ✅ stable |
— |
wgpu-native extensions: logging (wgpuSetLogCallback) |
exploring |
— |
wgpu-native extensions: backend selection (WGPUInstanceExtras) |
exploring |
— |
| Storage textures | exploring |
— |
| Texture arrays | exploring |
— |
| Occlusion queries | exploring |
— |
| Pipeline statistics | exploring |
— |
| Multi-draw indirect | exploring |
— |
Focus: Optimize performance and developer experience.
| Feature | Status | Issue |
|---|---|---|
| Builder pattern for descriptors | exploring |
— |
| Command buffer pooling | exploring |
— |
| Descriptor caching | exploring |
— |
| Memory-mapped staging | exploring |
— |
| Error wrapping with context | exploring |
— |
| Example | Demonstrates | Status |
|---|---|---|
| PBR Renderer | Material system, lighting | exploring |
| Shadow Mapping | Depth textures, multi-pass | exploring |
| Post-processing | Framebuffers, effects | exploring |
| Particle System | Compute + render | exploring |
| Text Rendering | SDF fonts, atlases | exploring |
| Deferred Shading | G-buffer, MRT | exploring |
Before we tag v1.0.0 stable:
- 100% WebGPU API coverage
- 90%+ test coverage
- Comprehensive documentation
- Performance benchmarks
- Security review
- API stability guarantee
v1.0 Guarantees:
- No breaking changes in v1.x.x
- Semantic versioning
- Long-term support commitment
Features we do not plan to implement:
| Feature | Reason |
|---|---|
| WebGL fallback | WebGPU-only library |
| DirectX 11 backend | wgpu-native uses D3D12 |
| OpenGL backend | wgpu-native uses Vulkan/Metal |
| Custom shader language | WGSL standard only |
| Browser support | Native applications only |
We welcome contributions! Here's how to get involved:
good-first-issue— Great for newcomershelp-wanted— Community contributions welcomepriority:high— Most impactful work
Open a Feature Request to discuss before implementing.
See CONTRIBUTING.md for guidelines.
- GitHub Discussions — Questions, ideas, showcase
- Issues — Bug reports, feature requests
We track these projects for updates:
| Project | What We Track | Our Issue |
|---|---|---|
| wgpu-native | Releases, security fixes | #3 |
| webgpu-headers | Spec changes | #3 |
| goffi | Performance, platforms | — |
| gputypes | Type definitions | — |
| Version | Date | Highlights |
|---|---|---|
| v0.5.0 | Unreleased | wgpu-native v29, error returns, method renames, gputypes aliases, 271 ABI tests, Buffer.Map/MapAsync/MappedRange, Queue.Submit index, CopyTextureToBuffer regions, gogpu/wgpu API parity |
| v0.4.3 | 2026-03-29 | goffi v0.5.0 (Windows ARM64/Snapdragon X, FreeBSD amd64) |
| v0.4.2 | 2026-03-04 | goffi v0.4.2 (purego nofakecgo fix) |
| v0.4.1 | 2026-03-02 | goffi v0.4.1 (ABI compliance hotfix) |
| v0.4.0 | 2026-02-27 | Null handle guards, 85 null guard tests, WGPU_NATIVE_PATH env var |
| v0.3.2 | 2026-02-27 | goffi v0.4.0 (crosscall2 integration) |
| v0.3.1 | 2026-02-18 | goffi v0.3.9 (ARM64 callback fix) |
| v0.3.0 | 2026-02-09 | Error scopes, typed errors, resource leak detection, fuzz testing, API stability policy |
| v0.2.0 | 2026-01-29 | gputypes integration, wgpu-native v27, all examples fixed |
| v0.1.4 | 2026-01-03 | goffi v0.3.7 (ARM64 Darwin) |
| v0.1.3 | 2025-12-29 | goffi v0.3.6 (ARM64 HFA fix) |
| v0.1.2 | 2025-12-27 | goffi v0.3.5 |
| v0.1.1 | 2024-12-24 | goffi hotfix, PR workflow |
| v0.1.0 | 2024-11-28 | Initial release, 11 examples, 5 platforms |
See CHANGELOG.md for detailed release notes.
| Project | Description |
|---|---|
| gogpu | Pure Go WebGPU ecosystem |
| gputypes | Shared WebGPU type definitions |
| goffi | Zero-CGO FFI for Go |
This roadmap is inspired by GitHub's public roadmap practices.