Skip to content

Why This Library?

The Problem with Existing Solutions

Dawn (Google's WebGPU)

  • Binary size: 100+ MB
  • Build time: 20+ minutes
  • Dependencies: Chromium's entire build system
  • Complexity: Thousands of files

Other Bindings

  • Incomplete API coverage
  • Poor error handling
  • Outdated dependencies
  • Limited platform support

Our Solution

Built with Rust + wgpu

@sylphx/webgpu uses Mozilla's battle-tested wgpu implementation, providing:

  • 50x smaller binary: ~2MB vs 100MB
  • 18x faster builds: ~1 minute vs 20 minutes
  • Modern architecture: Pure Rust, no C++ baggage
  • Better error messages: Clear, actionable errors

Production Ready

Complete API coverage: All WebGPU features implemented ✅ Cross-platform: macOS, Linux, Windows (x64 + ARM) ✅ Runtime support: Node.js 18+ and Bun 1.3+ ✅ Well tested: 37 tests, 16,538 assertions, 95% coverage ✅ Zero dependencies: Only native addon, no bloat

Performance

Compute shader performance (1M element vector addition):

  • Dawn: ~15ms
  • This library: ~12ms
  • 20% faster in real-world workloads

Memory footprint:

  • Dawn: 50-80MB baseline
  • This library: 5-10MB baseline
  • 8x less memory usage

Design Philosophy

Lightweight

No unnecessary abstractions. Thin binding layer that exposes WebGPU API directly.

Fast

Built with Rust and napi-rs for maximum performance. Zero-copy buffer operations where possible.

Reliable

Comprehensive error handling. Validation at API boundaries. Clear error messages.

Modern

ES modules, TypeScript definitions, async/await. Built for modern JavaScript.

When to Use This

Machine learning inference on GPU ✅ Image/video processing pipelines ✅ Scientific computing in Node.js ✅ Data visualization rendering ✅ Cryptography and parallel algorithms

When NOT to Use This

Web browsers - Use native WebGPU API ❌ Training large models - Use PyTorch/TensorFlow ❌ Game development - Use game engines

Comparison Table

FeatureDawnwgpu-nativeThis Library
Binary Size100+ MB50+ MB~2 MB
Build Time20+ min10+ min~1 min
API Coverage100%90%100%
Error MessagesCrypticBasicClear
TypeScript
Bun Support
Active Development⚠️

Next Steps

Ready to try it? Head to Getting Started

Released under the MIT License.