Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. emu

emu

MITRust

A write-once-run-anywhere GPGPU library for Rust that abstracts WebGPU for CUDA-like compute with portability across desktop, mobile, and browser.

Visit WebsiteGitHubGitHub
1.6k stars52 forks0 contributors

What is emu?

Emu is a GPGPU library for Rust that provides a CUDA-like compute abstraction over WebGPU, enabling portable GPU acceleration across multiple platforms including DirectX, Metal, Vulkan, and eventually OpenGL and browsers. It focuses on portability, modularity, and performance, allowing developers to offload heavy computations to user devices to reduce latency and improve privacy.

Target Audience

Rust developers working on compute-intensive applications who need cross-platform GPU acceleration, such as those building scientific simulations, data processing pipelines, or graphics tools that require CUDA-like ergonomics without being locked to specific hardware.

Value Proposition

Developers choose Emu for its unique combination of CUDA-like ergonomics with full WebGPU transparency, enabling zero-overhead interop with graphics and custom caches, alongside asynchronous execution and automatic device management for ease of use.

Overview

The write-once-run-anywhere GPGPU library for Rust

Use Cases

Best For

  • Building cross-platform GPU-accelerated applications that need to run on desktop, mobile, and eventually browsers.
  • Rust projects requiring CUDA-like compute ergonomics without vendor lock-in, using abstractions like DeviceBox and DevicePool.
  • Developers who need to mix GPU compute with WebGPU-based graphics in a zero-overhead manner.
  • Implementing JIT-compiled compute kernels with automatic caching for performance optimization.
  • Offloading heavy computations to user devices to reduce server latency and enhance privacy in distributed systems.
  • Creating portable simulations or data processing tools, such as gravitational simulations or hash collision finders, with GPU acceleration.

Not Ideal For

  • Projects requiring mature, battle-tested GPU libraries with extensive community support and stable APIs
  • Teams that need immediate support for OpenGL or browser targets, as these are listed as future goals in the README
  • Applications where low-latency, real-time compute is critical and cannot afford the overhead of async coordination and polling
  • Developers unfamiliar with async Rust or WebGPU concepts, due to Emu's reliance on asynchronous programming and raw WebGPU interop

Pros & Cons

Pros

Cross-Platform Portability

Uses WebGPU to support DirectX, Metal, Vulkan, and more, enabling GPU acceleration across desktop, mobile, and eventual browser platforms, as highlighted in the README's overview.

CUDA-Like Ergonomics

Provides DeviceBox<T> for type-safe GPU data and DevicePool for automatic device management, making compute easier for developers familiar with CUDA, as described in the features section.

Transparent Abstraction

Allows zero-overhead interop with raw WebGPU constructs, enabling mixing with graphics or customizing caches and compilers, mentioned in the transparency feature.

Asynchronous API

Most operations are non-blocking with synchronization via DeviceBox::get, improving performance by allowing concurrent execution, as stated in the async API description.

Cons

Early Development Stage

At version 0.1.1 with high-priority todos like ensuring correct WebGPU polling and adding WASM support, Emu may have instability and missing features, as noted in the contributing section.

Async Complexity

Requires handling asynchronous Rust with futures and executors, which adds boilerplate and potential bugs, as shown in the example where blocking is needed for execution.

Limited Shader Flexibility

Currently focuses on GLSL with restrictions for compute-only use, and support for WGLSL is a future enhancement, which may not suit developers preferring other shader languages or mixed workloads.

Frequently Asked Questions

Quick Stats

Stars1,604
Forks52
Contributors0
Open Issues20
Last commit3 years ago
CreatedSince 2019

Tags

#webgpu#compute-shader#gpu-acceleration#gpgpu#gpu-computing#cross-platform#rust-library#rust#gpu-programming#gpu

Built With

G
GLSL
R
Rust
S
SPIR-V
W
WebGPU

Links & Resources

Website

Included in

Rust56.6k
Auto-fetched 18 hours ago

Related Projects

nalgebranalgebra

Linear algebra library for Rust.

Stars4,765
Forks558
Last commit24 days ago
faer-rsfaer-rs

Linear algebra foundation for the Rust programming language

Stars2,564
Forks101
Last commit1 month ago
argminargmin

Numerical optimization in pure Rust

Stars1,269
Forks115
Last commit8 months ago
arrayfire-rustarrayfire-rust

Rust wrapper for ArrayFire

Stars826
Forks58
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub