summaryrefslogtreecommitdiff
path: root/gnu/packages/golang.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2018-10-24 11:37:14 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2018-10-24 12:13:49 +0200
commitff2d11c3ce8dc1fb3715bffbc058fa4ab22226b1 (patch)
tree65ebefd405c15187a834b4e0cf079d0748efd4b0 /gnu/packages/golang.scm
parentd5599afadf9026079ef5bf34af9d1b111731b81b (diff)
gnu: Add go-github-com-minio-sha256-simd.
* gnu/packages/golang.scm (go-github-com-minio-sha256-simd): New variable.
Diffstat (limited to 'gnu/packages/golang.scm')
-rw-r--r--gnu/packages/golang.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 1cc10d5ff0..1631c0bc72 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -2696,3 +2696,39 @@ Although this package was primarily written for btcd, it has intentionally
been designed so it can be used as a standalone package for any projects
needing to use secp256k1 elliptic curve cryptography.")
(license license:isc))))
+
+(define-public go-github-com-minio-sha256-simd
+ (let ((commit "51976451ce1942acbb55707a983ed232fa027110")
+ (revision "0"))
+ (package
+ (name "go-github-com-minio-sha256-simd")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/minio/sha256-simd.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0kaxvpidf6ygkkb06vi95pirll31jnmywhyalfjvf7djhim2wr8f"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/minio/sha256-simd"))
+ (home-page "https://github.com/minio/sha256-simd")
+ (synopsis "Accelerate SHA256 computations in pure Go")
+ (description "Accelerate SHA256 computations in pure Go using AVX512 and
+AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
+improvement (over 3 GB/s per core) in comparison to AVX2.
+
+This package is designed as a replacement for @command{crypto/sha256}. For
+Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
+supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
+of the SHA2 instructions resulting in a massive performance improvement.
+
+This package uses Golang assembly. The AVX512 version is based on the Intel's
+\"multi-buffer crypto library for IPSec\" whereas the other Intel
+implementations are described in \"Fast SHA-256 Implementations on Intel
+Architecture Processors\" by J. Guilford et al.")
+ (license license:asl2.0))))