wide
A crate to help you go wide. By which I mean use SIMD stuff. (by Lokathor)
bytemuck
A crate for mucking around with piles of bytes (by Lokathor)
wide | bytemuck | |
---|---|---|
1 | 2 | |
180 | 610 | |
- | - | |
6.2 | 7.8 | |
20 days ago | 18 days ago | |
Rust | Rust | |
zlib License | Apache 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.
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.
wide
Posts with mentions or reviews of wide.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-08-22.
-
Rust SIMD native vs. C-Libary
PS: You can use safe_arch to make code a bit more readable. Or even wide.
bytemuck
Posts with mentions or reviews of bytemuck.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-09-16.
-
Where can I read about how to write a safe API for unsafe code?
bytemuck uses a number of traits to provide safe APIs for bitcasts in cases where it's actually safe. This doesn't cover the full spectrum of safety in Rust (I imagine Send and Sync aren't too relevant here?), but if you can understand how this crate provides a safe API on top of a fair bit of unsafe, then you'll be well on your way here. (For extra credit, study zerocopy as well, which lives in a similar domain. Compare its use of unsafe and the functionality it provides with bytemuck.) I mention these crates because after a cursory look, they have decent comments describing safety obligations. So you have a decent chance of actually understanding the boundary between safe and unsafe here.
-
copying bytes from &[u32] to &mut [u8] the rust way
(Example: looking through the issues, bytemuck seemed to have a soundness issue just a few months ago: https://github.com/Lokathor/bytemuck/issues/170)
What are some alternatives?
When comparing wide and bytemuck you can also consider the following projects:
cargo-asm - cargo subcommand showing the assembly or llvm-ir generated for Rust code
zerocopy
cgmath-rs - A linear algebra and mathematics library for computer graphics.
deno - A modern runtime for JavaScript and TypeScript.
hora - 🚀 efficient approximate nearest neighbor search algorithm collections library written in Rust 🦀 .
crossbeam - Tools for concurrent programming in Rust
tiny-skia - A tiny Skia subset ported to Rust
safe_arch - Exposes arch-specific intrinsics as safe function (via cfg).
rust - Empowering everyone to build reliable and efficient software.
tinyvec - Just, really the littlest Vec you could need. So smol.