aboutsummaryrefslogtreecommitdiff
path: root/c/README.md
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2020-01-08 22:51:17 -0500
committerJack O'Connor <[email protected]>2020-01-09 09:48:52 -0500
commita7579d30ad16c19306cedeeacd919e319aff1089 (patch)
tree572423d117912988ccbd58bbbab305ec8bd09ce0 /c/README.md
parent56ced5b422f0289e5a26aedf2a7bc452ace66f1f (diff)
merge BLAKE3-c into this repo
This is commit 4476d9da0e370993823e7ad17592b84e905afd76 of https://github.com/veorq/BLAKE3-c.
Diffstat (limited to 'c/README.md')
-rw-r--r--c/README.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/c/README.md b/c/README.md
new file mode 100644
index 0000000..3c98c9b
--- /dev/null
+++ b/c/README.md
@@ -0,0 +1,28 @@
+# BLAKE3-c [![Actions Status](https://github.com/veorq/BLAKE3-c/workflows/tests/badge.svg)](https://github.com/veorq/BLAKE3-c/actions)
+
+A very rough initial implementation of BLAKE3 in C. SSE4.1, AVX2,
+AVX-512, and NEON are supported, using compile-time feature selection in
+the Makefile.
+
+This implementation is simpler than the [Rust
+implementation](https://github.com/veorq/BLAKE3). It doesn't support
+multithreading, and it doesn't parallelize parent hashes, so throughput
+is lower.
+
+TODO:
+- CI testing for AVX-512 and NEON.
+- Cross-platform build, e.g. Windows.
+- Dynamic CPU feature detection, at least for x86.
+
+Example usage:
+
+```bash
+$ make avx2
+$ head -c 1000000 /dev/urandom | ./blake3
+43f2cae3cfd7678bc3a3ebdbf170608d19d5ebaad23e9d06291dba3269853608
+$ head -c 1000000 /dev/urandom | ./blake3 --length 50
+4fc0ee74a60aa77fb699821997498fd93f1a98bd03eaf2a7969c4b35fb742c233a7a161fd2a431605f6e92dcf4cd7d052102
+$ head -c 1000000 /dev/urandom | ./blake3 --keyed 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
+8aee87b232fe90b042bf9119591e24409763a268139ff157d20021003e314064
+
+```