diff --git a/README.md b/README.md index b85feec..b010050 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,26 @@ # federation -Python library to abstract social web federation protocols like ActivityPub and Diaspora. +Python library to abstract social web federation protocols like ActivityPub, Diaspora and Matrix. ## Introduction The aim of `federation` is to provide and abstract multiple social web protocols like -ActivityPub and Diaspora in one package, over an easy to use and understand Python API. +ActivityPub, Diaspora and Matrix in one package, over an easy to use and understand Python API. This way applications can be built to (almost) transparently support many protocols without the app builder having to know everything about those protocols. -![](http://federation.readthedocs.io/en/latest/_images/generic_diagram.png) +![](./docs/_static/generic_diagram.png) ## Status -Currently two protocols are being focused on. Diaspora is considered to be stable with most -of the protocol implemented. ActivityPub support should be considered as alpha - all the basic -things work but there are likely to be a lot of compatibility issues with other ActivityPub -implementations. +Currently, three protocols are being focused on. + +* Diaspora is considered to be stable with most of the protocol implemented. +* ActivityPub support should be considered as alpha - all the basic + things work but there are likely to be a lot of compatibility issues with other ActivityPub + implementations. +* Matrix support cannot be considered usable yet. The code base is well tested and in use in several projects. Backward incompatible changes will be clearly documented in changelog entries. diff --git a/docs/_static/generic_diagram.odg b/docs/_static/generic_diagram.odg index 471e82b..719e414 100644 Binary files a/docs/_static/generic_diagram.odg and b/docs/_static/generic_diagram.odg differ diff --git a/docs/_static/generic_diagram.png b/docs/_static/generic_diagram.png index f098785..685d58c 100644 Binary files a/docs/_static/generic_diagram.png and b/docs/_static/generic_diagram.png differ diff --git a/docs/introduction.rst b/docs/introduction.rst index aaaab73..83a2014 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -11,10 +11,13 @@ without the app builder having to know everything about those protocols. Status ------ -Currently two protocols are being focused on. Diaspora is considered to be stable with most -of the protocol implemented. ActivityPub support should be considered as alpha - all the basic -things work but there are likely to be a lot of compatibility issues with other ActivityPub -implementations. +Currently three protocols are being focused on. + +* Diaspora is considered to be stable with most of the protocol implemented. +* ActivityPub support should be considered as alpha - all the basic + things work but there are likely to be a lot of compatibility issues with other ActivityPub + implementations. +* Matrix support cannot be considered usable as of yet. The code base is well tested and in use in several projects. Backward incompatible changes will be clearly documented in changelog entries. @@ -45,5 +48,5 @@ License Author ...... -Jason Robinson / `jasonrobinson.me `_ / `GitLab `_ / `GitHub `_ +Jason Robinson / `jasonrobinson.me `_ / `@jaywink:federator.dev `_ / `GitLab `_ / `GitHub `_ diff --git a/docs/protocols.rst b/docs/protocols.rst index e4adcdc..c8a97eb 100644 --- a/docs/protocols.rst +++ b/docs/protocols.rst @@ -1,10 +1,13 @@ Protocols ========= -Currently two protocols are being focused on. Diaspora is considered to be stable with most -of the protocol implemented. ActivityPub support should be considered as alpha - all the basic -things work but there are likely to be a lot of compatibility issues with other ActivityPub -implementations. +Currently three protocols are being focused on. + +* Diaspora is considered to be stable with most of the protocol implemented. +* ActivityPub support should be considered as alpha - all the basic + things work but there are likely to be a lot of compatibility issues with other ActivityPub + implementations. +* Matrix support cannot be considered usable as of yet. For example implementations in real life projects check :ref:`example-projects`. @@ -85,3 +88,20 @@ content in ``object.source``. For inbound entities we do this automatically by not including received attachments in the entity ``_children`` attribute. + +.. _matrix: + +Matrix +------ + +The aim of Matrix support in this library is not to provide instant messaging but to wrap +the parts of the Matrix protocol that specifically are especially useful for social media +applications. The current ongoing work on `Ceruelan `_ +provides much of what will be implemented in this library. + +This library doesn't aim to be a homeserver or provide any part of the server to server API. +The plan is to provide an appservice to hook onto a separate homeserver that deals with all +the complex protocol related details. This library will then aim to abstract much of what the +appservice gives or takes behind the same API as is provided for the other protocols. + +Currently support is being added, please visit back in future versions. diff --git a/federation/protocols/matrix/__init__.py b/federation/protocols/matrix/__init__.py new file mode 100644 index 0000000..e69de29