Skip to content

AndreiPashkin/o1

Repository files navigation

Build

O1 Project

The O1 (as in O(1)) project focuses on implementing hashing schemes for perfect and general-purpose hash tables.

Roadmap to 1.0.0

  • Basic universal hashing function families.
    • The Dietzfelbinger multiply-shift family.
    • The polynomial family.
    • Optimizations by introducing SIMD instructions.
    • Other optimizations.
  • An alternative fast hashing algorithm.
    • XXH3 hashing algorithm.
  • The FKS perfect hashing scheme.
    • Compile-time construction.
    • Run-time construction.
    • Hybrid construction (with multi-stage build).
  • Benchmarking setup.
    • Against the HashMap from the standard library.
    • Against the HashMap with an alternative hasher.
    • Against phf.
    • Benchmarking of the hash functions.
  • Implement the brute-force perfect hashing scheme that guarantees minimal lookup and construction times at the expense of increased memory usage.
  • no_std support.
  • derive-macro for auto-generation of library's hashers.

Features

  • xxh3 - enables the XXH3 hashing algorithm.

Development

The following standards are followed to maintain the project:

Useful resources

About

Hashing schemes for perfect and general-purpose hash tables

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages