Metadata-Version: 2.4
Name: spade_pubsub
Version: 0.3.0
Summary: SPADE Plugin for PubSub support.
Home-page: https://github.com/javipalanca/spade_pubsub
Author: Javi Palanca
Author-email: jpalanca@dsic.upv.es
License: MIT license
Keywords: spade_pubsub
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: spade>=4.0.3
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

============
SPADE PubSub
============

.. image:: https://img.shields.io/pypi/v/spade_pubsub.svg
    :target: https://pypi.python.org/pypi/spade_pubsub

.. image:: https://img.shields.io/pypi/pyversions/spade_pubsub.svg
    :target: https://pypi.python.org/pypi/spade_pubsub
    :alt: Python Versions

.. image:: https://img.shields.io/github/languages/count/javipalanca/spade_pubsub?label=languages
    :alt: Languages
    :target: https://pepy.tech/project/spade_pubsub

.. image:: https://img.shields.io/github/languages/code-size/javipalanca/spade_pubsub
    :alt: Code Size
    :target: https://pepy.tech/project/spade_pubsub

.. image:: https://img.shields.io/pypi/l/spade_pubsub
    :target: https://opensource.org/licenses/MIT
    :alt: MIT License

.. image:: https://pepy.tech/badge/spade_pubsub
    :target: https://pepy.tech/project/spade_pubsub
    :alt: Downloads

.. image:: https://github.com/javipalanca/spade/actions/workflows/python-package.yml/badge.svg
    :target: https://github.com/javipalanca/spade_pubsub/actions/workflows/python-package.yml
    :alt: Continuous Integration Status

.. image:: https://coveralls.io/repos/github/javipalanca/spade_pubsub/badge.svg?branch=master
    :target: https://coveralls.io/github/javipalanca/spade_pubsub?branch=master
    :alt: Code Coverage Status

.. image:: https://readthedocs.org/projects/spade_pubsub/badge/?version=latest
    :target: https://spade-pubsub.readthedocs.io?badge=latest
    :alt: Documentation Status

.. image:: https://img.shields.io/pypi/format/spade.svg
    :target: https://pypi.python.org/pypi/spade_pubsub


SPADE Plugin for PubSub support.
SPADE PubSub is a plugin that extends the SPADE (Smart Python Agent Development Environment) framework with publish-subscribe communication capabilities. It enables SPADE agents to leverage the XMPP PubSub extension for efficient, decoupled communication patterns in multi-agent systems.

Purpose and Scope
-----------------
This plugin provides a clean, agent-oriented interface to the XMPP Publish-Subscribe Extension (XEP-0060), allowing SPADE agents to:

* Create and manage PubSub nodes
* Subscribe to nodes of interest
* Publish content to nodes
* Receive notifications when content is published
* Manage subscriptions and published items

SPADE PubSub serves as a bridging layer between SPADE's agent-oriented architecture and the underlying XMPP Pu


* Free software: MIT license
* Documentation: https://spade-pubsub.readthedocs.io.


Features
--------

- **Node Creation and Management**: Agents can create, delete, and purge nodes on a PubSub server, allowing flexible management of communication channels.

- **Subscription to Nodes**: Agents have the capability to subscribe and unsubscribe from specific nodes, facilitating the reception of relevant updates.

- **Item Publication**: Agents can publish items to subscribed nodes, efficiently distributing information to all subscribers.

- **Item Management**: It's possible to retrieve all items published on a node and retract specific items when necessary.

- **Notifications Without Items**: Agents can send notifications to all subscribers of a node without the need to publish an item, useful for alerts or signals.

- **Custom Callbacks**: Functions can be registered to handle events such as item publication or retraction, allowing personalized responses to these events.


Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
History
=======

0.3.0 (2025-07-16)
------------------
* Add support for slixmpp

0.2.1 (2025-05-19)
------------------

* Refactor code to imitate the response format of aioxmpp
* Improve documentation

0.2.0 (2024-12-17)
------------------

* Migration to the `Slixmpp <https://pypi.org/project/slixmpp/>`_ library for PubSub operations
* Refactor and fix of the previous tests

0.1.3 (2021-06-29)
------------------

* Minor bug fixed.

0.1.2 (2021-06-25)
------------------

* First release on PyPI.
