sha256-simd
Accelerate SHA256 computations in pure Go using AVX512, SHA Extensions for x86 and ARM64 for ARM. On AVX512 it provides an up to 8x improvement (over 3 GB/s per core). SHA Extensions give a performance boost of close to 4x over native. (by minio)
asm
Go library providing algorithms optimized to leverage the characteristics of modern CPUs (by segmentio)
Our great sponsors
sha256-simd | asm | |
---|---|---|
2 | 4 | |
885 | 802 | |
2.6% | 0.4% | |
0.0 | 0.0 | |
4 months ago | 6 months ago | |
Go | Go | |
Apache License 2.0 | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sha256-simd
Posts with mentions or reviews of sha256-simd.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-16.
-
Can I concatenate multiple non-crypto hash functions to reduce collision?
SHA256 is high quality but typically a bit slower. Next Go version will have faster SHA256 on some amd64 CPUs - until then you can try sha256-simd which offers the same.
asm
Posts with mentions or reviews of asm.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-12-30.
-
Quickly checking that a string belongs to a small set
We took a similar approach in our JSON decoder. We needed to support sets (JSON object keys) that aren't necessarily known until runtime, and strings that are up to 16 bytes in length.
We got better performance with a linear scan and SIMD matching than with a hash table or a perfect hashing scheme.
See https://github.com/segmentio/asm/pull/57 (AMD64) and https://github.com/segmentio/asm/pull/65 (ARM64). Here's how it's used in the JSON decoder: https://github.com/segmentio/encoding/pull/101
What are some alternatives?
When comparing sha256-simd and asm you can also consider the following projects:
avo - Generate x86 Assembly with Go
asm - Learning assembly for linux-x64
faasd - A lightweight & portable faas engine
cpu - cpu command in Go, inspired by the Plan 9 cpu command
tinyfont - Text library for TinyGo displays
photoscope - Journey into photo management with golang
NFF-Go - NFF-Go -Network Function Framework for GO (former YANFF)