#hashing #sha-2 #hash #sha-1 #md5

shaman

A pure-Rust, cross-platform implementation of various common hashing algorithms

1 unstable release

Uses old Rust 2015

0.1.0 May 14, 2015

#2271 in Cryptography

Download history 447/week @ 2023-11-29 382/week @ 2023-12-06 421/week @ 2023-12-13 335/week @ 2023-12-20 231/week @ 2023-12-27 305/week @ 2024-01-03 413/week @ 2024-01-10 357/week @ 2024-01-17 263/week @ 2024-01-24 300/week @ 2024-01-31 280/week @ 2024-02-07 264/week @ 2024-02-14 199/week @ 2024-02-21 290/week @ 2024-02-28 213/week @ 2024-03-06 201/week @ 2024-03-13

944 downloads per month
Used in 12 crates (5 directly)

MIT/Apache

105KB
2K SLoC

Shaman

Build Status

A pure-Rust, cross-platform implementation of the SHA family of hashing algorithms.

Synopsis

Shaman is a kind-of fork of the popular, well-written rust-crypto library. Shaman seeks to be a cross-platform implementation of the SHA family of hashing algorithms. All of the extra functionality found within rust-crypto have been removed. Unless otherwise shown, all credit for implementing these algorithms goes to the original rust-crypto developers; I have done nothing but remove unnecessary code.

Usage

To use Shaman, add the following to your Cargo.toml:

[dependencies]
shaman = "*"

and the following to your crate root:

extern crate shaman;

Why Should I Use This?

That's the obvious question. Why should you use this library, when there's already a stable, widely used library available that provides the same (and more) functionality? Because you only want to generate SHA hashes. Rust-crypto, as wonderful as it is, provides a LOT of extra functionality that you may not want. Even if you're only using it to generate SHA hashes, you are still expected to download, compile, and link all of rust-crypto's dependencies. Seems a little unnecessary to me!

Personally, I believe that a library should Do One Thing And Do It Well. As useful as it is to have one large library available that suits all of your needs, if you only use it for a small subset of its features, you're wasting space. Even if your project has quite a bit of functionality, you won't get anything more than what you need.

License

Shaman, like it's upstream parent, is dual licensed under the MIT and Apache 2.0 licenses, the same licenses as the Rust compiler.

Dependencies

~535KB