Lokathor / wide

A crate to help you go wide. By which I mean use SIMD stuff.
https://docs.rs/wide
zlib License
284 stars 24 forks source link

Zero dependency variant #58

Closed RazrFalcon closed 4 years ago

RazrFalcon commented 4 years ago

Currently, the crate has two dependencies, and for such a simple and low-level crate I would assumed that it should not have any dependencies at all. At least this is what I'm trying to do with my crates.

Would you be interested in removing all the dependencies?

Lokathor commented 4 years ago

The two dependencies provide vital unsafe operations with a safe interface.

Actually if you look in the git history you'll see that safe_arch used to be a part of this crate directly, but it was factored into its own crate so that the safe wrapping could all be put in one place and possibly others could use it as well.

Similarly, bytemuck used to be part of a larger crate, but it's so useful that it was placed in a small and self-contained crate of its own, where the unsafe code can be carefully audited and kept behind a safe interface.

Because of these crates, we're able to keep nearly all unsafe code out of wide, other than the impls of the bytemuck traits. This is a pretty good thing, and vendoring a copy of code from those crates into this crate wouldn't really gain us anything.