SkillAgentSearch skills...

PyJabber

A lightweight, modular and asyncio XMPP/Jabber server written in Python.

Install / Use

/learn @DinoThor/PyJabber
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

=================================== PyJabber: The Python XMPP Server

.. image:: https://img.shields.io/pypi/v/pyjabber.svg :target: https://pypi.org/project/pyjabber/

.. image:: https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue :alt: Python 3.8 to 3.12

.. image:: https://img.shields.io/github/actions/workflow/status/dinothor/pyjabber/python-app.yml :target: https://github.com/DinoThor/PyJabber/actions :alt: Build Status

.. image:: https://coveralls.io/repos/github/DinoThor/PyJabber/badge.svg?branch=master :target: https://coveralls.io/github/DinoThor/PyJabber?branch=master :alt: Coverage Status

.. image:: https://tokei.rs/b1/github/dinothor/pyjabber :alt: Code lines counter

.. image:: https://readthedocs.org/projects/pyjabber/badge/?version=latest :target: https://pyjabber.readthedocs.io/en/latest/?version=latest :alt: Documentation Status

.. image:: https://img.shields.io/pypi/dm/pyjabber :target: https://www.pepy.tech/projects/pyjabber :alt: Monthly downloads

.. image:: https://img.shields.io/pepy/dt/pyjabber :target: https://www.pepy.tech/projects/pyjabber :alt: Total downloads

| | PyJabber is an asyncio 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. | While initially designed to fulfill the requirements of the multi-agent system SPADE <https://github.com/javipalanca/spade>_, it can be easily customized to suit any other purpose. |

  • Free software: MIT license
  • Documentation: https://pyjabber.readthedocs.io.

Installation

.. code-block::

    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.

.. code-block:: python

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.

.. code-block:: python

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.

.. code-block::

    $ pyjabber

.. code-block::

    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

.. list-table:: :widths: 25 25 50 :header-rows: 1

    • 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

.. list-table:: :widths: 25 25 50 :header-rows: 1

    • Status
    • Description
    • XEP-0004 <https://xmpp.org/extensions/xep-0004.html>_
    • IMPLEMENTED
    • Dataforms
    • XEP-0030 <https://xmpp.org/extensions/xep-0030.html>_
    • IMPLEMENTED
    • Service Discovery
    • XEP-0060 <https://xmpp.org/extensions/xep-0077.html>_
    • IMPLEMENTED
    • Pubsub
    • XEP-0077 <https://xmpp.org/extensions/xep-0077.html>_
    • IMPLEMENTED
    • In Band Registration
    • XEP-0199 <https://xmpp.org/extensions/xep-0199.html>_
    • IMPLEMENTED
    • Ping
View on GitHub
GitHub Stars7
CategoryDevelopment
Updated4d ago
Forks4

Languages

Python

Security Score

90/100

Audited on Apr 2, 2026

No findings