ash VS wgpu-rs

Compare ash vs wgpu-rs and see what are their differences.

ash

Vulkan bindings for Rust (by ash-rs)

wgpu-rs

Rust bindings to wgpu native library (by gfx-rs)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
ash wgpu-rs
13 16
1,734 1,699
2.2% -
8.4 9.0
10 days ago about 3 years ago
Rust Rust
Apache License 2.0 Mozilla Public License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ash

Posts with mentions or reviews of ash. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-02.
  • Going beyond build.rs: introducing cargo-px
    2 projects | /r/rust | 2 May 2023
    If you want to automate the creation of certain code that will be nested under the src directory, and committed into source control, there are a variety of ways to do that. One option is to create a sub-crate in your project that does the code-gen and you can run it as needed. The ash project is an example of this.
  • Hey Rustaceans! Got a question? Ask here (16/2023)!
    15 projects | /r/rust | 17 Apr 2023
    There is also [Vulkano](https://github.com/vulkano-rs/vulkano). It has a safe high level api and lower level layers, all the way down to [ash](https://github.com/ash-rs/ash) which is more or less raw vulkan. It's more explicit and verbose than [wgpu](https://github.com/gfx-rs/wgpu) though, so maybe try wgpu first and see how you like it.
  • A new picture of my ray tracing voxel engine (Vulkan/RTX/Rust)
    1 project | /r/VoxelGameDev | 30 Mar 2023
    Yes. I use Ash bindings for Vulkan and raw GLSL for shaders. I tried to use spirv-std for shaders—it was really great to have the benefits of Rust (structs, enums, strict type assertions, etc.)—until I needed to use buffer references. Unfortunaly, it is not yet implemented.
  • go-vk - A new Go language binding for Vulkan
    5 projects | /r/vulkan | 6 Mar 2023
    This is great, of all the vulkan go bindings I have been waiting for one that uses vk.xml to generate the bindings, because it's the only viable way to keep the bindings up-to-date. (fyi the popular [ash-rs](https://github.com/ash-rs/ash) is created the same-way).
  • undefined symbol: wlEglCreateSurfaceExport
    1 project | /r/pop_os | 30 Oct 2022
    Hi, I am having an issue on pop-os wayland where when I run a vulkan application I get an error symbol lookup error: /lib/x86_64-linux-gnu/libnvidia-vulkan-producer.so: undefined symbol: wlEglCreateSurfaceExport I have tested this with https://github.com/ash-rs/ash running the triangle example.
  • State of GPGPU in 2022
    12 projects | /r/rust | 27 Apr 2022
    Nice and simple. Its quite portable too. But simplicity and ease of use come with some limitations. Ash is much more complex but can extract every bit of power from your card if needed. Wgpu-rs github comes with many examples and you can find a really nice tutorial here
  • I made a video with every single debug render on a pathtracer I'm programming in Rust
    5 projects | /r/programming | 30 Nov 2021
    low level vulkan bindings
  • How to render text with rust?
    11 projects | /r/rust | 31 Oct 2021
    Glium and ash provide low level access to different common graphics api's. I'm sure there's a good directx-11/12 bindings as well but I'm unfamiliar with what people use.
  • https://np.reddit.com/r/rust/comments/pgruh2/most_efficient_way_to_write_and_read_large/hbfavpa/
    1 project | /r/backtickbot | 3 Sep 2021
    fn read_uncompressed_buffer( reader: &mut R, length: usize, // estimated via a seek or other mechanism file_is_little_endian: bool, ) -> Result> { let bytes = length * std::mem::size_of::(); // it is undefined behavior to call read_exact on un-initialized, https://doc.rust-lang.org/std/io/trait.Read.html#tymethod.read // see also https://github.com/MaikKlein/ash/issues/354#issue-781730580 let mut buffer = vec![0u64, length]; unsafe { // transmute u64 to bytes. let slice = std::slice::from_raw_parts_mut( buffer.as_mut_ptr() as *mut u8, length * std::mem::size_of::(), ); reader.read_exact(slice)?; } if is_native_little_endian() != file_is_little_endian { swap(&mut buffer, file_is_little_endian) } }
  • Most efficient way to write and read large amounts of u64s?
    1 project | /r/rust | 3 Sep 2021
    // it is undefined behavior to call read_exact on un-initialized, https://doc.rust-lang.org/std/io/trait.Read.html#tymethod.read // see also https://github.com/MaikKlein/ash/issues/354#issue-781730580 let mut buffer = vec![0u64, length]; unsafe { // transmute u64 to bytes. let slice = std::slice::from_raw_parts_mut( buffer.as_mut_ptr() as *mut u8, length * std::mem::size_of::(), ); reader.read_exact(slice)?; } if is_native_little_endian() != file_is_little_endian { swap(&mut buffer, file_is_little_endian) }

wgpu-rs

Posts with mentions or reviews of wgpu-rs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-04-30.
  • Using WGPU + crates directly or Bevy?
    1 project | /r/rust_gamedev | 4 Jul 2022
    You could start with one of examples from wgpu and tinker with it to see if that's your thing. Ie. copy hello-triangle and add more triangles / make them move, etc.
  • gfx-rs ecosystem releases v0.8
    3 projects | /r/rust | 30 Apr 2021
    wgpu-rs (https://github.com/gfx-rs/wgpu-rs) is probably closer to what you're looking for, it's a "high level wrapper" over wgpu-core (Which implements "WebGPU", an upcoming browser API for graphics using gfx-rs, and AIUI "implements" means this is what a browser might use to actually call a graphics API when javascript uses webGPU, although if you're compiling for wasm it could just call the browser APIs). It can run natively, ignore the fact it has "Web" in the name
  • Rust shader translator is 2.5x faster
    1 project | news.ycombinator.com | 27 Apr 2021
  • GPU compute shader for SHA256 using Rust!
    3 projects | /r/rust | 25 Apr 2021
    rust-gpu) is used for compiling a compute shader written in Rust to SPIR-V. wgpu-rs is used natively for running the GPU computation.
  • GPU programming .. SYCL
    2 projects | /r/rust | 15 Apr 2021
  • Bevy 0.5
    14 projects | /r/rust | 6 Apr 2021
    For web assembly there is the unofficial bevy_webgl2 plugin. Official bevy web assembly support would probably use the wgpu webgl backend, which still needs some work, and is currently untested in bevy.
  • Bevy 0.5: data oriented game engine built in Rust
    10 projects | news.ycombinator.com | 6 Apr 2021
    We let wgpu https://github.com/gfx-rs/wgpu-rs handle our graphics backend abstraction, so our OpenGL support will come whenever they implement and release it. Currently, it seems to be a WIP.
  • Help a newbie (in this language) to find directions :)
    1 project | /r/rust_gamedev | 2 Apr 2021
    It's the same thing, the Rust implementation is just called[wgpu](https://wgpu.rs/)
  • Last big wgpu-rs example shaders are fully ported to WGSL now, and validated in it
    6 projects | /r/rust_gamedev | 30 Mar 2021
    Same as with GLSL, isn't it? What we do in wgpu-rs examples, and that's something I expect to see more widely, is having an integration test that just parses all the WGSL in the project and reports errors. Ideally though, we'd have a set of IDE plugins to do the parsing and report errors right where you type the code. We'd appreciate any help to get these started!
  • Newbie questions on design patterns in Rust
    2 projects | /r/rust_gamedev | 21 Mar 2021
    Also you could use an existing cross-platform graphics library, e.g. wgpu-rs. It supports Vulkan, Metal, DirectX, OpenGL and WebGPU. Oh and it seems to allow switching backends at compile-time via the WGPU_BACKEND environment variable, so maybe check out how they're doing it.

What are some alternatives?

When comparing ash and wgpu-rs you can also consider the following projects:

learn-wgpu - Guide for using gfx-rs's wgpu library.

gfx - [maintenance mode] A low-overhead Vulkan-like GPU API for Rust.

vulkan-tutorial-rust - Following the vulkan tutorial(https://vulkan-tutorial.com/) using the Rust programming language.

awesome-bevy - A collection of Bevy assets, plugins, learning resources, and apps made by the community

rust-gpu-compute-example - Minimal example of using rust-gpu and wgpu to dispatch compute shaders written in rust.

bevy_webgl2 - WebGL2 renderer plugin for Bevy game engine

egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

vulkanalia - Vulkan bindings for Rust.

gpuweb - Where the GPU for the Web work happens!

wgpu - A cross-platform, safe, pure-Rust graphics API.

hash-shader - SHA256 WebGPU Compute Shader (Kernel) Written in Rust

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured