ActivityPub

Название |  ActivityPub
Уровень (по модели OSI) |  Прикладной
Семейство |  ActivityPump
Создан в |  2018
Назначение протокола |  децентрализованный обмен данными
Основные реализации (клиенты) |  Dokieli, go-fed
Основные реализации (серверы) |  Mastodon, Hubzilla, PeerTube
Расширяемость |  да
Разработчик |  Консорциум Всемирной паутины
Медиафайлы на Викискладе

ActivityPub — открытый и децентрализованный протокол социальных сетей, основанный на протоколе ActivityPump Pump.io.[1] Предоставляет API для клиента/сервера для создания, обновления и удаления контента, а также объединённый API для доставки уведомлений и контента с одного сервера на другой.

## Содержание

* 1 Статус проекта
* 2 Принцип действия
* 3 Значимые реализации
* 3.1 Объединённый (сервер-сервер) сервер
* 3.2 Протокол клиент-сервер
* 3.2.1 Клиентская реализация
* 3.2.2 Серверная реализация
* 4 См. также
* 5 Примечания
* 6 Ссылки

## Статус проекта

[править | править код]

ActivityPub является стандартом для Интернета в Группе социальных сетей Консорциума Всемирной паутины (W3C). На более раннем этапе протокол назывался «ActivityPump», но считалось, что ActivityPub лучше отражает цель перекрестной публикации протокола. Этому научились из опыта работы со старым стандартом под названием OStatus.

В январе 2018 года Консорциум Всемирной паутины (W3C) опубликовал стандарт ActivityPub в качестве Рекомендации.[2]

Бывший руководитель сообщества Diaspora Шон Тилли написал статью, в которой предложил использовать протоколы ActivityPub в качестве способа объединения интернет-платформ.[3]

## Принцип действия

[править | править код]

Взаимодействие актёра с федивёрсом

Протокол работает поверх обычного HTTPS. Взаимодействующие пользователи в терминологии activityPub называются «акторами» (англ. actor), а передаваемые друг другу сообщения называются «активностями» (англ. activity). Сервер называют «инстансом» (англ. instance). На каждом сервере по определённому адресу расположен «инбокс» (англ. inbox), в который другие серверы передают свои активности. Активности передаются методом POST, запакованными в JSON и зашифрованными согласно HTTPS.

Активности могут быть типов Like, Follow, Add, Announce и других.[4] Получатель обрабатывает полученное сообщение соответствующим образом (обновляя локальную ленту), либо отправляет в ответ сообщение Reject.

## Значимые реализации

[править | править код]

### Объединённый (сервер-сервер) сервер

[править | править код]

* Mastodon, открытое программное обеспечение для социальных сетей с внедрённым ActivityPub (добавлено в версии 1.6), выпущенное 10 сентября 2017 года. Предполагается, что ActivityPub обеспечивает большую безопасность для личных сообщений, чем предыдущий протокол OStatus.[5]
* Pleroma, открытое программное обеспечение для социальных сетей с внедрённым ActivityPub.[5]
* Misskey, открытое программное обеспечение для социальных сетей с внедрённым ActivityPub.
* Hubzilla, совместная программная платформа CMS, использующая Zot, добавила поддержку ActivityPub в версии 2.8 (октябрь 2017) с плагином.
* Nextcloud, личное самохостинговое облако.
* PeerTube, федеративный сервис для стриминга видео.[5]
* Pixelfed, федеративный сервис для обмена фотографиями.
* Friendica, открытое программное обеспечение для социальных сетей с внедрённым ActivityPub (добавлено в версии 2019.01).[6]
* Osada, открытое программное обеспечение для социальных сетей с внедрённым Zot и ActivityPub.
* GoToSocial, федеративный сервис с поддержкой ActivityPub, написан на Go.

### Протокол клиент-сервер

[править | править код]

#### Клиентская реализация

[править | править код]

Следующие решения являются понятными клиентскими реализациями ActivityPub:[5]

* dokieli, редактор с клиентской стороны с помощью WebAnnotation и ActivityPub.[7]
* go-fed, библиотека, реализующая ActivityStreams и ActivityPub на языке Go.[8]

#### Серверная реализация

[править | править код]

Следующие решения являются понятными серверными реализациями ActivityPub:[5]

* microblog.pub, однопользовательская микроблоговая реализация для базового сервера ActivityPub, находящийся в стадии разработки.[9]
* distbin, распределённый сервис хранения отрывков текста, реализующий ActivityPub.[10]

## См. также

[править | править код]

* Fediverse

## Примечания

[править | править код]

