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

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
nats-io avatar

nats-io/nats.go

0
View on GitHub↗
6,657 stars·806 forks·Go·Apache-2.0·9 vuesnats.io↗

Nats.go

This is a Golang client library for interacting with a cloud native distributed messaging system. It provides the necessary tools for Go applications to exchange messages using publish-subscribe and request-reply patterns, as well as specialized clients for managing persistent streams and distributed storage.

The library includes a JetStream client for durable message streaming and replay, a Key-Value store client for managing distributed state with versioning and watchers, and an Object Store client for the storage and retrieval of large binary files via chunked delivery.

The implementation covers a broad range of messaging and data capabilities, including distributed work queues with load balancing, hierarchical subject-based routing, and zero-trust security utilizing TLS and token-based authentication. It also supports complex network topologies through cluster connectivity management and automatic connection failover.

Features

  • Distributed Messaging - Provides a distributed messaging infrastructure for decoupled communication using publish-subscribe and request-reply patterns.
  • Durable Event Logs - Stores messages in durable, append-only logs to enable at-least-once delivery and replication.
  • Distributed Associative Arrays - Implements a persistent key-value store using standard associative array operations like put and get.
  • Event Streaming Pipelines - Provides event streaming pipelines with durable message storage and replay capabilities for fault-tolerant systems.
  • Key-Value Store Clients - Provides a client library for managing distributed state using persistent associative arrays with versioning.
  • Key-Value Stores - Provides a lightweight, non-relational key-value store for persisting small amounts of application state.
  • Distributed State Management - Uses Key-Value and Object Stores to manage shared configuration and binary data across distributed services.
  • Messaging Server Clustering - Connects multiple server instances to provide fault tolerance and horizontal scalability across a network.
  • Queue-Based Message Distribution - Implements queue-based message distribution to load-balance work across a group of subscribers.
  • Publish-Subscribe Messaging - Implements a publish-subscribe model for low-latency communication between distributed services.
  • Messaging Clients - Provides a Go client library for interacting with distributed message brokers and streaming infrastructure.
  • Automatic Reconnection Logic - Automatically restores dropped network connections using a list of seed URLs and exponential backoff.
  • Message Subscription Management - Provides mechanisms to register and manage interest in specific message subjects via callbacks or polling.
  • Durable Stream Consumers - Provides a specialized client for managing persistent message streams and ensuring at-least-once delivery.
  • Message Persistence Systems - Provides durable streams and consumers to ensure messages are persisted and available for replay.
  • NATS Integrations - Offers a native Go integration for high-performance event distribution via NATS.
  • Pub-Sub Messaging - Decouples producers and consumers through a distributed pub-sub architecture using topics and channels.
  • Server Connection Managers - Implements a manager for establishing and maintaining connections to single servers or cluster nodes.
  • Subject-Based Routing - Routes data using subjects instead of hostnames to enable decoupled discovery and many-to-many communication.
  • Account-Based Resource Isolation - Implements multi-tenancy by isolating data and message flow through account-based subject namespaces.
  • Connection Authentication Mechanisms - Verifies the identity and authorization of connecting applications using credential files and security schemes.
  • JWT Authentication - Verifies client identity using signed JSON Web Tokens and cryptographic challenges to establish trust.
  • Decentralized Token Authorization - Uses cryptographically signed tokens to allow account holders to manage authorizations without central server modifications.
  • Permission-Based Access Control - Defines granular access controls and connection limits within signed tokens to decouple authorization from configuration.
  • Subject Access Restrictions - Restricts the ability to publish or subscribe to specific messaging subjects via configurations or tokens.
  • TLS Traffic Encryption - Secures communication channels between clients and servers using SSL/TLS encryption to prevent eavesdropping.
  • Token-Based Authentication - Verifies client identity and permissions using cryptographically signed tokens to avoid central databases.
  • Zero Trust Access Controls - Enforces a zero-trust security model using TLS and token-based authentication for all client access.
  • Distributed Task Queues - Implements distributed task queues to spread background work across a pool of Go workers.
  • Request-Reply Patterns - Implements synchronous-style communication using temporary reply-to subjects for direct bidirectional exchange.
  • Request-Response Pattern Support - Implements synchronous communication patterns by enabling a request-reply exchange over an asynchronous system.
  • Messaging Frameworks - Provides a high-level messaging client framework to simplify request-response communication patterns.
  • Key Version History - Provides access to a chronological log of values and delete operations associated with specific keys.
  • Subject Subscription Filtering - Supports wildcard patterns in subject subscriptions to filter and match multiple data streams.
  • Cross-Site Cluster Links - Links clusters across different regions using gateways to enable disaster recovery and geo-location affinity.
  • Edge-to-Cloud Message Routing - Proxies local client traffic through edge servers to route messages from edge nodes to cloud controllers.
  • Atomic Key Updaters - Executes conditional writes using compare-and-swap logic to ensure concurrency control during data updates.
  • Large File Transfers - Handles large file transfers and storage using chunked delivery for scalability and replication.
  • Object Storage - Provides a durable store for large unstructured data objects with built-in versioning.
  • Object Versioning - Maintains multiple historical variants of stored binary objects to support recovery and shared state.
  • Binary Object Storage Clients - Provides a client for storing and retrieving large binary objects via chunked delivery and versioning.
  • Cluster Topology Management - Handles real-time discovery and routing changes across distributed cluster nodes to maintain client connectivity.
  • Chunked File Storages - Saves and retrieves files of any size by splitting them into chunks associated with a unique path.
  • Edge Computing - Enables edge computing connectivity by bridging remote devices and edge environments to a central cluster via leaf nodes.
  • Embedded Messaging Infrastructure - Integrates messaging capabilities directly into an application process to eliminate the need for standalone installations.
  • Connection Management Strategies - Maintains persistent network connections to multiple server URLs with automatic recovery and backoff strategies.
  • Connection Multiplexing - Allows multiple logical subscriptions and requests to share a single underlying TCP connection for efficiency.
  • Client-Side Load Balancing - Implements client-side logic to distribute network traffic across multiple server seeds via randomization.
  • Message Bridges - Provides mechanisms for transporting messages between different application layers and diverse messaging platforms.
  • Message Stream Handlers - Ships a command-line interface for managing the lifecycle and monitoring of persistent message streams.
  • Message Stream Replayers - Enables the retrieval and replay of historical message sequences from persistent storage on demand.
  • Messaging Leaf Nodes - Proxies messaging services to remote edge environments to expand network reach transparently.
  • Messaging Protocol Support - Supports communication over TCP, MQTT, and WebSockets to integrate with various client environments.
  • Text-Based TCP Protocols - Uses a lightweight text-based protocol over TCP to minimize overhead for high-frequency messaging.
  • Encrypted Persistence - Protects persistent messages stored in the persistence layer using server-side encryption at rest.
  • Credential Security and Utilities - Provides tools for creating and revoking authentication tokens and keys for operators and users.
  • Zero Trust Networking - Implements zero trust networking by securing microservices with TLS and token-based authentication.
  • Language Native Channel Integration - Integrates network events with Go channels to align with the native language concurrency model.
  • Subject Namespace Mapping - Translates or merges message subjects to handle namespace changes and ensure routing isolation.
  • Hierarchical Subject Organization - Uses dot-separated namespaces to organize communication channels into a semantic hierarchy.
  • Asynchronous Network Callbacks - Handles incoming messages via non-blocking network callbacks to maintain high-performance execution flows.
  • Messaging Systems - Official client for the NATS messaging system.
  • Messaging - Listed in the “Messaging” section of the Awesome Go awesome list.

