ActivityPub
ActivityPub — открытый и децентрализованный протокол социальных сетей, основанный на протоколе ActivityPump Pump.io.[1] Предоставляет API для клиента/сервера для создания, обновления и удаления контента, а также объединённый API для доставки уведомлений и контента с одного сервера на другой.
ActivityPub | |
---|---|
Название | ActivityPub |
Уровень (по модели OSI) | Прикладной |
Семейство | ActivityPump |
Создан в | 2018 |
Назначение протокола | децентрализованный обмен данными |
Основные реализации (клиенты) | Dokieli, go-fed |
Основные реализации (серверы) | Mastodon, Hubzilla, PeerTube |
Расширяемость | да |
Разработчик | Консорциум Всемирной паутины |
Медиафайлы на Викискладе |
Статус проекта
править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]
См. также
правитьПримечания
править- ↑ "Sandstorm And The Social Web" (англ.). zenhack.net. Дата обращения: 18 апреля 2019. Архивировано 30 октября 2020 года.
- ↑ "W3C Recommendation 23 January 2018" (англ.). Дата обращения: 18 апреля 2019. Архивировано 18 ноября 2020 года.
- ↑ Tilley, Sean. "A quick guide to The Free Network" (англ.) (23 сентября 2017). Дата обращения: 18 апреля 2019. Архивировано 8 ноября 2020 года.
- ↑ w3.org: ActivityPub/Primer
- ↑ 1 2 3 4 5 "Implementation reports" (англ.). activitypub.rocks. Дата обращения: 18 апреля 2019. Архивировано 6 апреля 2021 года.
- ↑ "Friendica 2019.01 released" (англ.). Дата обращения: 18 апреля 2019. Архивировано 1 марта 2021 года.
- ↑ "dokieli" (англ.). Дата обращения: 18 апреля 2019. Архивировано из оригинала 5 апреля 2019 года.
- ↑ "ActivityStreams & ActivityPub in golang, oh my!" (англ.). Дата обращения: 18 апреля 2019. Архивировано 29 июля 2018 года.
- ↑ "microblog.pub" (англ.). Дата обращения: 18 апреля 2019. Архивировано 29 июня 2020 года.
- ↑ "distbin" (англ.). Дата обращения: 18 апреля 2019. Архивировано из оригинала 19 августа 2018 года.
Ссылки
править- "ActivityPub Rocks!" (англ.). activitypub.rocks.
- s4n2a. "Не ходи в Fediverse, там тебя ждут неприятности. — Ну как же туда не ходить? Они же ждут" . habr.com (24 декабря 2017).
- "Diaspora* — альтернативная социальная сеть в постсноуденовскую эпоху" . tproger.ru (29 сентября 2016).