Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by LAC-Tech on Monday June 09, 2025 @12:29AM
(#44221415)
It's also worth pointing out that the Zig std library covers a lot more than the rust one. No need for things like rustix, rand, hashbrown, and a few others I always have to add whenever I do rust stuff.
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by nindalf on Monday June 09, 2025 @12:52AM
(#44221499)
You add hashbrown as an explicit dependency? The standard library HashMap is a re-export of hashbrown. Doesn’t it work for you?
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by vlovich123 on Monday June 09, 2025 @01:11AM
(#44221587)
Can’t speak for the op but there’s a number of high performance interfaces that avoid redundant computations that are only available directly from hashbrown.
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by LAC-Tech on Monday June 09, 2025 @01:10AM
(#44221579)
huh, does it? I always add it so I can make non-deterministic hashmaps in rust. oh and you need one more one for the hashing function I think.
But I did not know hashmap re-exported hashbrown, thanks.
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by nindalf on Monday June 09, 2025 @02:57AM
(#44222025)
Yep, they’re the same since Rust 1.36 (Jul 2019) - https://blog.rust-lang.org/2019/07/04/Rust-1.36.0/
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by LAC-Tech on Monday June 09, 2025 @03:11AM
(#44222101)
https://doc.rust-lang.org/std/?search=hashbrown
looks like there's no way to access it, outside of hashmap.
Though maybe you just need the third party hasher and you can call with_hasher.
IDK man there's a lot going on with rust.
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by nindalf on Monday June 09, 2025 @08:03AM
(#44223598)
Yes that’s exactly it. If speed is a priority and the input is trusted, change the hasher to something faster like ahash. The ahash crate makes this easy.
Re:Zig Devlog: Self-Hosted x86 Back End Is Now Default in De...
by eknkc on Monday June 09, 2025 @05:35AM
(#44222740)
It is pretty easy to interface stuff like QuickJS C API. I had a POC here from last year: https://github.com/eknkc/zquickjs
Even this is pretty usable, handling value conversions and such thanks to comptime. (Take a look at the tests here: https://github.com/eknkc/zquickjs/blob/master/src/root.zig)
SDL3 has both a native Zig wrapper: https://github.com/Gota7/zig-sdl3
And a more basic repackaging on the C library/API: https://github.com/castholm/SDL
For QuickJS, the only option is the C API: https://github.com/allyourcodebase/quickjs-ng
Zig makes it really easy to use C packages directly like this, though Zig's types are much more strict so you'll inevitably be doing a lot of casting when interacting with the API