avo icon indicating copy to clipboard operation
avo copied to clipboard

ports: port peachpy go projects to avo

Open mmcloughlin opened this issue 6 years ago • 10 comments
trafficstars

Consider porting existing PeachPy Go projects to avo. At a minimum this would be really valuable feedback and system-level testing for avo. These could be committed to the avo examples directory or potentially committed back to the original repos if their maintainers are interested.

Repository Description Stars
Yawning/chacha20 ChaCha20 cryptographic cipher. 33
Yawning/aez AEZ authenticated-encryption scheme. 6
robskie/bp128 SIMD-BP128 integer encoding and decoding. 22
dgryski/go-marvin32 Microsoft's Marvin32 hash function. 7
dgryski/go-highway Google's Highway hash function. 55
dgryski/go-metro MetroHash function. 66
dgryski/go-stadtx Stadtx hash function. See examples/stadtx 7
dgryski/go-sip13 SipHash 1-3 function. 17
dgryski/go-chaskey Chaskey MAC. 5
dgryski/go-speck SPECK cipher. 7
dgryski/go-bloomindex Bloom-filter based search index. 79
dgryski/go-groupvariant SSE-optimized group varint integer encoding. 25
bwesterb/go-sha256x8 Eight-way SHA256 0
gtank/ed25519 radix51 sub-package originally generated with PeachPy 8

mmcloughlin avatar Jan 07 '19 00:01 mmcloughlin

Porting my projects definitely on my TODO list. Start small then work big. Small are SPECK, marvin32, sip13. Maybe bloomindex. Medium are metro, chaskey, groupvarint. Large highway.

dgryski avatar Jan 07 '19 03:01 dgryski

Marvin32: https://github.com/dgryski/go-marvin32/blob/master/asm.go

dgryski avatar Mar 18 '19 04:03 dgryski

Sip13: https://github.com/dgryski/go-sip13/blob/master/asm.go

dgryski avatar Mar 18 '19 05:03 dgryski

SPECK: https://github.com/dgryski/go-speck/blob/master/asm.go

dgryski avatar Mar 18 '19 06:03 dgryski

groupvarint not worth converting. Only a single tiny asm routine. Removed peachpy but left the generated 10-line function.

dgryski avatar Mar 18 '19 18:03 dgryski

Will probably not convert stadtx, as you've already done that.

dgryski avatar Mar 18 '19 18:03 dgryski

Will probably not convert stadtx, as you've already done that.

Please feel free to copy that code into your repo.

mmcloughlin avatar Mar 18 '19 20:03 mmcloughlin

https://github.com/dgryski/go-bloomindex/blob/master/asm.go

dgryski avatar Mar 19 '19 03:03 dgryski

Also did https://github.com/dgryski/trifles/blob/master/tsip/go/asm.go (not on the list)

dgryski avatar Mar 19 '19 03:03 dgryski

https://github.com/dgryski/go-chaskey/blob/master/asm.go

Notable in this one is the loop helper type.

type loop string

var loops int

func newLoop(name string) loop {
	loops++
         if name == "" { name = "loop" }
	return loop(name + strconv.Itoa(loops-1))
}

func (l loop) begin() string { return string(l) + "_begin" }
func (l loop) end() string   { return string(l) + "_end" }

dgryski avatar Mar 19 '19 22:03 dgryski