Bem-vindos amigos!
Este repositório contém a implementação de referência do protocolo AT da Bluesky e do back-end do serviço de aplicativo de microblogging app.bsky
.
Pacotes TypeScript:
Pacote | Documentos | NPM |
---|---|---|
@atproto/api : biblioteca cliente | LEIA-ME | |
@atproto/common-web : código compartilhado e auxiliares que podem ser executados em navegadores da web | LEIA-ME | |
@atproto/common : código compartilhado e auxiliares que não funcionam em navegadores da web | LEIA-ME | |
@atproto/crypto : assinatura criptográfica e serialização de chave | LEIA-ME | |
@atproto/identity : DID e tratamento da resolução | LEIA-ME | |
@atproto/lexicon : linguagem de definição de esquema | LEIA-ME | |
@atproto/repo : estrutura de armazenamento de dados, incluindo MST | LEIA-ME | |
@atproto/syntax : analisadores de string para identificadores | LEIA-ME | |
@atproto/xrpc : ajudantes da API HTTP do lado do cliente | LEIA-ME | |
@atproto/xrpc-server : ajudantes da API HTTP do lado do servidor | LEIA-ME |
Serviços TypeScript:
pds
: "Personal Data Server", hospedando conteúdo de repositório para contas atproto. A maior parte do código de implementação em packages/pds
, com wrapper de tempo de execução em services/pds
. Consulte bluesky-social/pds para obter instruções sobre auto-hospedagem.bsky
: implementação AppView dos endpoints da API app.bsky.*
. Executando na rede principal em api.bsky.app
. A maior parte do código de implementação em packages/bsky
, com wrapper de tempo de execução em services/bsky
. Léxicos: tanto para com.atproto.*
quanto para app.bsky.*
são versionados canonicamente neste repositório, por enquanto, em ./lexicons/
. Estes são arquivos JSON na linguagem de definição de esquema Lexicon, semelhante ao JSON Schema ou OpenAPI.
Dados de teste de interoperabilidade: os arquivos de teste de linguagem neutra em ./interop-test-files/
podem ser úteis para outras implementações de protocolo para garantir que sigam a especificação corretamente
O código-fonte do aplicativo cliente Bluesky Social (para web e dispositivos móveis) pode ser encontrado em bluesky-social/social-app.
O código-fonte da linguagem de programação Go está em bluesky-social/indigo, incluindo a implementação BGS.
Recomendamos nvm
para gerenciar instalações do Node.js. Este projeto requer Node.js versão 18. pnpm
é usado para gerenciar o espaço de trabalho de vários pacotes. Você pode instalá-lo com npm install --global pnpm
.
Existe um Makefile que pode ajudar nas tarefas básicas de desenvolvimento:
# 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
O Authenticated Transfer Protocol ("ATP" ou "atproto") é um protocolo descentralizado de mídia social, desenvolvido pela Bluesky PBC. Saiba mais em:
O aplicativo Bluesky Social abrange um conjunto de esquemas e APIs construídos na estrutura geral do protocolo AT. O namespace para esses "Léxicos" é app.bsky.*
.
Embora aceitemos contribuições, priorizamos questões de alta qualidade e solicitações pull. Seguir as diretrizes abaixo garantirá uma revisão mais oportuna.
Regras:
Diretrizes:
Lembre-se de que atendemos uma ampla comunidade de usuários. Nosso dia-a-dia envolve perguntar constantemente "qual prioridade é a nossa prioridade". Se você enviar PRs bem escritos que resolvam problemas de forma concisa, será uma contribuição incrível. Caso contrário, por mais que adoraríamos aceitar suas ideias e contribuições, realmente não temos largura de banda.
Bluesky é uma rede social aberta baseada no protocolo AT, uma tecnologia flexível que nunca bloqueará os desenvolvedores dos ecossistemas que eles ajudam a construir. Com o atproto, terceiros podem ser tão integrados quanto primários por meio de feeds personalizados, serviços federados, clientes e muito mais.
Se você descobrir algum problema de segurança, envie um e-mail para [email protected]. O e-mail é enviado automaticamente para toda a equipe e responderemos prontamente. Consulte SECURITY.md para obter mais informações.
Este projeto tem licença dupla sob os termos do MIT e Apache 2.0:
Os projetos downstream e os usuários finais podem escolher qualquer uma das licenças individualmente ou ambas em conjunto, a seu critério. A motivação para este licenciamento duplo é a garantia adicional de patente de software fornecida pelo Apache 2.0.