Bienvenue les amis !
Ce référentiel contient l'implémentation de référence du protocole AT par Bluesky et du backend du service d'application de microblogging app.bsky
.
Forfaits TypeScript :
Emballer | Documents | MNP |
---|---|---|
@atproto/api : bibliothèque cliente | LISEZMOI | |
@atproto/common-web : code partagé et assistants pouvant s'exécuter dans les navigateurs Web | LISEZMOI | |
@atproto/common : code partagé et helpers qui ne fonctionnent pas dans les navigateurs web | LISEZMOI | |
@atproto/crypto : signature cryptographique et sérialisation des clés | LISEZMOI | |
@atproto/identity : DID et gestion de la résolution | LISEZMOI | |
@atproto/lexicon : langage de définition de schéma | LISEZMOI | |
@atproto/repo : structure de stockage des données, incluant MST | LISEZMOI | |
@atproto/syntax : analyseurs de chaînes pour les identifiants | LISEZMOI | |
@atproto/xrpc : assistants API HTTP côté client | LISEZMOI | |
@atproto/xrpc-server : assistants API HTTP côté serveur | LISEZMOI |
Services dactylographiés :
pds
: "Personal Data Server", hébergeant le contenu du repo pour les comptes atproto. La plupart du code d'implémentation est dans packages/pds
, avec le wrapper d'exécution dans services/pds
. Voir bluesky-social/pds pour obtenir des instructions sur l'auto-hébergement.bsky
: implémentation AppView des points de terminaison de l'API app.bsky.*
. Fonctionnant sur le réseau principal sur api.bsky.app
. La plupart du code d'implémentation se trouve dans packages/bsky
, avec le wrapper d'exécution dans services/bsky
. Lexiques : pour com.atproto.*
et app.bsky.*
sont canoniquement versionnés dans ce référentiel, pour l'instant, sous ./lexicons/
. Il s'agit de fichiers JSON dans le langage de définition de schéma Lexicon, similaire à JSON Schema ou OpenAPI.
Données de test d'interopérabilité : les fichiers de test neutres en termes de langage dans ./interop-test-files/
peuvent être utiles pour d'autres implémentations de protocole afin de garantir qu'ils suivent correctement la spécification.
Le code source de l'application client Bluesky Social (pour le Web et mobile) peut être trouvé sur bluesky-social/social-app.
Le code source du langage de programmation Go est en bluesky-social/indigo, y compris l'implémentation BGS.
Nous recommandons nvm
pour gérer les installations Node.js. Ce projet nécessite Node.js version 18. pnpm
est utilisé pour gérer l'espace de travail de plusieurs packages. Vous pouvez l'installer avec npm install --global pnpm
.
Il existe un Makefile qui peut vous aider dans les tâches de développement de base :
# use existing nvm to install node 18 and pnpm
make nvm-setup
# pull dependencies and build all local packages
make deps
make build
# run the tests, using Docker services as needed
make test
# run a local PDS and AppView with fake test accounts and data
# (this requires a global installation of `jq` and `docker`)
make run-dev-env
# show all other commands
make help
Le protocole de transfert authentifié (« ATP » ou « atproto ») est un protocole de médias sociaux décentralisé développé par Bluesky PBC. Apprenez-en davantage sur :
L'application Bluesky Social englobe un ensemble de schémas et d'API construits dans le cadre global du protocole AT. L'espace de noms de ces « Lexiques » est app.bsky.*
.
Bien que nous acceptions les contributions, nous donnons la priorité aux problèmes de haute qualité et aux demandes de tirage. Le respect des directives ci-dessous garantira un examen plus rapide.
Règles:
Lignes directrices :
N'oubliez pas que nous servons une large communauté d'utilisateurs. Notre quotidien nous oblige à nous demander constamment « quelle est notre priorité absolue ». Si vous soumettez des PR bien rédigés qui résolvent les problèmes de manière concise, c'est une contribution formidable. Sinon, même si nous serions ravis d’accepter vos idées et contributions, nous n’avons vraiment pas la bande passante.
Bluesky est un réseau social ouvert construit sur le protocole AT, une technologie flexible qui n'exclura jamais les développeurs des écosystèmes qu'ils contribuent à créer. Avec atproto, les tiers peuvent être aussi transparents que les propriétaires grâce à des flux personnalisés, des services fédérés, des clients et bien plus encore.
Si vous découvrez des problèmes de sécurité, veuillez envoyer un e-mail à [email protected]. L'e-mail est automatiquement envoyé en copie à toute l'équipe et nous y répondrons dans les plus brefs délais. Voir SECURITY.md pour plus d'informations.
Ce projet bénéficie d'une double licence selon les termes MIT et Apache 2.0 :
Les projets en aval et les utilisateurs finaux peuvent choisir l'une ou l'autre des licences individuellement, ou les deux ensemble, à leur discrétion. La motivation pour cette double licence est l'assurance de brevet logiciel supplémentaire fournie par Apache 2.0.