Python library to abstract social web federation protocols like ActivityPub, Diaspora and Matrix.
 
 
Go to file
Jason Robinson 2fa8271af7 Refactor handle_receive to require a RequestType
The ActivityPub protocol handlers require access to HTTP headers,
method and url from the incoming request. Thus require passing in
a RequestType object, which has the same structure as a Django
HttpRequest for compatibility.

This is a breaking backwards compatible change requiring Diaspora
payloads be wrapped in a RequestType object.

Refs: #7
2019-03-03 03:04:08 +02:00
docs Change activitypub_object_view get_object_function call signature 2018-10-10 22:43:17 +03:00
federation Refactor handle_receive to require a RequestType 2019-03-03 03:04:08 +02:00
.coveragerc Add tox and gitlab CI 2018-07-23 19:15:34 +03:00
.gitignore Add pytest cache to gitignore 2018-02-02 17:16:16 +02:00
.gitlab-ci.yml Add tox and gitlab CI 2018-07-23 19:15:34 +03:00
CHANGELOG.md Refactor handle_receive to require a RequestType 2019-03-03 03:04:08 +02:00
LICENSE.txt Add metadata and push 0.3.2 to PyPi 2016-07-15 20:40:33 +03:00
MANIFEST.in Add docs introduction to manifest 2016-10-04 22:42:11 +03:00
README.md Add GitLab CI badge 2019-03-01 23:24:36 +00:00
dev-requirements.txt Add pytest-blockage 2018-08-11 23:41:15 +03:00
pytest.ini Move test settings and utils for Django to tests root 2018-09-29 12:12:34 +03:00
setup.cfg Add metadata and push 0.3.2 to PyPi 2016-07-15 20:40:33 +03:00
setup.py Make UserType an attrs class 2018-08-19 22:02:09 +03:00
tox.ini Add tox and gitlab CI 2018-07-23 19:15:34 +03:00

README.md

pipeline status codecov.io Code Health

PyPI version Documentation Status PyPI PyPI

federation

Python library to abstract social web federation protocols like Diaspora and ActivityPub.

Introduction

The aim of federation is to provide and abstract multiple social web protocols like Diaspora and ActivityPub in one package. This way applications can be built to (almost) transparently support many protocols without the app builder having to know everything about those protocols.

While the library does aim to provide an easy way to implement protocols like Diaspora into your application, it will not be a one to one mirror image of said protocols. The idea is to present one unified collection of entities and high level methods to the application to use. Since protocols can support different feature sets or have different ideas on even simple entities like status messages, it would be impossible to model the core entities according to a single protocol.

Status

Currently two protocols are being focused on. Diaspora is considered in relatively stable status with most of the protocol implemented. ActivityPub support is work in progress.

The code base is well tested and in use in several projects. Backward incompatible changes will however be made at this stage still, however those will be clearly documented in changelog entries.

Additional information

Installation and requirements

See installation documentation.

Usage and API documentation

See usage documentation.

Support and help

See development and support documentation.

License

BSD 3-clause license

Author

Jason Robinson / https://jasonrobinson.me / https://git.feneas.org/jaywink / https://github.com/jaywink