PyJabber is a server for Jabber/XMPP entirely written in Python, with minimal reliance on external libraries.
It strives to provide a simple, lightweight, and comprehensible codebase, featuring a modular structure that
facilitates extension through the implementation of necessary XEPs for specific use cases.
While initially designed to fulfill the requirements of the multi-agent system SPADE, it can be easily customized to suit any other purpose.
- Free software: MIT license
- Documentation: https://pyjabber.readthedocs.io.
pip install pyjabber
from pyjabber import Server
my_server = Server()
my_server.start()
or
pyjabber --help
Usage: pyjabber [OPTIONS] Options: --host TEXT Host name [default: localhost] --client_port INTEGER Server-to-client port [default: 5222] --server_port INTEGER Server-to-server port [default: 5269] --family [ipv4|ipv6] (ipv4 / ipv6) [default: ipv4] --tls1_3 Enables TLSv1_3 --timeout INTEGER Timeout for connection [default: 60] --log_level [INFO|DEBUG] Log level alert [default: INFO] --log_path TEXT Path to log dumpfile -D, --debug Enables debug mode in Asyncio --help Show this message and exit.
Status | Description | |
---|---|---|
TLS | Implemented | v1.2 + v1.3. Localhost certificate included |
SASL | Implemented | PLAIN, EXTERNAL (s2s) |
Roster | Implemented | CRUD avaliable |
Presence | Implemented (local bound) | Subscribe, Unsubscribed, Initial presence and Unavailable |
Status | Description | |
---|---|---|
XEP-0077 | IMPLEMENTED | In Band Registration |
XEP-0199 | IMPLEMENTED | Ping |