ash
egui
ash | egui | |
---|---|---|
13 | 220 | |
2,037 | 25,173 | |
2.0% | 2.5% | |
7.2 | 9.7 | |
about 1 month ago | 2 days ago | |
Rust | Rust | |
Apache License 2.0 | MIT OR Apache-2.0. |
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
-
Going beyond build.rs: introducing cargo-px
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)!
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)
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
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
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
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
low level vulkan bindings
-
How to render text with rust?
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/
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?
// 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) }
egui
- Open Source Can't Coordinate
-
Show HN: Tritium – The Legal IDE in Rust
That's very kind -- let's hope the legal profession feels the same way. It's certainly inspired by VS code. It's using egui (https://github.com/emilk/egui) under the hood. Big hats off to Emil Ernerfeldt and the team at rerun (https://app.rerun.io/) for the incredible work on a great immediate mode GUI library.
- C++26: more constexpr in the core language
- Egui – An immediate mode GUI written in Rust
-
Show HN: Interactive graphs in Rerun with a Rust port of D3-force
Thank you for linking your project—that looks really cool! I saw you also implemented a pan-and-zoom area. We are currently working on moving Rerun's implementation to egui [0], so maybe keep an eye on that.
It would be super cool to have layered graph drawing in (Sugiyama-style) in Rerun too. The tricky–but super interesting–challenge that we face is that our layout implementations need to be consistent across timestamps if the underlying structure of the graph changes, which is why we initially chose a force-based layout approach. There, the time-varying aspect is handled naturally by the simulation.
The very interactive nature of Rerun also poses more restrictions on the implementation of our algorithms: re-layouts ideally need to be fast, to produce visualizations quickly, especially when scrubbing the timeline.
I still hope we can rid you of some of the todos ;).
[0](https://github.com/emilk/egui/pull/5505)
- Egui 0.29.0 – Multipass, `UiBuilder`, & visual improvements
- Egui: An easy-to-use GUI in pure Rust
-
Show HN: IPA – a GUI for exploring inner details of PDF
Yeah, I knew I was in for some onoz when I saw "compiled to WebAssembly and rendered with WebGL". In their defense, it's stunning that any text operations work at all
Also, "There is no DOM, HTML, JS or CSS" is some uh-huh given the considerable amount of silliness involved in view-source:https://www.egui.rs/
-
Building cross-platform GUI apps in Rust using egui
One of these projects, which is built using Rust, is egui. In this article, we’ll see how we can build a simple, cross-platform GUI application with it.
-
Orca: WebAssembly Apps Without the Web
Cross-platform UI development is a total mess with literally zero solutions ticking all the boxes.
If you want to write an app which will target all the major platforms (3 desktops and two mobiles), want a native look and minimal effort for every platform you target, there is nothing apart from QT.
If you drop native look requirement, some small things like https://www.egui.rs/ might work for you.
If you drop the minimal effort requirement, all the webivew based mess might help you but it won't be easy due to multiple reasons.
What are some alternatives?
vulkan-tutorial-rust - Following the vulkan tutorial(https://vulkan-tutorial.com/) using the Rust programming language.
imgui-rs - Rust bindings for Dear ImGui
learn-wgpu - Guide for using gfx-rs's wgpu library.
iced - A cross-platform GUI library for Rust, inspired by Elm
wgpu-rs - Rust bindings to wgpu native library
slint - Slint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.