Collection of cryptography-related traits (by RustCrypto)

Traits Alternatives

Similar projects and alternatives to traits

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better traits alternative or higher similarity.

Suggest an alternative to traits

traits reviews and mentions

Posts with mentions or reviews of traits. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-04-30.
  • RustCrypto Release Announcements: `aead` v0.4, `cipher` v0.3, `crypto` v0.2, `elliptic-curve` v0.9, `ecdsa` v0.11
    3 projects | | 30 Apr 2021
    For ECIES that'd probably be something like HPKE. HPKE isn't specific to ECC though, and is defined in terms of a KEM, so the first step there would probably be defining KEM traits which would allow you to plug in ECDH or potentially a post-quantum algorithm or RSA.
  • The last and next year of image-rs
    9 projects | | 25 Feb 2021
    No need for eternal stability. It would be indeed nice to get the API right the first time, but in practice it's borderline impossible to do. It's fine for trait crates to introduce breaking changes from time to time, especially for pre-1.0 ones. For prior art you can take a look at rand_core or RustCrypto trait crates.
  • What’s everyone working on this week (8/2021)?
    11 projects | | 21 Feb 2021
    I finally dusted off my barely-working git hosting solution and added a basic user account system. It took me some time to understand how exactly I was supposed to use password-hash in combination with my hashing function of choice, as well as with the DB. Using sqlx together with Rocket turned out to be somewhat easy once I figured out that I should disregard the built-in database support, since it's seemingly incompatible with sqlx.
  • Go vs Rust for crypto implementations
    3 projects | | 17 Jan 2021
    The main difference between those two languages, I think you should look at, is power of type system. A good type system allows to encode various invariants checked at compile time, help with interoperability, and even improve performance a bit (e.g. by eliminating runtime-checks). In this regard Rust is far, far ahead of Go in my opinion and continues to improve in this regard (e.g. soon we will have const generics). For example, in RustCrypto we have trait crates which contain "interfaces" of several algorithm types. Almost all algorithm implementations in this org (and some third-party implementations) are implemented in terms of those traits, which means you can easily swap algorithms with each other and combine them like Lego blocks, without diving deep into source code. This property is especially important if you want to support less common algorithms (e.g. regional standards or newly developed algorithms).


Basic traits repo stats
2 days ago
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
Find remote jobs at our new job board There are 3 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.