mirror of https://gogs.blitter.com/RLabs/xs
2/3 Added vendor/ dir to lock down dependent pkg versions.
The author of git.schwanenlied.me/yawning/{chacha20,newhope,kyber}.git has copied
their repos to gitlab.com/yawning/ but some imports of chacha20 from newhope still
inconsistently refer to git.schwanenlied.me/, breaking build.
Licenses for chacha20 also changed from CC0 to AGPL, which may or may not be an
issue. Until the two aforementioned issues are resolved, locking to last-good
versions is probably the best way forward for now.
To build with vendored deps, use make VENDOR=1 clean all
3/3 Moved body of CI push script into bacillus/
|
||
|---|---|---|
| .. | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| avx2_amd64.s | ||
| nosimd.go | ||
| sse2_amd64.s | ||
| xor.go | ||
| xor_amd64.go | ||
| xor_other.go | ||
README.md
XOR
XOR code engine in pure Go
more than 10GB/S per core
see: https://github.com/templexxx/xorsimd
Introduction:
- Use SIMD (SSE2 or AVX2) for speeding up
- ...
Installation
To get the package use the standard:
go get github.com/templexxx/xor
Documentation
See the associated GoDoc
Performance
Performance depends mainly on:
- SIMD extension
- unit size of worker
- hardware ( CPU RAM etc)
Example of performance on my MacBook 2014-mid(i5-4278U 2.6GHz 2 physical cores). The 16MB per shards.
speed = ( shards * size ) / cost
| data_shards | shard_size | speed (MB/S) |
|---|---|---|
| 2 | 1KB | 64127.95 |
| 2 | 1400B | 59657.55 |
| 2 | 16KB | 35370.84 |
| 2 | 16MB | 12128.95 |
| 5 | 1KB | 78837.33 |
| 5 | 1400B | 58054.89 |
| 5 | 16KB | 50161.19 |
| 5 | 16MB | 12750.41 |
Who is using this?
- https://github.com/xtaci/kcp-go -- A Production-Grade Reliable-UDP Library for golang