MongooseIM is a mobile messaging platform with focus on performance and scalability
Erlang JavaScript C Shell API Blueprint Makefile Other
Failed to load latest commit information.
.github [skip ci] move templates to .github dir and fill the content Feb 29, 2016
apps/ejabberd Merge pull request #1191 from esl/rock-mod-adhoc-mod-cowboy Feb 22, 2017
doc [skip ci] improve swaggers spec around SSE Feb 22, 2017
examples Cleanup `examples` Aug 20, 2014
priv Finalize rename to MongooseIM Feb 19, 2014
rel Merge pull request #1187 from esl/feature/amazon_sns_support Feb 17, 2017
src rebar3: Enable rebar3 ct Dec 14, 2016
test.disabled/ejabberd_tests Merge pull request #1191 from esl/rock-mod-adhoc-mod-cowboy Feb 22, 2017
tools Merge pull request #1136 from esl/feature/free-text-search Feb 20, 2017
.gitignore optimise gitignore a bit Jan 25, 2017
.gitmodules Use rebar dependencies instead of submodules for tests Sep 5, 2012
.travis.yml run dialyzer job on Erlang/OTP 19.2 Jan 25, 2017
.travis_deploy_rsa.enc Upload CT-reports to esl github account Jan 26, 2016 improve XEPs nameing in Jan 24, 2017 [skip ci] added rock to doc Dec 7, 2016
COPYING * src/msgs/nl.msg: Updated (thanks to Sander Devrieze) Oct 9, 2004
Makefile use rebar3 shell to start MongooseIM node Dec 21, 2016 [skip ci] Update README (#1189) Feb 18, 2017
VERSION bump VERSION to 2.0.1 Jan 23, 2017
dialyzer.ignore-warnings added dialyzer targets to makefile Apr 14, 2012 Code style improvements Dec 7, 2016
elvis.config Use exml_query:* instead of xml:* Feb 14, 2017
index.html Swagger HTTP API doc (#880) Aug 25, 2016
mkdocs.yml Add documentation Feb 17, 2017 fix compatibility issues with OS X Nov 12, 2014
rebar.config Merge pull request #1190 from esl/upgrade-deps Feb 21, 2017
rebar.config.script create Apps list dynamically in rebar.config.script Dec 14, 2016
rebar.lock update riak client to 2.5.2 Feb 17, 2017
rebar3 Downgrade Rebar3 to 3.3.2. Jan 30, 2017

MongooseIM platform

MongooseIM platform's logo

MongooseIM is robust and efficient XMPP platform aimed at large installations. Specifically designed for enterprise purposes, it is fault-tolerant, can utilize resources of multiple clustered machines and easily scale in need of more capacity (by just adding a box/VM). MongooseIM can accept client sessions over vanilla XMPP, Websockets, HTTP long-polling (a.k.a. BOSH), and a REST API.

The MongooseIM platform comes with server-side components and client libraries. We provide a test suite and a monitoring server. We recommand third-party, open source client libraries for XMPP and REST API.

The most important links:

It is brought to you by Erlang Solutions and Inaka.

Build Status Documentation Status Coverage Status Buildtime trend GitHub release

MongooseIM platform's mongooses faces

Download packages

For a quick start just download:

Public testing

Check out our test results:

MongooseIM platform components

MongooseIM platform schema

Server-side components

We offer a set of server-side components:

  • WombatOAM is a powerful monitoring platform that comes with specific MongooseIM plugins
  • Test suite: in order to test and validate your XMPP servers, here are some useful tools:
    • escalus: Erlang XMPP client
    • amoc: a load testing tools
  • More components? It is probable that we will offer:
    • Icicle: ICE, STUN/TRUN server
    • Platypus: a push notification server

Client-side components

  • XMPP client libraries: we recommend following client libraries:
  • REST API client libraries: we recommend following client libraries:


In case of any suggestions, questions or any thoughts, please feel free to contact us:


Up-to-date documentation for the MongooseIM master branch can be found on ReadTheDocs:

When developing new features/modules, please take care to add basic documentation to the doc/ directory, and add a link to your document in doc/

The MongooseIM platform documentation: