WebGPU is often perceived as a web graphics API that grants unified and fast access to GPUs by exposing cutting-edge hardware capabilities and enabling rendering and computation operations on a GPU, analogous to Direct3D 12, Metal, and Vulkan.
Exploring the current ecosystem
At the same time, Mozilla and Google recognized WebGPU's potential in platform-specific applications and separated WebGPU implementations from browsers, enabling standalone usage.
For Chrome, this materialized as Dawn, a C/C++ library that translates WebGPU calls into GPU driver commands. Dawn empowers C and C++ applications to use WebGPU natively, providing a portable and ergonomic GPU abstraction using browser vendor expertize.
As demonstrated in the blog post WebGPU: the cross-platform graphics API of tomorrow, porting a platform-specific WebGPU application to the web is straightforward. Emscripten, the C++ WebAssembly toolchain, already supports WebGPU, requiring only minimal modifications to port it to the web.
This establishes a parallel ecosystem between Rust and C++ as shown in the following diagram.
Your preferred programming language may actually already have bindings for WebGPU as engineers working on WebGPU implementations are also developing a common C header for WebGPU. This can be used to target Dawn, wgpu, and others, easing the creation of bindings for languages using C FFI.
The Chrome team is also considering using Dawn as the default rendering backend for all browser UI elements, including menus, toolbars, developer tools, and web content. This would eliminate the need for separate rendering implementations for each native API, simplifying the development process. This feature is currently in the experimental stage on macOS and Windows behind the