#hashing #md5 #sha1 #sha2 #hash


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

1 unstable release

Uses old Rust 2015

0.1.0 May 14, 2015

#43 in #sha1

Download history 365/week @ 2023-06-05 438/week @ 2023-06-12 424/week @ 2023-06-19 513/week @ 2023-06-26 584/week @ 2023-07-03 438/week @ 2023-07-10 421/week @ 2023-07-17 512/week @ 2023-07-24 297/week @ 2023-07-31 278/week @ 2023-08-07 369/week @ 2023-08-14 309/week @ 2023-08-21 267/week @ 2023-08-28 348/week @ 2023-09-04 256/week @ 2023-09-11 319/week @ 2023-09-18

1,213 downloads per month
Used in 12 crates (5 directly)




Build Status

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


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.


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

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.


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