Historique des stars

Graphique de l'historique des stars pour nats-io/nats.goGraphique de l'historique des stars pour nats-io/nats.go

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait nats-io/nats.go ?

This is a Golang client library for interacting with a cloud native distributed messaging system. It provides the necessary tools for Go applications to exchange messages using publish-subscribe and request-reply patterns, as well as specialized clients for managing persistent streams and distributed storage.

Quelles sont les fonctionnalités principales de nats-io/nats.go ?

Les fonctionnalités principales de nats-io/nats.go sont : Distributed Messaging, Durable Event Logs, Distributed Associative Arrays, Event Streaming Pipelines, Key-Value Store Clients, Key-Value Stores, Distributed State Management, Messaging Server Clustering.

Quelles sont les alternatives open-source à nats-io/nats.go ?

Les alternatives open-source à nats-io/nats.go incluent : nats-io/nats-server — NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge… airtai/faststream — FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified… hazelcast/hazelcast — Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to… faye/faye — Faye is a real-time messaging middleware and WebSocket publish-subscribe server. It functions as a communication layer… redisson/redisson — Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and… tporadowski/redis — Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL…

Alternatives open source à Nats.go

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Nats.go.
  • nats-io/nats-serverAvatar de nats-io

    nats-io/nats-server

    20,076Voir sur GitHub↗

    NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t

    Gocloudcloud-computingcloud-native
    Voir sur GitHub↗20,076
  • airtai/faststreamAvatar de airtai

    airtai/faststream

    5,234Voir sur GitHub↗

    FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified abstraction layer for interacting with various message brokers, enabling developers to manage event production and consumption through a consistent interface while maintaining access to native provider-specific features. The framework centers on a decorator-based routing model that binds application logic directly to broker topics, supported by a built-in dependency injection container that resolves resources at runtime. The framework distinguishes itself through its deep int

    Python
    Voir sur GitHub↗5,234
  • hazelcast/hazelcastAvatar de hazelcast

    hazelcast/hazelcast

    6,570Voir sur GitHub↗

    Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis

    Javabig-datacachingdata-in-motion
    Voir sur GitHub↗6,570
  • faye/fayeAvatar de faye

    faye/faye

    4,386Voir sur GitHub↗

    Faye is a real-time messaging middleware and WebSocket publish-subscribe server. It functions as a communication layer that routes messages between clients and manages channel subscriptions to enable data synchronization across the web. The project provides a cross-domain communication gateway, allowing web clients on different domains to communicate with a central server. It is built as a clustered messaging backend that can share state across multiple instances using external storage to handle high volumes of persistent network connections. Its capability surface includes pub-sub logic for

    JavaScript
    Voir sur GitHub↗4,386
  • Voir les 30 alternatives à Nats.go→