List of crates that improves or experiments with Rust, but may be hard to find

Is this still needed with the new notch optimizations? The readme says

Not only does OptionBool improve space efficiency as opposed to Option<bool>

But nowadays bool, Option<bool>, and even Option<Option<bool>> and beyond are all the same size.

8 Likes

I think the original bool use case is gone, but I could see myself using that crate for storing optional floats, using NaN as the None value.

2 Likes

That’s exactly what I plan to use it for.

2 Likes

typenum has no underscore nor does it use a lowly Peano encoding (it’s a binary encoding!)

(edit: okay the peano thing was fixed, but that underscore is still there silently taunting at me)

1 Like

I tried to be careful how I mentioned peano followed by typenum:man_shrugging:

1 Like

https://crates.io/crates/static_assertions

Extended the list from relevant “Crate of the Week” posts.

Can you please link the ‘cargo-specific or related tools’ section?

Done.

cargo license - List all dependencies by licence. There is also some alternative implementation, but I forgot the name.

cargo-lichking. Haven’t researched them for their strengths or weaknesses.

proptest probably derserves a mention alongside quickcheck :slight_smile:

2 Likes

Maintainer of optional here. I was about to deprecate OptionBool when re-running the benchmarks still showed some measurable differences. So yes, it no longer has a space advantage, but it may sometimes have a time advantage.

Even without OptionBool, the crate still has option replacements for other types.

1 Like

Have you filed bugs for those?

2 Likes

cargo-make rust build tool and task runner.
comes with many default tasks to make any project development easier and automated.

rules was an incomplete experiment to bring Perl 6 style regex to rust. There is a lot which could be done to extend the project. I’m not sure if this is the type of thing you’re looking for.

I definitely think this type of thing might be really positive in the long run but it would have be more fully implemented to verify in any fashion.

I made some crates that I think could fit onto the list.

  • array-macro - vec![something; 4] for arrays, not requiring a Copy implementation
  • reexport-proc-macro - probably useless with Rust 2018 where you can go pub use crate_derive::Trait, but allows reexporting a procedural derive, not requiring an user of a crate to have a dependency on derive crate
  • https://crates.io/crates/enum-map - just like EnumMap in Java, except for Rust, a map implementation optimized for enums implemented as an array

I made https://crates.io/crates/query_interface

It’s like mopa but on steroids.

Aaarrggghhh!!! My most hated phrase!!! :grinning:

4 Likes

The link to alga crate has lead me to the ScratchPad II ( http://www.csd.uwo.ca/~watt/pub/reprints/1990-miola-spadtypes.pdf ), it’s another example how in computer science lot of important ideas were invented lot of time ago. It seems to contain a perhaps better version of the Rust traits… :-/

agree. i propose, instead of “on steroids”: “gone to Hollywood” . as in

“It’s like mopa but gone to hollywood”