Об этом проекте
# Эталонная реализация AT Protocol (TypeScript)
Этот репозиторий содержит эталонную реализацию AT Protocol (atproto) от Bluesky — децентрализованного протокола социальных сетей, а также бэкенд микроблогингового сервиса `app.bsky`. Он спроектирован так, чтобы стороннее ПО было таким же бесшовным, как и собственное: пользовательские ленты, федеративные сервисы и альтернативные клиенты работают на одних и тех же API.
## Что внутри
### Лексиконы
Канонические определения схем для пространств имен `com.atproto.*` и `app.bsky.*`, хранящиеся как JSON-файлы на языке определения схем Lexicon (похож на JSON Schema или OpenAPI).
### Пакеты TypeScript
Публикуются в npm под скоупом `@atproto/*` (внутренние утилиты — под `@atproto-labs/*`). Ключевые пакеты:
- **`@atproto/lex`** — типобезопасный SDK, генерирующий TypeScript из схем Lexicon и предоставляющий HTTP-клиент (XRPC). Рекомендуется для приложений и ботов. Старый клиент `@atproto/api` всё ещё существует, но в новом коде предпочтителен `@atproto/lex`.
- **Пакеты OAuth** (`./packages/oauth/`) — клиентская и серверная реализации «Вход через Bluesky» с вариантами для браузера, Node и Expo.
- **Примитивы протокола** — узкоспециализированные пакеты: разбор идентификаторов (`syntax`), разрешение DID/хендлов (`identity`, `did`), подпись (`crypto`), репозиторий и Merkle Search Tree (`repo`), потребление firehose (`sync`).
- **Общие утилиты** — внутренний связующий код в `common`, `common-web` и `./packages/internal/`.
### Сервисы TypeScript
Каждый сервис имеет реализацию в `packages/<имя>` и тонкую обёртку для запуска в `services/<имя>`:
- **`pds`** — Personal Data Server, размещает контент репозиториев для аккаунтов atproto. Инструкции по самостоятельному хостингу: [bluesky-social/pds](https://github.com/bluesky-social/pds).
- **`bsky`** — реализация AppView для API-эндпоинтов `app.bsky.*`, работает в основной сети на `api.bsky.app`.
- **`bsync`** — внутренний сервис синхронизации, используемый AppView для кросс-сервисного состояния, такого как мьюты и уведомления.
- **`ozone`** — сервис модерации, реализующий API `tools.ozone.*`.
## Чего здесь нет
Исходный код клиентского приложения Bluesky Social (веб и мобильные) находится в [bluesky-social/social-app](https://github.com/bluesky-social/social-app). Исходный код на Go, включая реализацию BGS, — в [bluesky-social/indigo](https://github.com/bluesky-social/indigo).
## Начало работы
- **Обзор и руководства**: [atproto.com/guides/overview](https://atproto.com/guides/overview)
- **Вопросы**: [GitHub Discussions](https://github.com/bluesky-social/atproto/discussions)
- **Спецификации протокола**: [atproto.com/specs/atp](https://atproto.com/specs/atp)
## Вклад
Вклад приветствуется, но приоритет отдаётся качественным issue и pull request. См. [CONTRIBUTING.md](./CONTRIBUTING.md) для быстрого старта разработчика, правил и рекомендаций, включая политику в отношении вклада с использованием LLM. Соглашения о коде — в [STYLE_GUIDE.md](./STYLE_GUIDE.md).
## Безопасность
Сообщайте о проблемах безопасности на security@bsky.app (автоматически копируется команде). Подробнее см. [SECURITY.md](https://github.com/bluesky-social/atproto/blob/main/SECURITY.md).
## Лицензия
Двойное лицензирование: MIT и Apache 2.0. Проекты могут выбрать любую из лицензий по отдельности или обе вместе. Bluesky Social PBC взяла на себя обязательство о неагрессивности в отношении патентов на ПО (см. [анонс](https://bsky.social/about/blog/10-01-2025-patent-pledge)).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.