awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Consistent hashing algorithm

Ranking updated Aug 4, 2026

For consistent hashing algorithms, the first results are buraksezer/consistent (This Go library provides consistent hashing with bounded loads and virtual nodes for distributed data partitioning, which squarely matches your need for load balancing and cluster member mapping), reset/hash-ring-ex (This repository provides a consistent hash ring implementation in Elixir, directly fitting the required category though lacking some advanced distributed features) and facebookincubator/katran (Katran uses weighted consistent hashing for packet distribution, but it is a kernel-space Layer 4 load balancer rather than a general-purpose consistent hashing algorithm library for distributed systems). elixir-lang/elixir and grafana/alloy round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Explore the top open-source consistent hashing algorithms on GitHub, ranked by stars and activity, and find the best fit for your project.

Consistent hashing algorithm

Find the best repos with AI.We'll search the best matching repositories with AI.
  • buraksezer/consistentburaksezer avatar

    buraksezer/consistent

    774View on GitHub↗

    Consistent is a Go library that implements consistent hashing with bounded loads to distribute data keys across nodes in a distributed system. It provides a mechanism for mapping keys to cluster members that minimizes data movement during membership changes while preventing performance hotspots. The library distinguishes itself by enforcing strict capacity limits on individual nodes, ensuring that no single member becomes overwhelmed by excessive key assignments. It supports virtual node mapping to distribute physical capacity across the hash ring, allowing for granular control over load bala

    This Go library provides consistent hashing with bounded loads and virtual nodes for distributed data partitioning, which squarely matches your need for load balancing and cluster member mapping.

    GoConsistent Hashing
    View on GitHub↗774
  • reset/hash-ring-exreset avatar

    reset/hash-ring-ex

    24View on GitHub↗

    A consistent hash ring implemention for Elixir

    This repository provides a consistent hash ring implementation in Elixir, directly fitting the required category though lacking some advanced distributed features.

    ElixirAlgorithms and Data Structures
    View on GitHub↗24
  • facebookincubator/katranfacebookincubator avatar

    facebookincubator/katran

    5,270View on GitHub↗

    Katran is an eBPF-based Layer 4 load balancer designed for high-performance network packet forwarding directly within the Linux kernel. It utilizes an XDP network packet processor to bypass the standard kernel network stack, minimizing latency and maximizing throughput for incoming traffic. The system implements weighted consistent hashing to distribute network loads and maintain session persistence across backend servers. It further optimizes the return path through a direct server return gateway, which allows backends to respond directly to clients and removes the load balancer from the out

    Katran uses weighted consistent hashing for packet distribution, but it is a kernel-space Layer 4 load balancer rather than a general-purpose consistent hashing algorithm library for distributed systems.

    CConsistent HashingLoad Balancing Ring HashingWeighted Hash Rings
    View on GitHub↗5,270
  • elixir-lang/elixirelixir-lang avatar

    elixir-lang/elixir

    26,543View on GitHub↗

    Elixir is a functional, concurrent programming language designed for building scalable and maintainable applications. It operates on the Erlang virtual machine, leveraging a distributed, fault-tolerant runtime environment that manages lightweight processes to ensure system reliability. By utilizing an actor-model supervision strategy, the language enables the creation of high-concurrency backend systems that automatically recover from failures and maintain stability under heavy loads. The language distinguishes itself through a powerful metaprogramming environment that allows developers to ex

    Elixir is a general-purpose programming language rather than a consistent hashing library, though its runtime features support building distributed systems.

    ElixirFault Tolerance PatternsFault-Tolerant Architectures
    View on GitHub↗26,543
  • grafana/alloygrafana avatar

    grafana/alloy

    2,910View on GitHub↗

    Alloy is a clustered telemetry collector and observability data pipeline that functions as an OpenTelemetry collector distribution. It acts as a declarative configuration engine for collecting and routing metrics, logs, traces, and profiles from various sources to monitoring backends. The system distinguishes itself through a distributed architecture that uses consistent hashing to balance scraping targets and collection workloads across multiple nodes. It manages fleet-wide settings via remote configuration fetching and a modular system for importing reusable pipeline patterns. As a Kubernet

    Alloy is a telemetry collector and observability pipeline rather than a reusable consistent hashing library, even though it uses consistent hashing internally for workload distribution.

    GoConsistent HashingConsistent Hashing
    View on GitHub↗2,910
  • jhalterman/failsafejhalterman avatar

    jhalterman/failsafe

    4,307View on GitHub↗

    Failsafe is a JVM resilience library providing a collection of fault tolerance patterns for Java applications. It functions as an asynchronous execution wrapper that runs tasks in the background and returns futures to prevent thread blocking. The library allows for the composition of resilience policies, enabling multiple patterns to be stacked into a sequential pipeline. It includes specific implementations for circuit breaking to prevent system overload, rate limiting to control traffic flow, and a framework for managing retries and fallbacks. Capability areas cover traffic management thro

    Failsafe is a Java resilience library focused on circuit breaking, retries, and rate limiting rather than providing a consistent hashing algorithm for data partitioning or load balancing.

    JavaFault ToleranceFault Tolerance Patterns
    View on GitHub↗4,307
  • apache/incubator-stormapache avatar

    apache/incubator-storm

    6,683View on GitHub↗

    Apache Storm is a distributed stream processing framework and real-time data processing engine. It functions as a fault-tolerant distributed computing system designed to analyze data in motion across a cluster of machines for continuous stream computation. The system enables the creation of fault-tolerant data pipelines and scalable event processing by distributing workloads across a network of computing nodes. This architecture ensures low latency and high throughput for live data while allowing the system to recover automatically from individual node failures. The framework provides capabi

    Apache Storm is a distributed stream processing framework rather than a dedicated consistent hashing library, making it the wrong category for this search.

    JavaFault Tolerance
    View on GitHub↗6,683
  • resilience4j/resilience4jresilience4j avatar

    resilience4j/resilience4j

    10,689View on GitHub↗

    Resilience4j is a fault tolerance library for Java 8 applications designed to handle failures in distributed systems. It provides a comprehensive suite of resilience patterns including resource isolation, request throttling, retries, and timeouts. The project implements specific stability mechanisms such as circuit breakers to prevent cascading failures, bulkheads for system resource isolation, and rate limiters to cap execution rates. It also includes a retry framework with backoff policies and timeout enforcement to manage transient faults and maximum execution durations. Additional capabi

    Resilience4j is a fault tolerance and resilience library for Java applications rather than a consistent hashing algorithm implementation, making it a neighbouring building block for distributed systems rather than the requested tool.

    JavaFault Tolerance
    View on GitHub↗10,689
  • alibaba/jstormalibaba avatar

    alibaba/jstorm

    3,877View on GitHub↗

    jStorm is a distributed stream processing engine designed for executing low-latency computations on high-volume data streams using Apache Storm topologies. It functions as a real-time data analytics platform and distributed task orchestrator that manages complex data pipelines via directed acyclic graph execution. The system provides a scalable framework for data pipeline management, incorporating backpressure-aware flow control to regulate ingestion rates and dynamic resource allocation to adjust computing resources based on real-time demand. It maintains compatibility with Apache Storm conf

    This is a distributed stream processing engine rather than a dedicated consistent hashing library, making it the wrong category even though distributed systems often use hashing underneath.

    JavaFault Tolerance
    View on GitHub↗3,877
  • golang/groupcachegolang avatar

    golang/groupcache

    13,326View on GitHub↗

    Groupcache is a distributed caching library designed to coordinate data retrieval and storage across a cluster of nodes. It functions as a peer-to-peer data store that uses consistent hashing to assign specific keys to canonical owners, ensuring that cached items remain predictable and accessible throughout the network. The system distinguishes itself through a request coalescing engine that merges concurrent requests for the same missing key into a single upstream fetch. This mechanism prevents redundant backend load by ensuring that only one process retrieves the required data while sharing

    Groupcache is a distributed caching library that uses consistent hashing for data partitioning, but it is primarily a caching framework rather than a general-purpose hashing algorithm library for arbitrary use cases.

    GoConsistent Hashing
    View on GitHub↗13,326
  • akka/akkaakka avatar

    akka/akka

    13,271View on GitHub↗

    Akka is an actor model framework and distributed systems platform used to build concurrent and distributed applications. It provides a toolkit for managing multi-threaded state and behavior through asynchronous message passing, allowing developers to create concurrent applications without manual locks or synchronization. The system functions as a cluster management and event sourcing framework, automating the scaling and coordination of high-availability clusters. It enables the deployment of elastic services that coordinate workloads across multiple network nodes and ensures fault tolerance

    Akka is a distributed actor model framework and platform rather than a dedicated consistent hashing library, though it includes cluster routing features that utilize hashing for workload distribution.

    ScalaFault Tolerance
    View on GitHub↗13,271
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
buraksezer/consistent774GoMITNov 7, 2023
reset/hash-ring-ex24ElixirApache-2.0Feb 24, 2017
facebookincubator/katran
5.3K
C
GPL-2.0
Jun 23, 2026
elixir-lang/elixir26.5KElixirApache-2.0Jun 16, 2026
grafana/alloy2.9KGoapache-2.0Feb 20, 2026
jhalterman/failsafe4.3KJavaApache-2.0Dec 28, 2025
apache/incubator-storm6.7KJavaApache-2.0Jun 17, 2026
resilience4j/resilience4j10.7KJavaApache-2.0Jun 16, 2026
alibaba/jstorm3.9KJavaApache-2.0Jun 16, 2023
golang/groupcache13.3KGoapache-2.0Nov 29, 2024

Related searches

  • a library of algorithms and data structures
  • Distributed consensus algorithm
  • Path planning algorithms
  • a collection of educational Python algorithms
  • Algorithm textbooks and lectures
  • a collection of algorithms and data structures
  • Reference architecture examples
  • Data partitioning strategies