Repolode
esl

esl/MongooseIM

A scalable, fault-tolerant XMPP instant messaging server written in Erlang, designed for large enterprise installations.

Stars
1,759
Forks
444
Open issues
35
Last commit
2 days ago

What is it?

MongooseIM is an XMPP server that serves as the core of an instant messaging platform. It accepts client sessions over standard XMPP, as well as WebSockets, BOSH (HTTP long-polling), a REST API and SSE, so clients can connect in several ways.

The server is built for enterprise scale: it is fault-tolerant, can use the resources of multiple clustered machines, and adds capacity by adding more nodes or VMs. The project also ships a test suite, metrics, a load testing platform and a monitoring server, along with packages, Docker images and Helm charts for deployment.

Beyond the server, the platform includes server-side and client-side components, GraphQL User and Admin APIs, and a MongoosePush component for push notifications. Documentation covers supported XEPs, RFCs and database backends.

Key features

  • 01Accepts clients over XMPP, WebSockets, BOSH, REST API and SSE.
  • 02Fault-tolerant and deployable across multiple clustered machines.
  • 03Scales capacity by adding nodes or VMs.
  • 04Includes GraphQL User and Admin APIs.
  • 05Provides metrics, a load testing platform and a monitoring server.
  • 06Offers packages, Docker images and Helm charts for deployment.

Use cases

  • Building an enterprise instant messaging system for large numbers of users.
  • Running a clustered chat backend that must tolerate machine failures.
  • Developing custom XMPP clients that connect over WebSockets or REST.
  • Load testing and monitoring a messaging deployment before production.

Quick start

  1. 1

    Download the Docker image from the MongooseIM downloads page

  2. 2

    Or install the pre-built package for your platform (Ubuntu, Debian, AlmaLinux, Rocky Linux) from the downloads page

Things to know

  • The license is not clearly identified in the metadata, so check the license file before commercial use.

Topics

FAQ

What is MongooseIM?
A scalable, fault-tolerant XMPP instant messaging server written in Erlang, designed for large enterprise installations. MongooseIM is an XMPP server that serves as the core of an instant messaging platform. It accepts client sessions over standard XMPP, as well as WebSockets, BOSH (HTTP long-polling), a REST API and SSE, so clients can connect in several ways.
Is MongooseIM free to use? What license does it have?
MongooseIM is open source under the Other license. Check the license terms before using it in commercial products.
Is MongooseIM still maintained?
Actively maintained. The last commit to MongooseIM was on Nov 5, 2026.
What can I use MongooseIM for?
Building an enterprise instant messaging system for large numbers of users. Running a clustered chat backend that must tolerate machine failures. Developing custom XMPP clients that connect over WebSockets or REST. Load testing and monitoring a messaging deployment before production.
How do I install MongooseIM?
Download the Docker image from the MongooseIM downloads page Or install the pre-built package for your platform (Ubuntu, Debian, AlmaLinux, Rocky Linux) from the downloads page
Where can I get MongooseIM?
The source code and installation instructions are on GitHub: https://github.com/esl/MongooseIM

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects