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
hashicorp avatar

hashicorp/memberlist

0
View on GitHub↗
4,068 stars·472 forks·Go·MPL-2.0·20 views

Memberlist

Memberlist is a Go library used for maintaining distributed cluster membership and failure detection via a peer-to-peer gossip protocol. It functions as a cluster state synchronizer, allowing nodes to track active members and propagate metadata without a central coordinator.

The library implements a secure gossip mechanism using AES-GCM encryption to protect inter-node communication and membership data. It distinguishes its failure detection through a suspicion-based model and adaptive timeout scaling, which reduces false positives caused by transient network latency.

The project provides capabilities for broadcasting custom user-defined data, synchronizing node state via push-pull mechanisms, and managing network transport through a decoupled interface. It also includes tools for operational monitoring, such as round-trip time measurement and performance metrics emission.

Features

  • Gossip-Based Cluster Membership - Provides a gossip-based protocol to maintain a consistent distributed view of cluster membership.
  • Gossip Protocols - Uses a peer-to-peer gossip mechanism to propagate membership updates and custom user data across the cluster.
  • Cluster State Synchronization - Synchronizes full membership lists and node state using a TCP-based push-pull reconciliation mechanism.
  • Distributed State Synchronization - Synchronizes membership and metadata state across distributed nodes to ensure eventual consistency.
  • Node Failure Detection - Identifies unresponsive nodes using heartbeats and broadcasts suspicion messages to maintain membership accuracy.
  • Suspicion-Based Failure Detection - Implements a suspicion-based model to reduce false positive node evictions caused by transient network flakiness.
  • SWIM Failure Detectors - Implements a distributed failure detector using a gossip-based algorithm to identify unresponsive peers.
  • Message Encryption - Secures gossip communication between nodes using encryption to prevent unauthorized reading of cluster data.
  • AEAD Encryptions and Decryptions - Uses AES-GCM authenticated encryption to secure membership data and inter-node communication.
  • Gossip Packet Authentication - Attaches labels to packets and streams to authenticate data and validate inbound traffic between nodes.
  • AES-Encrypted Transports - Secures inter-node gossip communication and membership data using AES-GCM encryption.
  • Heartbeat - Monitors remote peer health using lightweight UDP heartbeat pings and round-trip time measurements.
  • Cluster Membership Change Notifications - Triggers notifications when nodes join, leave, or update metadata to allow applications to react to state changes.
  • Encrypted Gossip Implementations - Implements a secure communication layer using AES-GCM encryption to protect inter-node gossip and membership data.
  • Cluster Merge Controls - Evaluates peer lists during join operations to prevent unauthorized cluster unions.
  • Node Metadata Management - Associates custom byte-limited metadata with nodes to be synchronized across the cluster membership list.
  • Cluster-Wide Broadcasting - Sends state synchronization messages to all discovered nodes using a prioritized queuing mechanism.
  • Priority-Based Broadcast Queues - Manages the distribution of cluster-wide messages using queues that prioritize new updates and limit retransmissions.
  • Gossip Message Broadcasting - Allows the transmission of arbitrary user-defined data across the gossip network to all cluster members.
  • Reliable Byte Stream Implementations - Transmits byte payloads to specific nodes using a variety of delivery guarantees including TCP and UDP.
  • Round-Trip Time Measurement - Measures the duration between pings and acknowledgements to estimate network latency between peers.
  • Peer-to-Peer Networking Libraries - Provides a library for transport, security, and peer discovery to facilitate decentralized cluster communication.
  • Gossip Broadcasts - Propagates user-defined custom data across the cluster using gossip-style broadcasts.
  • Transport Abstractions - Decouples gossip logic from the network layer via an interface that abstracts UDP packets and TCP streams.
  • Transport Listeners - Creates TCP and UDP listeners on specific addresses and ports to manage connectionless packets and streams.
  • Encryption Key Management - Maintains and rotates the shared secret keys used to encrypt and decrypt all cluster communications.
  • Peer Communication Security - Secures inter-node communication and gossip data using shared keys and AES-GCM encryption.
  • Adaptive Timeouts - Implements dynamic adjustment of failure detection timeouts based on network latency and local health.
  • Algorithms - Gossip protocol for cluster membership.

