MongooseIM is a robust and efficient chat (or instant messaging) platform aimed at large installations. Designed for enterprise, it is fault-tolerant, can utilise the resources of multiple clustered machines, and easily scales for more capacity by simply adding a box or VM.
MongooseIM can accept client sessions over vanilla XMPP, REST API and SSE, as well as Websockets, and BOSH (HTTP long-polling).
The MongooseIM platform includes several server-side (backend) and client-side (frontend) components. We provide a test suite, metrics, a load testing platform, and a monitoring server. We recommend third-party, open source client libraries for XMPP and REST API.
The most important links:
- Home: http://github.com/esl/MongooseIM
- Product page: https://www.erlang-solutions.com/products/mongooseim.html
- Documentation: http://mongooseim.readthedocs.org/
It is brought to you by Erlang Solutions.
For a quick start just download:
- The pre-built packages that suit your platform (Ubuntu, Debian, CentOS, and macOS)
- The Docker image: https://hub.docker.com/r/mongooseim/mongooseim/ (source code repository: https://github.com/esl/mongooseim-docker)
Check out our test results:
- Continuous integration: https://travis-ci.org/esl/MongooseIM
- Code coverage: https://coveralls.io/github/esl/MongooseIM
- Continuous Load Testing: http://tide.erlang-solutions.com/
- Load test history:
We offer a set of server-side components:
- WombatOAM is a powerful monitoring platform that comes with specific MongooseIM plugins
- Test suite - here are some useful tools to test and validate your XMPP servers:
- More components? There are some ideas we're working on. Tune in for updates on
- MongooseICE: ICE, STUN/TURN server
- MongoosePush: a push notification server
- XMPP client libraries - we recommend the following client libraries:
- iOS, Objective-C: XMPPframework
- Android, Java: Smack
- Web, JavaScript: Stanza.io, Strophe.js
- REST API client libraries - we recommend following client libraries:
Suggestions, questions, thoughts? Contact us directly:
- Defacto standard GitHub issues: https://github.com/esl/MongooseIM/issues
- Email us at mongoose-im@erlang-solutions.com
- Create a post on erlangcentral forums at https://erlangcentral.org/forum/mongooseim/
- Follow our Twitter account: https://twitter.com/MongooseIM
- Like our Facebook page: https://www.facebook.com/MongooseIM/
- Subscribe to our mailing list at https://groups.google.com/d/forum/mongooseim-announce as it is only one or two emails per month, the archives are free and open (click on the blue button "Join group", then click in "Email delivery preference" on "Notify me for every new message")
Up-to-date documentation for the MongooseIM master branch can be found on ReadTheDocs:
- http://mongooseim.readthedocs.org/en/latest/
- release 2.0.1
- Older versions:
When developing new features/modules, please make sure you add basic documentation to the 'doc/' directory, and add a link to your document in 'doc/README.md.'
The MongooseIM platform documentation:
- User Guide
- Features and supported standards contains the list of supported XEPs, RFCs and database backends
- Get to know MongooseIM contains the overview of our application, its architecture and deployment strategies
- Getting started is a step-by-step guide on how to:
- Build MongooseIM on a supported OS
- Perform basic configuration
- Use the main administration script,
mongooseimctl
- Release/Installation configuration
- High-level Architecture from single to multiple node setup to multi-datacenter
- How to
- Platform:
- Configuration
- MongooseIM open XMPP extensions:
- REST API
- Operation and maintenance
- Server developer guide