ActivityPub

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

  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
  5. 12345"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 года.