Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. doublejump

doublejump

BSD-3-ClauseGov1.0.1

A revamped jump consistent hash algorithm for Go that supports node removal with zero memory allocations.

GitHubGitHub
111 stars14 forks0 contributors

What is doublejump?

Doublejump is a Go implementation of a revamped jump consistent hash algorithm that extends Google's original design to support node removal. It solves the problem of distributing keys across nodes in distributed systems while allowing dynamic cluster changes without the limitation of fixed node sets. The library provides high-performance hashing with zero memory allocations.

Target Audience

Go developers building distributed systems, load balancers, or data partitioning solutions that require consistent hashing with dynamic node management.

Value Proposition

Developers choose Doublejump because it offers the speed and consistency of Google's jump hash while adding critical node removal functionality, outperforming alternative consistent hash implementations by 10-20x in benchmarks with zero allocation overhead.

Overview

A revamped Google's jump consistent hash

Use Cases

Best For

  • Implementing consistent hashing in distributed databases
  • Building load balancers that need dynamic backend management
  • Creating sharding systems with node addition/removal capabilities
  • Developing caching layers with consistent key distribution
  • Systems requiring high-performance hashing with minimal memory overhead
  • Go microservices that need to distribute work across worker nodes

Not Ideal For

  • Projects built in languages other than Go that require consistent hashing
  • Systems needing weighted node distribution or virtual node support for finer-grained control
  • Applications where simple round-robin or static hashing suffices without dynamic node changes
  • Teams relying on extensive third-party integrations or plugins not available in the Go ecosystem

Pros & Cons

Pros

Node Removal Support

Overcomes the key limitation of Google's original jump hash by allowing dynamic node removal while maintaining consistency, essential for real-world distributed systems.

Zero Allocation Efficiency

Operations perform with zero memory allocations, as shown in benchmarks with 0 B/op, making it highly memory-efficient and suitable for high-throughput systems.

High Performance Benchmarks

Benchmarks demonstrate 22-46 ns/op performance, significantly faster than alternatives like StathatConsistent and SerialxHashring, enabling low-latency key distribution.

Type-Safe Generic API

V2 offers a generic interface for Go 1.18+, providing type safety and modern Go features without sacrificing the minimalist design.

Cons

Go-Only Limitation

It's specific to Go, so projects in other languages cannot leverage its benefits, forcing polyglot teams to seek alternative implementations.

Basic Feature Set

Focuses solely on core hashing without built-in support for weighted nodes, replication, or fault tolerance, requiring additional logic for advanced use cases.

Version Split Complexity

The separation between V1 for Go <=1.17 and V2 for Go >=1.18 may confuse users and necessitate careful migration, especially in legacy codebases.

Frequently Asked Questions

Quick Stats

Stars111
Forks14
Contributors0
Open Issues0
Last commit3 years ago
CreatedSince 2018

Tags

#distributed-systems#go-library#hash-ring#golang#consistent-hashing#load-balancing#zero-allocation#data-distribution#performance

Built With

G
Go

Included in

Go169.1k
Auto-fetched 16 hours ago

Related Projects

Go-zeroGo-zero

A cloud-native Go microservices framework with cli tool for productivity.

Stars33,213
Forks4,312
Last commit1 day ago
go-kitgo-kit

A standard library for microservices.

Stars27,431
Forks2,444
Last commit2 years ago
KratosKratos

Your ultimate Go microservices framework for the cloud-native era.

Stars25,803
Forks4,168
Last commit23 days ago
grpc-gogrpc-go

The Go language implementation of gRPC. HTTP/2 based RPC

Stars23,013
Forks4,725
Last commit22 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub