XMPP
The open standard for real-time messaging
Full XMPP Core & IM support with 400+ extensions: MUC, MAM, PubSub, Carbons, Push, OMEMO and more. Federate with the global XMPP network out of the box.
A ProcessOne product · since 2002
Open standards, WhatsApp scale, running on hardware you own.
ejabberd is the open-source XMPP server, MQTT broker and SIP service built in Erlang by ProcessOne. It carries production traffic for organisations that would rather not hand their messaging to someone else.
## Listen on the standard XMPP ports
listen:
- port: 5222
module: ejabberd_c2s
- port: 5269
module: ejabberd_s2s_in
- port: 1883
module: mod_mqtt
## Storage and modules
default_db: sql
modules:
mod_mam: # message archive
mod_push: # mobile push
mod_pubsub: # publish-subscribe
mod_muc: # multi-user chat We write messaging infrastructure for people who get paged when it stops. It has been open source and running in production since 2002, and it is the same server behind WhatsApp, Nintendo Switch and the BBC.
24 years of continuous releases
on a single node, measured in production
with MUC, MAM, PubSub, OMEMO and more
for the web admin and client tooling
Powering real-time messaging at
…and hundreds of organisations worldwide. See customers
Multi-protocol platform
Messaging, IoT telemetry, voice and federation, all speaking to the same auth, storage and clustering layer. One thing to upgrade, one thing to monitor.
The open standard for real-time messaging
Full XMPP Core & IM support with 400+ extensions: MUC, MAM, PubSub, Carbons, Push, OMEMO and more. Federate with the global XMPP network out of the box.
Lightweight pub/sub for IoT at scale
Built-in MQTT 3.1.1 and 5.0 broker, sharing the same auth, persistence and clustering layer as the XMPP server. Your devices and your users authenticate against the same backend.
Voice, video and peer-to-peer multimedia
Integrated SIP gateway and STUN/TURN support for WebRTC calls. Signalling, presence and media relay run inside the same deployment.
Decentralised, federated messaging
Native Matrix support brings interoperability between Matrix homeservers and the XMPP federation. Bridge ecosystems without a separate stack.
What you get
Multi-protocol XMPP, MQTT and SIP, with REST API, command-line tooling and mobile or web client libraries for iOS, Android and Web (Strophe, XMPPFramework, Smack).
Built on Erlang/OTP's "let-it-crash" philosophy. Live upgrades without downtime, all-active clustering and end-to-end delivery acknowledgments, so messages survive a node going down mid-conversation.
Two million concurrent sessions on a single node. Consistent-hashing clustering, memory-efficient session model, PubSub broadcast optimisation across the cluster.
ejabberdctl CLI, REST API and live web admin. Automate everything from user provisioning and module loading to backup and rolling cluster upgrades.
Customisation hooks for messaging, gaming, healthcare, telecoms, IoT and AI agents. With MQTT and SIP built in, one deployment covers chat, telemetry and voice.
An extensible module API and hundreds of community contributions. Swap storage backends (PostgreSQL, MySQL, Redis, LDAP) and bolt on what you need.
Choose your deployment
Same server underneath. Download the Community release and run it yourself, buy support and LTS with Business, or let ProcessOne operate it for you.
The full ejabberd server under GPLv2, on your own infrastructure. You run it, and the community helps when you get stuck.
Everything in Community, plus the performance modules, mobile push at scale, LTS releases supported for three years and an SLA with the people who wrote the code.
All Business Edition features, with ProcessOne running the servers, the upgrades and the backups. Custom domains and SLAs included.
Need a side-by-side comparison? Compare editions in detail
A solid choice
Everyone has the freedom to use, audit and customise ejabberd, under the GPLv2 license. No vendor lock-in, and nothing phoning home.
TLS 1.3, modern cipher suites, SASL with SCRAM-SHA-256, end-to-end encryption via OMEMO. You get these on a fresh install, not after a hardening guide.
A full module API to write custom plugins and change behaviour in very little code. You can hook into almost any event the server handles.
Compliant with XMPP, MQTT, SIP and Matrix standards and most extensions. Works with all major clients and federates with other servers.
ProcessOne handles release engineering, QA and API stability, and has been doing it in Erlang since 2002. Upgrades rarely surprise you.
A global community that answers questions on the mailing list, the chatroom and GitHub. We want people building on open real-time protocols, whether or not they ever pay us.
Get started
Free, open source and already running at WhatsApp scale. Grab the latest release, read the docs or send us a patch on GitHub.