MongooseIM platform

MongooseIM platform's logo

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:

It is brought to you by Erlang Solutions.

Build Status Documentation Status Coverage Status 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 - here are some useful tools to test and validate your XMPP servers:
    • escalus: Erlang XMPP client
    • amoc: a load testing tools
  • 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

Client-side components

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

Participate!

Suggestions, questions, thoughts? Contact us directly:

Documentation

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

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: