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
Terry-Mao avatar

Terry-Mao/goim

0
View on GitHub↗
7,376 stars·1,796 forks·Go·MIT·16 viewsgoim.io↗

Goim

goim

Features

  • Kafka-Driven Message Queue Servers - Provides a Kafka-driven message queue server for asynchronous, non-blocking fan-out delivery to subscribers.
  • Push Notification Servers - Delivers push notifications to single users, multiple users, rooms, or all clients in a scalable cluster.
  • Node Registries - Uses Redis as a node registry to track live cluster membership and route messages.
  • Binary Protocols - Implements a compact binary wire protocol for efficient message encoding and decoding.
  • Kafka - Queues outgoing messages through Kafka for non-blocking delivery, fan-out, and aggregated room delivery.
  • Kafka Message Queues - Queues outgoing messages through Kafka for asynchronous, non-blocking fan-out delivery.
  • Scalable Push Notification Platforms - Broadcasts messages to single users, multiple users, rooms, or all connected clients across a horizontally scalable cluster.
  • Asynchronous Queue Deliveries - Queues outgoing messages through Kafka so the sender does not block on delivery.
  • Connection Keepalives - Maintains persistent connections through application-level heartbeats and TCP keepalives.
  • Websocket Connection Managers - Handles WebSocket lifecycle including upgrade, read, and write operations for real-time communication.
  • Scalable - Manages persistent WebSocket and TCP connections at scale with heartbeat monitoring and horizontal scaling.
  • Redis-Based Node Registries - Tracks alive cluster nodes in Redis, removes dead nodes automatically, and routes messages by region or weight.
  • Multi-User Message Deliveries - Pushes messages to single users, multiple users, or all connected clients in a single operation across the cluster.
  • Protocol-Agnostic Transport Layers - Provides a unified internal interface accepting connections over both WebSocket and raw TCP.
  • Room-Based Pub-Sub Broadcasting - Broadcasts a single message to all members of a chat room simultaneously.
  • Real-Time Message Push - Delivers push notifications and messages to millions of concurrent users over WebSocket and TCP connections.
  • Multi-User Message Pushes - Sends the same message to multiple users simultaneously across the server cluster.
  • Single-User Message Pushes - Delivers a message to one specific user by routing through the cluster to the correct connection.
  • Heartbeat Frames - Ships application-level heartbeat frames over TCP and WebSocket to maintain persistent connections.
  • WebSocket and TCP Messaging Gateways - Maintains persistent connections over WebSocket and raw TCP with heartbeat monitoring and automatic dead connection cleanup.
  • Multi-Protocol Transports - Accepts client connections over both WebSocket and raw TCP through a unified interface.
  • Connection Heartbeats - Keeps persistent connections alive by exchanging periodic heartbeat signals over TCP, WebSocket, or HTTP.
  • Connection Health Monitors - Detects and drops dead connections using application-level heartbeats and TCP keepalives.
  • Node Health Tracking - Tracks node health via Redis heartbeats and removes dead nodes from the routing table automatically.
  • Horizontal Scaling Deployments - Adds or removes server modules without downtime to handle more connections.
  • Dynamic Module Scaling - Scales message processing horizontally by adding or removing dynamic job and logic modules.
  • Regional Routing - Directs messages to nodes in a specific geographic region to reduce latency and comply with data locality rules.
  • Message Aggregations - Aggregates multiple messages for the same room into a single batched delivery to reduce overhead.
  • Device-Specific Deliveries - Delivers push notifications to specific devices identified by unique device identifiers.
  • Cluster-Wide Broadcasting - Delivers a message to every connected user across the entire server cluster in a single operation.
  • Weighted Hash Rings - Distributes connections across nodes using a weighted consistent hash ring for balanced load.
  • Fan-Out Patterns - Delivers a single message to multiple subscribers up to a configurable maximum count.
  • Room Message Aggregations - Aggregates multiple messages for the same room into a single delivery to reduce network overhead.
  • Weighted Load Balancing - Distributes connections across nodes proportionally to their configured weight to balance load.
  • Subscriber Authentications - Rejects subscription requests from unauthenticated users, allowing only verified clients to receive messages.
  • Communication and Messaging - Distributed IM and push service.
  • Communication and Real-time - A high-concurrency IM and real-time push service.

Star history

Star history chart for terry-mao/goimStar history chart for terry-mao/goim

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. 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

Open-source alternatives to Goim

Similar open-source projects, ranked by how many features they share with Goim.
  • tinode/chattinode avatar

    tinode/chat

    13,371View on GitHub↗

    This project is a self-hosted, cross-platform instant messaging platform featuring a Go backend and a protobuf-based messaging server. It provides a unified communication suite with native clients for iOS, Android, and web, utilizing gRPC and Protocol Buffers for efficient data exchange. The system is distinguished by an extensible chatbot framework that allows for the integration of automated bots and plugins via standardized service interfaces. It supports high-availability clustering with sharded load distribution and a pluggable database backend to ensure reliability and flexible data per

    Gochatchat-applicationchatapp
    View on GitHub↗13,371
  • meetecho/janus-gatewaymeetecho avatar

    meetecho/janus-gateway

    9,117View on GitHub↗

    Janus is a WebRTC media gateway that routes real-time audio, video, and data between web browsers and server-side application logic. It functions as a central media relay that manages session negotiation and encryption for multiple browser endpoints. The project utilizes a modular plugin architecture that decouples the core server from specific media logic, allowing developers to implement custom modules for media processing, event handling, and transport protocols. This design enables the server to act as a protocol translation bridge, converting WebRTC streams into legacy formats such as SI

    C
    View on GitHub↗9,117
  • centrifugal/centrifugocentrifugal avatar

    centrifugal/centrifugo

    10,404View on GitHub↗

    Centrifugo is a self-hosted real-time messaging server that provides infrastructure for scalable notifications, a publish-subscribe message broker, and a language-agnostic WebSocket gateway. It allows for the delivery of instant messages and data streams to concurrent users via WebSockets and Server-Sent Events. The system functions as a communication layer that separates network transport from backend business logic. It supports distributed messaging clusters using Redis for coordination of presence and message delivery across multiple server nodes. The project covers channel subscription m

    Goablyalternativeeventsource
    View on GitHub↗10,404
  • crossoverjie/cimcrossoverJie avatar

    crossoverJie/cim

    9,492View on GitHub↗

    Cim is a distributed instant messaging system and server-side backend designed to manage real-time communication across a cluster of servers. It provides a scalable infrastructure for routing private and group messages while tracking user connection states and session locations across distributed nodes. The project features an interception layer for AI messaging middleware, which allows artificial intelligence agents to intercept incoming communication and generate automated responses. It also includes a real-time push infrastructure to deliver notifications and messages from the server to en

    Javaheartbeatimnetty
    View on GitHub↗9,492
See all 30 alternatives to Goim→

Frequently asked questions

What does terry-mao/goim do?

goim

What are the main features of terry-mao/goim?

The main features of terry-mao/goim are: Kafka-Driven Message Queue Servers, Push Notification Servers, Node Registries, Binary Protocols, Kafka, Kafka Message Queues, Scalable Push Notification Platforms, Asynchronous Queue Deliveries.

What are some open-source alternatives to terry-mao/goim?

Open-source alternatives to terry-mao/goim include: tinode/chat — This project is a self-hosted, cross-platform instant messaging platform featuring a Go backend and a protobuf-based… meetecho/janus-gateway — Janus is a WebRTC media gateway that routes real-time audio, video, and data between web browsers and server-side… centrifugal/centrifugo — Centrifugo is a self-hosted real-time messaging server that provides infrastructure for scalable notifications, a… crossoverjie/cim — Cim is a distributed instant messaging system and server-side backend designed to manage real-time communication… mqttjs/mqtt.js — MQTT.js is a JavaScript client library and asynchronous messaging client used to connect to message brokers and… socketcluster/socketcluster — Highly scalable realtime pub/sub and RPC framework.