À propos du projet

# Implémentation de référence du protocole AT (TypeScript) Ce dépôt contient l'implémentation de référence par Bluesky du protocole AT (atproto), un protocole de médias sociaux décentralisé, ainsi que le backend du service applicatif de microblogging `app.bsky`. Il est conçu pour que les logiciels tiers puissent être aussi fluides que les logiciels propriétaires : flux personnalisés, services fédérés et clients alternatifs se construisent tous sur les mêmes API. ## Contenu ### Lexicons Définitions de schémas canoniques pour les espaces de noms `com.atproto.*` et `app.bsky.*`, stockées sous forme de fichiers JSON dans le langage de définition de schémas Lexicon (similaire à JSON Schema ou OpenAPI). ### Paquets TypeScript Publiés sur npm sous le périmètre `@atproto/*` (avec des utilitaires internes sous `@atproto-labs/*`). Principaux paquets : - **`@atproto/lex`** – SDK type-safe qui génère du TypeScript à partir des schémas Lexicon et fournit un client HTTP (XRPC). Recommandé pour créer des applications ou des bots. L'ancien client `@atproto/api` existe toujours, mais les nouveaux codes devraient privilégier `@atproto/lex`. - **Paquets OAuth** (`./packages/oauth/`) – Implémentations client et serveur pour « Se connecter avec Bluesky », avec des variantes pour les environnements navigateur, Node et Expo. - **Primitives de protocole** – Paquets spécialisés pour l'analyse des identifiants (`syntax`), la résolution DID/handle (`identity`, `did`), la signature (`crypto`), le dépôt et l'arbre de recherche de Merkle (`repo`), et la consommation de flux continu (`sync`). - **Utilitaires partagés** – Code de liaison interne dans `common`, `common-web` et `./packages/internal/`. ### Services TypeScript Chaque service a son implémentation dans `packages/<nom>` et un wrapper d'exécution léger dans `services/<nom>` : - **`pds`** – Serveur de données personnelles, hébergeant le contenu du dépôt pour les comptes atproto. Instructions d'auto-hébergement disponibles sur [bluesky-social/pds](https://github.com/bluesky-social/pds). - **`bsky`** – Implémentation AppView des points de terminaison API `app.bsky.*`, fonctionnant sur le réseau principal à `api.bsky.app`. - **`bsync`** – Service de synchronisation interne utilisé par l'AppView pour l'état inter-services comme les silences et les notifications. - **`ozone`** – Service de modération implémentant l'API `tools.ozone.*`. ## Ce qui n'est pas ici Le code source de l'application client Bluesky Social (web et mobile) se trouve sur [bluesky-social/social-app](https://github.com/bluesky-social/social-app). Le code source en langage Go, y compris l'implémentation BGS, se trouve sur [bluesky-social/indigo](https://github.com/bluesky-social/indigo). ## Pour commencer - **Aperçu et guides** : [atproto.com/guides/overview](https://atproto.com/guides/overview) - **Questions** : [Discussions GitHub](https://github.com/bluesky-social/atproto/discussions) - **Spécifications du protocole** : [atproto.com/specs/atp](https://atproto.com/specs/atp) ## Contributions Les contributions sont bienvenues, mais les problèmes et demandes de fusion de haute qualité sont prioritaires. Voir [CONTRIBUTING.md](./CONTRIBUTING.md) pour le démarrage rapide du développeur, les règles et les directives, y compris la politique sur les contributions assistées par LLM. Les conventions de code sont dans [STYLE_GUIDE.md](./STYLE_GUIDE.md). ## Sécurité Signalez les problèmes de sécurité à security@bsky.app (en copie automatique de l'équipe). Voir [SECURITY.md](https://github.com/bluesky-social/atproto/blob/main/SECURITY.md) pour plus d'informations. ## Licence Sous double licence MIT et Apache 2.0. Les projets en aval peuvent choisir l'une ou l'autre licence individuellement ou les deux ensemble. Bluesky Social PBC s'est engagé à une promesse de non-agression en matière de brevets logiciels (voir [annonce](https://bsky.social/about/blog/10-01-2025-patent-pledge)).