2011: Fork of ejabberd
MongooseIM's birthplace is a private Erlang Solutions' branch of ProcessOne's ejabberd - an XMPP/Jabber server written in Erlang. What would later become a leading, highly customisable and scalable XMPP platform, originated in a strong idea - storing all internal strings in binaries instead of lists, among other significant improvements.
The change was introduced in 0.1.0 proto-MongooseIM release and 3.0.0-alpha-X series of ejabberd. This opened the door for achieving higher performance, lower latency and introducing other subsequent improvements building up to a platform we are truly proud of.
Initial differences from the parent project
This project began its life as a fork of ejabberd v.2.1.8, and later underwent major cleanup, refactoring and optimization:
- Bringing the project source tree to compliance with OTP project structure recommendations
autotoolsfor the Erlang community-standard build tool
- Removal of obsolete and/or rarely used modules to reduce maintenance burden
- Reduction of runtime memory consumption by refactoring the code to use Erlang's binary data type for string manipulation and storage instead of operating on linked lists of characters
- Functional test coverage of the system according to corresponding RFCs and XEPs
2012-2015: Fully independent project growing fast
The next steps were achieving full OTP and
rebar compliance, removal of obsolete and/or rarely used modules, reduction of the runtime memory consumption and functional test coverage.
MongooseIM 1.0.0 was released on July 10th of 2012.
2016: Pivot to fullstack messaging platform
MongooseIM Platform appeared in 2016, with the release of MongooseIM XMPP server 2.0.0.
The MongooseIM platform components were:
- MongooseIM XMPP server, featuring a unique REST API for client developers and MUC light
- WombatOAM, for monitoring and operations
- escalus, an Erlang XMPP client for test automation
- amoc, for load generation
- Smack for Android in Java (third party)
- XMPPFramework for iOS in Objective-C (third party)
- Retrofit by Square for Android in Java (third party)
- Jayme by Inaka for iOS in Swift
2017: Platform expansion and strengthening
We also introduced some MongooseIM platform components that are independent of the XMPP server. So far the list includes:
- Mangosta iOS
- Mangosta Android
2018-2019: Planetary architecture, to welcome IoT-scale and chatbots
The next step on our journey with the MongooseIM platform is to enable building planetary scale architectures. This is necessary to welcome the massive influx of users that come with a full stack IoT and chatbot solution. The ability to connect robots and humans is the requirement of the next technological breakthrough.
Erlang Solution's goal is to utilise XMPP features suited for chatbots, and build open standards for completeness of solution.