Skip to content

# ejabberd Roadmap

## In the Works

- Distributed MUC

## Planned

- Remove support for Rebar2

  ejabberd includes many tweaks to support rebar3 and rebar2. By removing support for rebar2, we could simplify rebar.config and other files a lot. But more importantly, dependencies would not need to be updated just because other dependencies are updated: Rebar2 requires exact version numbers to be provided, Rebar3 doesn't require that, and neither does Mix.

## Released

This is a brief summary for each released version. For details, please consult ejabberd's ChangeLog.

### 2026

- 26.03

  - Roster pre-approval

- 26.02

  - Bugfixes

- 26.01

  - Database Serialization
  - mod_invites: Roster Invites and Invite-based Account Registration

### 2025

- 25.10

  - mod_configure: Added more Ad-Hoc Commands from XEP-0133: Service Administration
  - mod_muc: Updated support for XEP-0317: Hats
  - Removed support for Erlang/OTP older than 25.0
  - Rename `New` SQL schema to `Multihost`, and `Default` to `Singlehost`

- 25.08

  - New module mod_providers
  - mod_matrix_gw: Support for Hydra rooms (room version 12, and other improvements
  - Fixed ACME in Erlang/OTP 28.0.2

- 25.07

  - New module mod_antispam
  - New module mod_pubsub_serverinfo
  - mod_matrix_gw: Support for joining old versions of Matrix rooms too
  - New options rest_proxy, hosts_alias, auth_password_types_hidden_in_sasl1
  - Erlang/OTP 25 required, OTP 28 supported

- 25.04

  - Fix handling multiple occupant-id

- 25.03

  - mod_matrix_gw: Support for joining Matrix rooms as MUC rooms
  - auth_stored_password_types: Multiple Simultaneous Password Types
  - mod_adhoc_api: New module to execute API commands using XMPP client
  - Macros and Keywords Improvements
  - CTL_OVER_HTTP: New option in `ejabberdctl` script
  - Container images: reduce friction, use macros, webadmin port

### 2024

- 24.12

  - XEP-0484: Fast Authentication Streamlining Tokens
  - Deprecation schedule for Erlang/OTP older than 25.0
  - Commands API v3

- 24.10

  - New module mod_s2s_bidi
  - New module mod_scram_upgrade
  - IQ permission in privileged entities
  - PubSub varied fixes
  - WebAdmin improvements

- 24.07

  - Bugfixes and minor improvements

- 24.06

  - Reworked the ejabberd Docs and moved to MkDocs+Material
  - Automatic SQL schema is now enabled by default
  - Improved the ejabberd WebAdmin with support to use API commands
  - Support for UNIX Socket Domain in MySQL and PostgreSQL
  - Support Elixir 1.17 and Erlang/OTP 27.0

- 24.02

  - Matrix gateway
  - RFC 9266 Channel Bindings for TLS 1.3
  - XEP-0386: Bind 2
  - XEP-0388: Extensible SASL Profile (SASL2)
  - XEP-0424: Message Retraction
  - XEP-0440: SASL Channel-Binding Type Capability
  - XEP-0474: SASL SCRAM Downgrade Protection
  - XEP-0480: SASL Upgrade Tasks
  - Automatic SQL schema creation and update
  - Commands API versioning
  - Support Elixir 1.16 and Erlang/OTP 27.0-rc1

### 2023

- 23.10

  - Support for XEP-0402: PEP Native Bookmarks
  - Support for XEP-0421: Occupant Id
  - MySQL Performance enhancements

- 23.04

  - `mod_mam` support for XEP-0425: Message Moderation
  - New `mod_muc_rtbl`: Real-Time Block List for MUC rooms
  - Binaries use Erlang/OTP 25.3, and changes in containers

- 23.01

  - New `mod_mqtt_bridge`: MQTT bridge

### 2022

- 22.10

  - Improved MIX support
  - Improved SQL reconnection Mechanism
  - Better burst traffix handling

- 22.05

  - Improved MQTT, MUC and ConverseJS integration
  - New installers and container image
  - Support for Erlang/OTP 25

### 2021

- 21.12

  - New `mod_conversejs`: built-in ConverseJS web client
  - Support for MUC Hats extension
  - PubSub, MucSub and Multicast improvements

- 21.07

  - Improved database and caching for shared rosters
  - Broader multicast support for MUC
  - Improved rebar3 and Elixir support

- 21.04

  - Full support for Erlang/OTP 24 and rebar3
  - New API commands
  - New CAPTCHA script

- 21.01

  - Systemd watchdog support
  - STUN improvements

### 2020

- 20.12

  - Extended SCRAM-SHA support
  - Microsoft ODBC Driver support

- 20.07

  - Support for Unix Domain Sockets
  - Erlang/OTP 23 compatibility

- 20.04

  - New `mod_stun_disco`: support XEP-0215 including Audio/Video calls
  - Improved MS SQL support

- 20.03

  - SSL connection to MySQL
  - Improved performance of `mod_shared_roster`

- 20.02

  - Improved compatibility with CockroachDB
  - Emoji storage in MSSQL

- 20.01

  - OAuth support for ejabberd's MQTT
  - New OTP 22 event logger
  - New config parser & validator

### 2019

- 19.09

  - Significant improvements in ACME support: ACME v2
  - Erlang/OTP 19.3 is required

- 19.08

  - New JWT (JSON Web Token) authentication
  - New configuration validator, yconf
  - Improved MUC scalability
  - Removed Riak support

- 19.05

  - MQTT over WebSocket
  - Improved MucSub
  - Erlang/OTP 19.1 is required

- 19.02

  - MQTT Support
  - MIX improvements

### 2018

- 18.12

  - XML Compression in message archive storage
  - PROXY protocol support versions 1 and 2
  - MUC Self-Ping server optimisation (XEP-0410)
  - Bookmarks Conversion (XEP-0411)

- 18.09

  - Default configuration file simplification
  - Improved logging
  - OpenSSL 1.1.1 support
  - Modular ejabberd core

- 18.06

  - Stop ejabberd initialization on invalid/unknown options
  - Support SASL PLAIN
  - Drop support of mod_irc

- 18.04

- 18.03

  - New SQL schemas with server_host

- 18.01

### 2017

- 17.12

  - SNI (Server Name Indication) for inbound connections
  - Rewrite ejabberd system monitor
  - Support PubSub v1.14 and OMEMO

- 17.11

  - ACME Support
  - Introduce ‘certfiles’ global option
  - PubSub improved, and SQL storage

- 17.09

  - New mod_avatar
  - SRV for XMPP over TLS

- 17.08

  - XEP-0357: Push Notifications
  - Modular cluster with cluster_backend

- 17.07

- 17.06

  - New Caching system
  - Extended Riak support
  - Certificate manager

- 17.04

- 17.03

  - Modular code
  - Dynamic configuration reload
  - mod_blockstrangers for spam protection
  - S2S dialback

- 17.01

  - PostgreSQL SSL support

### 2016

- 16.12

  - New BOSH module
  - New Commands API permissions framework
  - XMPP packet handling using dedicated `xmpp` erlang library
  - New ejaberd/mix Docker container

- 16.09

  - Support for Elixir configuration file
  - XEP-0355 Namespace Delegation
  - XEP-0356 Privileged Entity

- 16.08

  - New MUC/Sub
  - Improved Elixir support
  - Major clean-up and improvement on OAuth ReST API

- 16.06

  - New ACL (Access Control List) infrastructure

- 16.04

- 16.03

  - Experimental support for MIX (Mediated Information eXchange)
  - Erlang/OTP 17.5 required

- 16.02

  - XEP-0013 Flexible Offline Message Retrieval
  - Improved Message Archive Management (MAM)
  - Published ejabberd on hex.pm
  - Faster and more memory efficient XML parsing and TLS encryption.
  - Stream compression after SASL
  - Migration script from Prosody

- 16.01

### 2015

- 15.11

  - Improved `join_cluster` and `leave_cluster`

- 15.10

  - New mod_http_upload with support for XEP-0363 HTTP File Upload
  - Added support for Grapherl

- 15.09

  - OAuth 2.0 delegation framework
  - Preliminary OAuth and HTTP based ejabberd API
  - X-AUTH2 authentication mechanism

- 15.07

- 15.06

  - New mod_mam with XEP-0313 Message Archive Management
  - Configuration checking on launch
  - Added Windows 7/8 installers, RPM and DEB packages
  - Document protocol support and version inside each module

- 15.04

  - Added mod_admin_extra and mod_muc_admin
  - Added XEP-0033 Extended Stanza Addressing
  - Support to embed ejabberd in an Elixir app
  - Erlang/OTP R16B03-1 is required

- 15.03

  - Added support for WebSocket
  - Customizable session backends
  - SCRAM support for SQL authentication backend
  - Documentation was converted from LaTeX to Markdown and published in docs.ejabberd.im/

- 15.02

  - Added Elixir support
  - New command to reload configuration withour restart
  - Bug tracker moves from JIRA to GitHub Issues

- Revamped ejabberd website, new logo, new development process and bugtracking migrated from JIRA to GitHub

### 2014

- 14.12

  - New mod_client_state with XEP-0352: Client State Indication
  - New mod_fail2ban

- 14.07

  - SIP Outbound (RFC 5626)

- 14.05

  - RFC-3261 SIP proxy/registrar
  - RFC-5766 TURN: Traversal Using Relays around NAT
  - XEP-0198 Stream Management
  - XEP-0321 Remote Roster Management
  - Several improvements regarding encryption
  - New Bash completion script for ejabberdctl

### 2013

- 13.12

  - New OpenSSL ciphers option in c2s, s2s and s2s_out
  - ejabberd_xmlrpc included

- 13.10

  - ejabberd configuration file in YAML format
  - Log files are created using Lager
  - Rebar2 is used to manage dependencies
  - Erlang/OTP R15 is required

- 13.03-beta1 (announcement)

  - Binarize and indent code
  - New versioning scheme

### 2012

- 2.1.11
  - Added ODBC support for several modules

### 2011

- 2.1.10

- 2.1.9

  - New SASL SCRAM-SHA-1 authentication mechanism

### 2010

- 2.1.6

  - mod_register: New captcha_protected option to require CAPTCHA
  - Support PostgreSQL 9.0

- October: the source code repository and the bug tracker were finally moved to GitHub

- 2.1.5

- 2.1.4

  - Full support for XEP-0115 Entity Capabilities v1.5

- 2.1.2

### 2009

- 2.1.1

- 2.1.0

  - LDAPS support
  - STUN server
  - New XEPs supported: XMPP Ping, Roster Versioning, Import/Export Format
  - Erlang/OTP R13 is supported

- 2.0.5 (announcement)

- 2.0.4 (announcement)

- 2.0.3 (announcement)

### 2008

- 2.0.2 (announcement)

- 2.0.1 (announcement)

- 2.0.0 (announcement)

  - New front-end and back-end cluster architecture
  - Complete rewrite of the PubSub module
  - New Proxy65 file transfer proxy
  - BOSH support
  - Many more improvements

### 2007

- 1.1.4

- 1.1.3

### 2006

- 1.1.2 (announcement)

  - LDAP improvements
  - Microsoft SQL supported
  - New Windows installer

- 1.1.1 (announcement)

  - Erlang/OTP R9C-2 required

- 1.1.0 (announcement)

  - JEP-0050: Ad-Hoc Commands
  - JEP-0138: Stream Compression
  - JEP-0175: SASL anonymous
  - Native MySQL support
  - MUC improvement: Chatroom logging

### 2005

- 1.0.0 (announcement)

  - S2S encryption: STARTTLS + SASL_EXTERNAL and STARTTLS + Dialback
  - Different certificates can be defined for each virtual host.
  - Support for vCard storage in ODBC
  - New tool to convert Mnesia to ODBC
  - Native PostgreSQL support

- 0.9.8 (announcement)

  - Enhanced virtual hosting
  - Enhanced PubSub

- 0.9.1 (announcement)

- 0.9 (announcement)

  - Added support for virtual hosts
  - New mod_shared_roster
  - Added PostgreSQL support

- February: source code moved from SVN to Git, and the bug tracker from Bugzilla to JIRA

- Beginning of 2005, source code moved from JabberStudio CVS to ProcessOne SVN

### 2004

- October: website moved from JabberStudio to ejabberd.jabber.ru, and the bug tracker to Jabber.ru’s Bugzilla

- 0.7.5

  - Support for STARTTLS with C2S connections
  - Support for authentification via external script
  - Added module which implement JUD and vCard services using LDAP
  - Improvements in web-based administration interface (user creation/removal, roster and offline queue management)
  - Support for message expiration (JEP-0023)
  - Support for HTTPS in web interface

- 0.7

  - Support for LDAP authentification
  - Support for HTTP Polling
  - Support for web-based administration interface
  - Added command-line administration utility "ejabberdctl"
  - Support for history management in MUC rooms

### 2003

- 16th November, 0.5

  - First release

- January, initial documentation in LaTeX: Ejabberd Installation and Operation Guide

### 2002

- 18th November, first commit to CVS

- 16th November, first erlang modules written