I have been working on a new library called dryoc, which is a general purpose cryptography library, modeled after libsodium. In fact, it started out as just a straight port of libsodium to Rust, and then I decided to make a few tweaks and diverge. With that said, it's designed to be completely compatible with libsodium.
I created this library because I found that many of the different Rust cryptography crates were either incomplete, broken or unusable in very peculiar ways, and it was just generally too hard to have to reimplement everything from scratch every time.
While the sodiumoxide crate works well, it lacks a few important features, notable: the ability to use protected memory features properly (i.e.,
mprotect()). Additionally, I wanted to design a type safe API that made it easy to use protected memory and hard to use it incorrectly. Also, sodiumoxide is merely a wrapper around the C library, so it doesn't offer all the benefits of Rust.
Here are the docs: https://docs.rs/crate/dryoc
And here's the project's homepage: GitHub - brndnmtthws/dryoc: dryoc: Don't Roll Your Own Crypto, a pure-Rust, general-purpose cryptography library
It's not entirely finished just yet (there are a few features missing, as noted in the project's readme), but I think it's far enough along to share it more widely. I'd be happy to receive feedback as well.