A lightweight, modular and asyncio XMPP/Jabber server written in Python.
Project description
Free software: MIT license
Documentation: https://pyjabber.readthedocs.io.
Installation
pip install pyjabber
Quick start
Python program
The process of starting the server returns a coroutine, leaving it to the user to set up the required environment. The simplest approach is to use the asyncio.run function.
from pyjabber.server import Server
my_server = Server()
asyncio.run(my_server.start())
This allows PyJabber to be treated as a regular task and integrated seamlessly into an asynchronous application.
import asyncio
from pyjabber.server import Server
async def counter():
while True:
await asyncio.sleep(1)
print(f"Hello World")
async def launch():
my_server = Server()
await asyncio.gather(my_server.start(), counter())
asyncio.run(launch())
CLI
The CLI launcher is the fastest way to start using the server.
$ pyjabber
2024-12-18 09:03:22.880 - INFO: Starting server...
2024-12-18 09:03:22.881 - INFO: Client domain => localhost
2024-12-18 09:03:22.881 - INFO: Server is listening clients on [('127.0.0.1', 5222), ('158.42.155.44', 5222)]
2024-12-18 09:03:22.881 - INFO: Serving admin webpage on http://localhost:9090
2024-12-18 09:03:22.881 - INFO: Server is listening servers on [('0.0.0.0', 5269)]
2024-12-18 09:03:22.881 - INFO: Server started...
Features
Status |
Description |
|
|---|---|---|
TLS |
Implemented |
v1.3. Localhost certificate included |
SASL |
Implemented |
PLAIN, EXTERNAL (s2s) |
Roster |
Implemented |
CRUD avaliable |
Presence |
Implemented (local bound) |
Subscribe, Unsubscribed, Initial presence and Unavailable |
Plugins
Status |
Description |
|
|---|---|---|
IMPLEMENTED |
Dataforms |
|
IMPLEMENTED |
Service Discovery |
|
IMPLEMENTED |
Pubsub |
|
IMPLEMENTED |
In Band Registration |
|
IMPLEMENTED |
Ping |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyjabber-0.4.2.tar.gz.
File metadata
- Download URL: pyjabber-0.4.2.tar.gz
- Upload date:
- Size: 957.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bc963c5566dd78976b92c5b7fd0764f517b115b10ee3fb9422a42fe06918269
|
|
| MD5 |
23377420926a35d0f8c3368ec7a184b4
|
|
| BLAKE2b-256 |
a02859b3362406ad42746b62e58f06daa29b742dda7d02562f5b2a7b49dfef39
|
File details
Details for the file pyjabber-0.4.2-py3-none-any.whl.
File metadata
- Download URL: pyjabber-0.4.2-py3-none-any.whl
- Upload date:
- Size: 986.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa9f0731529dffadfb0d20f361a14d55b3ae026e1c43898fa5ee89582996ac9b
|
|
| MD5 |
b003630445411f9fdf0cfe00e503287c
|
|
| BLAKE2b-256 |
c22f51697e950d174e34a5acfa4e5a5a8996cfcefefec4376aebaaae5e3460e1
|