Meow hash for Golang

Owner
Comments
  • Implement version v0.2

    Implement version v0.2

    The hash has been updated to version v0.2. This library should be updated accordingly.

    https://github.com/cmuratori/meow_hash/tree/dc244b045e683fd6116197cc6db9db6972e51d50

  • Check CPUID flags

    Check CPUID flags

    Need to check the aes and avx bits. Note the avx bit is required because we need to use the vex-encoded version of the instruction for non-aligned memory access (cmuratori/meow_hash#9 for context).

    This only makes sense when we have an implementation to fallback to #3.

  • Implement the standard Go Hash interface

    Implement the standard Go Hash interface

    Do you think it might be possible to implement the standard hash.Hash, hash.Hash32, and hash.Hash64 interfaces. Then meow could be a drop-in replacement for many cases.

    https://golang.org/pkg/hash/#Hash

  • Add SDE testing to CI

    Add SDE testing to CI

    Adds Intel SDE testing to Travis CI job (for Haswell, Icelake and future chip types).

    Ideally we would also add CPUID mocking as well (to completely test dispatching). This can come later.

    Updates #7

  • Implement 256- and 512-bit AES versions

    Implement 256- and 512-bit AES versions

  • Setup Travis CI

    Setup Travis CI

    Continuous integration should:

    • Obviously go test
    • Ensure block_amd64.s is in sync with make_block.go
    • Build testvectors binary, regenerate testvectors.cc and go test again (to ensure continued compatibility with official version)
  • When would the VAES-256 implementation make sense?

    When would the VAES-256 implementation make sense?

    This is a reminder to myself, and a question to anyone who might happen to see this.

    1. Are there are processors that support VAES-256 but not VAES-512? Based on my current (nascent) understanding of the CPUID feature flags involved, I can't see a case where a processor would support VAES-256 but not VAES-512.
    2. If you have both, is there a reason why you would pick VAES-256 over VAES-512?
    3. Ultimately, what's the reason for the 256-bit version?
Related tags
ID type with marshalling to/from hash to prevent sending IDs to clients.
ID type with marshalling to/from hash to prevent sending IDs to clients.

Hide IDs Hide is a simple package to provide an ID type that is marshalled to/from a hash string. This prevents sending technical IDs to clients and c

Dec 10, 2022
Data Structures in Go: Hash Table

Data Structures in Go: Hash Table he time has come to implement one of the most commonly used data structures in software development - the Hash Table

Oct 20, 2021
CLRS study. Codes are written with golang.

algorithms CLRS study. Codes are written with golang. go version: 1.11 Heap BinaryHeap on array BinaryHeap on linkedlist LeftistHeap FibonacciHeap Tre

Dec 26, 2022
Golang string comparison and edit distance algorithms library, featuring : Levenshtein, LCS, Hamming, Damerau levenshtein (OSA and Adjacent transpositions algorithms), Jaro-Winkler, Cosine, etc...

Go-edlib : Edit distance and string comparison library Golang string comparison and edit distance algorithms library featuring : Levenshtein, LCS, Ham

Dec 20, 2022
Gota: DataFrames and data wrangling in Go (Golang)

Gota: DataFrames, Series and Data Wrangling for Go This is an implementation of DataFrames, Series and data wrangling methods for the Go programming l

Jan 6, 2023
Roaring bitmaps in Go (golang)

roaring This is a go version of the Roaring bitmap data structure. Roaring bitmaps are used by several major systems such as Apache Lucene and derivat

Jan 8, 2023
A simple Set data structure implementation in Go (Golang) using LinkedHashMap.

Set Set is a simple Set data structure implementation in Go (Golang) using LinkedHashMap. This library allow you to get a set of int64 or string witho

Sep 26, 2022
skiplist for golang

skiplist reference from redis zskiplist Usage package main import ( "fmt" "github.com/gansidui/skiplist" "log" ) type User struct { score float6

Dec 6, 2022
An in-memory string-interface{} map with various expiration options for golang

TTLCache - an in-memory cache with expiration TTLCache is a simple key/value cache in golang with the following functions: Expiration of items based o

Jan 8, 2023
High-performance minimalist queue implemented using a stripped-down lock-free ringbuffer, written in Go (golang.org)

This project is no longer maintained - feel free to fork the project! gringo A high-performance minimalist queue implemented using a stripped-down loc

Oct 24, 2022
Double-ARray Trie System for golang

Darts This is a GO implementation of Double-ARray Trie System. It's a clone of the C++ version Darts can be used as simple hash dictionary. You can al

Nov 17, 2022
Golang implementation of Radix trees

go-radix Provides the radix package that implements a radix tree. The package only provides a single Tree implementation, optimized for sparse nodes.

Dec 30, 2022
Golang library for reading and writing Microsoft Excelâ„¢ (XLSX) files.
Golang library for reading and writing Microsoft Excelâ„¢ (XLSX) files.

Excelize Introduction Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLSX / XLSM / XLT

Jan 9, 2023
HyperLogLog and HyperLogLog++ implementation in Go/Golang.
HyperLogLog and HyperLogLog++ implementation in Go/Golang.

HyperLogLog and HyperLogLog++ Implements the HyperLogLog and HyperLogLog++ algorithms. HyperLogLog paper: http://algo.inria.fr/flajolet/Publications/F

Nov 24, 2022
Golang library for querying and parsing OFX

OFXGo OFXGo is a library for querying OFX servers and/or parsing the responses. It also provides an example command-line client to demonstrate the use

Nov 25, 2022
Go (golang) library for reading and writing XLSX files.

XLSX Introduction xlsx is a library to simplify reading and writing the XML format used by recent version of Microsoft Excel in Go programs. Tutorial

Jan 5, 2023
Golang FrodoKEM implementation

FrodoKEM in Golang Golang implementation of FrodoKEM: a Practical quantum-secure key encapsulation from generic lattices (https://frodokem.org). This

Mar 3, 2022
Golang LRU cache

golang-lru This provides the lru package which implements a fixed-size thread safe LRU cache. It is based on the cache in Groupcache. Documentation Fu

Dec 29, 2022
A Golang lock-free thread-safe HashMap optimized for fastest read access.

hashmap Overview A Golang lock-free thread-safe HashMap optimized for fastest read access. Usage Set a value for a key in the map: m := &HashMap{} m.S

Dec 30, 2022