A browser-based XMPP chat client that runs entirely client-side, usable as a standalone app or embedded in existing websites.
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
Download the Docker image from the MongooseIM downloads page
- 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
A Java XMPP real-time collaboration server for instant messaging, licensed under Apache 2.0.
Java-based XMPP/Jabber chat server, modular and configurable, supporting client connections over TCP, BOSH and WebSockets.
An open-source, Erlang-built realtime server for XMPP chat, MQTT messaging and SIP voice/video signaling.
Federated blogging and chat platform that serves as a web frontend for the XMPP protocol.
A chat server built on uWebSockets.js that offers an alternative to XMPP, with a Node.js backend, MongoDB and Redis.