Metadata-Version: 2.1
Name: pyjabber
Version: 0.1.9
Summary: A Python XMPP server
Home-page: https://github.com/DinoThor/PyJabber
Author: Aarón Raya Lopez, Manel Soler Sanz
Author-email: aaron.raya.lopez@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: aiohttp==3.10.4
Requires-Dist: click==8.1.7
Requires-Dist: cryptography==43.0.1
Requires-Dist: loguru==0.7.2
Requires-Dist: pyyaml~=6.0.2
Requires-Dist: uvloop==0.21.0; sys_platform != "win32"

========
PyJabber
========

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

.. image:: https://img.shields.io/badge/python-3.8%20to%203.12-orange?logo=python&logoColor=green
        :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://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 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 <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
-----------
.. code-block:: python

        from pyjabber import Server

        my_server = Server()
        my_server.start()


or

.. code-block:: python

        pyjabber --help


.. code-block::

        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]
          --server_out_port INTEGER  Server-to-server port (Out coming connection)
                                     [default: 5269]
          --family [ipv4|ipv6]       (ipv4 / ipv6)  [default: ipv4]
          --tls1_3                   Enables TLSv1_3
          --timeout INTEGER          Timeout for connection  [default: 60]
          --database_path TEXT       Path for database file  [default:
                                     /home/aaron/pyjabber/pyjabber/db/server.db]
          --database_purge BOOLEAN   Restore database file to default state (empty)
                                     [default: False]
          --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.



Features
--------

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

   * -
     - 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

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
