Hey. I write a lot of stuff, mostly in Haskell. Some things you might be interested in:
- ppad-tech contains a bunch of foundational cryptography and adjacent libraries.
- π secp256k1 implements Schnorr/ECDSA on secp256k1. csecp256k1 binds to libsecp256k1.
- π bech32 supports bech32m/bech32; base58 supports base58 & base58check.
- π sha256 and sha512 implement their respective hash functions & HMACs, and ripemd160 supports RIPEMD-160.
- π hmac-drbg implements the HMAC-DRBG CSPRNG, and hkdf is a simple HMAC-based KDF.
I'm a lapsed statistician, so have a lot of random (ha ha, get it?) statistical libraries kicking around:
- π declarative is a suite of MCMC algorithms that can be combined together via a monadic DSL. There's:
- ποΈ mighty-metropolis, supplying a basic Metropolis sampler,
- π hasty-hamiltonian, for Hamiltonian Monte Carlo, and
- πͺ speedy-slice, for slice sampling.
- π flat-mcmc is a so-called affine invariant ensemble sampler.
- π² mwc-probability is a sampling-based probability monad.
- 𧩠sampling provides basic functionality for sampling from arbitrary Foldable collections.
- π measurable is an illustrative DSL for working with probability measures.
There's also some miscellanea that might be of interest:
- π cryptopals contains solutions to the famous cryptopals challenges.
- π okasaki implements stuff from Okasaki's Purely Functional Data Structures, often via recursion schemes and CPS.
- β¬οΈ up is a priority search queue (+up) and LRU cache (+lu) library for Hoon, plus a full suite of u3 jets in C.
- π’ hnock is a basic Nock interpreter for Haskell.
You can find a more comprehensive list at jtobin.io/software.