1. ↑ "Sandstorm And The Social Web" (англ.). zenhack.net. Дата обращения: 18 апреля 2019. Архивировано 30 октября 2020 года.
2. ↑ "W3C Recommendation 23 January 2018" (англ.). Дата обращения: 18 апреля 2019. Архивировано 18 ноября 2020 года.
3. ↑ Tilley, Sean. "A quick guide to The Free Network" (англ.) (23 сентября 2017). Дата обращения: 18 апреля 2019. Архивировано 8 ноября 2020 года.
4. ↑ w3.org: ActivityPub/Primer (неопр.). Дата обращения: 27 января 2024. Архивировано 27 января 2024 года.
5. ↑ 1 2 3 4 5 "Implementation reports" (англ.). activitypub.rocks. Дата обращения: 18 апреля 2019. Архивировано 6 апреля 2021 года.
6. ↑ "Friendica 2019.01 released" (англ.). Дата обращения: 18 апреля 2019. Архивировано 1 марта 2021 года.
7. ↑ "dokieli" (англ.). Дата обращения: 18 апреля 2019. Архивировано из оригинала 5 апреля 2019 года.
8. ↑ "ActivityStreams & ActivityPub in golang, oh my!" (англ.). Дата обращения: 18 апреля 2019. Архивировано 29 июля 2018 года.
9. ↑ "microblog.pub" (англ.). Дата обращения: 18 апреля 2019. Архивировано 29 июня 2020 года.
10. ↑ "distbin" (англ.). Дата обращения: 18 апреля 2019. Архивировано из оригинала 19 августа 2018 года.

## Ссылки

[править | править код]

* "ActivityPub Rocks!" (англ.). activitypub.rocks.
* s4n2a. "Не ходи в Fediverse, там тебя ждут неприятности. — Ну как же туда не ходить? Они же ждут" (неопр.). habr.com (24 декабря 2017).
* "Diaspora* — альтернативная социальная сеть в постсноуденовскую эпоху" (неопр.). tproger.ru (29 сентября 2016).

Консорциум Всемирной паутины (W3C)

Продукты
и стандарты|

| Рекомендации|

* ActivityPub
* Activity Streams[англ.]
* ARIA
* Canonical XML[англ.]
* CDF[англ.]
* CSS
* DOM
* Geolocation API[англ.]
* HTML
* HTML5
* ITS[англ.]
* JSON-LD
* Linked Data Notifications[англ.]
* MathML
* Micropub[англ.]
* OWL
* PLS
* RDF
* RDFS
* SISR
* SKOS
* SMIL
* SOAP
* SRGS
* SRI
* SSML
* SVG
* Filter Effects
* SCXML[англ.]
* SHACL[англ.]
* SPARQL
* Timed text
* VoiceXML
* Web Storage
* WSDL
* Webmention
* WebSub
* XHTML
* +RDFa
* XML
* XML Base
* XML Encryption
* XML Events
* XML Information Set
* XML namespace
* XML Schema
* XML Signature
* XForms
* XInclude
* XLink
* XOP
* XPath
* 1.0
* 2.0
* XPointer
* XProc
* XQuery
* XSL
* XSL-FO
* XSLT
* элементы

|

ООСО|

* IndieAuth[англ.]
* XAdES[англ.]
* XBL[англ.]
* XHTML+SMIL[англ.]
* XUP[англ.]

Рабочие проекты|

* CCXML[англ.]
* CURIE[англ.]
* EME[англ.]
* InkML
* MSE[англ.]
* RIF
* SMIL Timesheets[англ.]
* sXBL[англ.]
* WebGPU
* WebXR
* WICD[англ.]
* XFDL[англ.]
* XFrames
* XMLHttpRequest

Руководства|

* Руководящие принципы доступности веб-контента[англ.]

Инициативы|

* Markup Validation Service[англ.]
* Web Accessibility Initiative[англ.]
* WebPlatform[англ.]

Выведенные
из использования|

* CHTML
* HDML[англ.]
* JSSS
* PGML
* VML
* XHTML+MathML+SVG[англ.]

Устаревшие|

* P3P

Организации|

* World Wide Web Foundation
* WHATWG

Рабочие группы|

* TAG[англ.]
* CSS
* SVG[англ.]
* WebAuthn[англ.]

Группы сообщества и бизнеса|

* Web Advertising BG[англ.]

Закрывшиеся группы|

* Device Description (DDWG)[англ.]
* HTML[англ.]
* Multimodal Interaction Activity (MMI)[англ.]

ПО|

* CERN httpd
* Libwww[англ.]

Браузеры|

* Line Mode (1991–)
* Arena (1993–98)
* Agora (1994–97)[англ.]
* Argo (1994–97)[англ.]
* Amaya (браузер/редактор, 1996–2012)

Конференции|

* International World Wide Web Conference (IW3C)
* Steering Committee (IW3C2)[англ.]
* First conference ("WWW1", 1994)[англ.]

*[ООСО]: Оконечное оборудование сетевого офиса (Network Office Terminating Equipment)
*[ПО]: Программное_обеспечение