Star history

Star history chart for hashicorp/memberlistStar history chart for hashicorp/memberlist

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Memberlist

These projects share indexed features with Memberlist. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • hashicorp/rafthashicorp avatar

    hashicorp/raft

    9,037View on GitHub↗

    This is a Raft consensus library and distributed consensus engine implemented in Go. It provides the primitives necessary to build fault-tolerant distributed services by implementing a replicated state machine that ensures a group of servers agree on a shared system state through leader election and log replication. The project distinguishes itself through a pluggable architecture for storage backends and snapshot storage, decoupling the consensus logic from physical persistence. It includes specialized mechanisms for leadership transfer, protocol version management to support rolling upgrade

    Go
    View on GitHub↗9,037
  • hashicorp/serfhashicorp avatar

    hashicorp/serf

    6,058View on GitHub↗

    Serf is a decentralized cluster coordination tool that manages node membership, failure detection, and event broadcasting across a distributed system without a central coordinator. Every node runs an identical agent process that independently handles membership, health monitoring, and event propagation through a peer-to-peer gossip protocol, creating a leaderless architecture where no single point of failure exists. The project implements the SWIM failure detection algorithm, where each node monitors a small random subset of peers to detect unreachable or failed nodes in real time. Custom use

    Go
    View on GitHub↗6,058
  • zeromq/libzmqzeromq avatar

    zeromq/libzmq

    10,902View on GitHub↗

    libzmq is a C++ based asynchronous messaging engine and networking core designed for routing non-blocking messages between distributed nodes. It functions as a distributed message queue that implements the ZMTP wire-format framing protocol to standardize how data moves across different network transport layers. The library provides a multi-transport abstraction that allows a single interface to route data across TCP, IPC, and in-process memory. It incorporates a cryptographic layer to encrypt and authenticate transmissions between nodes and employs topology-based messaging patterns, such as p

    C++concurrencylibzmqmessaging
    View on GitHub↗10,902
  • libp2p/rust-libp2plibp2p avatar

    libp2p/rust-libp2p

    5,556View on GitHub↗

    rust-libp2p is a modular peer-to-peer networking library written in Rust, implementing the libp2p specification. It provides a composable stack of transport, security, and discovery protocols that can be mixed and matched to build decentralized applications, with a central swarm manager coordinating all active connections, protocol negotiation, and peer lifecycle. The library distinguishes itself through a pluggable transport abstraction that supports TCP, QUIC, WebSocket, WebRTC, and WebTransport, enabling cross-platform operation across browsers, mobile devices, and servers. It secures ever

    Rustdecentralizationlibp2pnetworking
    View on GitHub↗5,556
Compare all 30 related projects→

Frequently asked questions

What does hashicorp/memberlist do?

Memberlist is a Go library used for maintaining distributed cluster membership and failure detection via a peer-to-peer gossip protocol. It functions as a cluster state synchronizer, allowing nodes to track active members and propagate metadata without a central coordinator.

What are the main features of hashicorp/memberlist?

The main features of hashicorp/memberlist are: Gossip-Based Cluster Membership, Gossip Protocols, Cluster State Synchronization, Distributed State Synchronization, Node Failure Detection, Suspicion-Based Failure Detection, SWIM Failure Detectors, Message Encryption.

Which projects share features with hashicorp/memberlist?

Projects with overlapping indexed features include: hashicorp/raft — This is a Raft consensus library and distributed consensus engine implemented in Go. It provides the primitives… hashicorp/serf — Serf is a decentralized cluster coordination tool that manages node membership, failure detection, and event… zeromq/libzmq — libzmq is a C++ based asynchronous messaging engine and networking core designed for routing non-blocking messages… libp2p/rust-libp2p — rust-libp2p is a modular peer-to-peer networking library written in Rust, implementing the libp2p specification. It… boto/boto3 — Boto3 is the AWS SDK for Python, providing a programmatic interface for managing and automating AWS cloud… basho/riak — Riak is a decentralized NoSQL key-value store designed for high availability and fault tolerance. It is a Dynamo-style…