欢迎朋友们!
该存储库包含 Bluesky AT 协议和app.bsky
微博应用服务后端的参考实现。
打字稿包:
包裹 | 文档 | 国家公共管理 |
---|---|---|
@atproto/api :客户端库 | 自述文件 | |
@atproto/common-web :可以在网络浏览器中运行的共享代码和帮助程序 | 自述文件 | |
@atproto/common :共享代码和助手,但在网络浏览器中不起作用 | 自述文件 | |
@atproto/crypto :加密签名和密钥序列化 | 自述文件 | |
@atproto/identity :DID 并处理解析 | 自述文件 | |
@atproto/lexicon :模式定义语言 | 自述文件 | |
@atproto/repo :数据存储结构,包括MST | 自述文件 | |
@atproto/syntax :标识符的字符串解析器 | 自述文件 | |
@atproto/xrpc :客户端 HTTP API 帮助程序 | 自述文件 | |
@atproto/xrpc-server :服务器端 HTTP API 帮助器 | 自述文件 |
打字稿服务:
pds
:“个人数据服务器”,托管 atproto 帐户的存储库内容。大多数实现代码位于packages/pds
中,运行时包装器位于services/pds
中。有关自托管的说明,请参阅 bluesky-social/pds。bsky
: app.bsky.*
API 端点的 AppView 实现。在主网络api.bsky.app
上运行。大多数实现代码位于packages/bsky
中,运行时包装器位于services/bsky
中。词典:对于com.atproto.*
和app.bsky.*
来说,目前在该存储库中都具有规范版本,位于./lexicons/
下。这些是 Lexicon 架构定义语言中的 JSON 文件,类似于 JSON Schema 或 OpenAPI。
互操作性测试数据: ./interop-test-files/
interop-test-files/ 中的语言中立测试文件可能对其他协议实现有用,以确保它们正确遵循规范
Bluesky Social 客户端应用程序(适用于网络和移动设备)的源代码可以在 bluesky-social/social-app 中找到。
Go编程语言源代码位于bluesky-social/indigo,包括BGS实现。
我们建议使用nvm
来管理 Node.js 安装。该项目需要Node.js版本pnpm
用于管理多个包的工作区。您可以使用npm install --global pnpm
安装它。
有一个 Makefile 可以帮助完成基本的开发任务:
# 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
身份验证传输协议(“ATP”或“atproto”)是一种去中心化社交媒体协议,由 Bluesky PBC 开发。了解更多信息:
Bluesky Social 应用程序包含一组构建在整个 AT 协议框架中的模式和 API。这些“词典”的命名空间是app.bsky.*
。
虽然我们确实接受贡献,但我们会优先考虑高质量的问题和拉取请求。遵守以下准则将确保更及时的审查。
规则:
指南:
请记住,我们为广泛的用户社区提供服务。在我们的日常生活中,我们不断地问“哪一个是我们的首要任务”。如果您提交的 PR 写得很好,可以简洁地解决问题,那么这就是一个了不起的贡献。否则,尽管我们很乐意接受您的想法和贡献,但我们确实没有足够的带宽。
Bluesky 是一个基于 AT 协议构建的开放社交网络,AT 协议是一种灵活的技术,永远不会将开发人员排除在他们帮助构建的生态系统之外。借助 atproto,第三方可以通过自定义源、联合服务、客户端等与第一方一样无缝。
如果您发现任何安全问题,请发送电子邮件至 [email protected]。该电子邮件会自动抄送给整个团队,我们会立即回复。请参阅 SECURITY.md 了解更多信息。
该项目获得 MIT 和 Apache 2.0 条款的双重许可:
下游项目和最终用户可以自行决定选择单独许可或一起选择许可。这种双重许可的动机是 Apache 2.0 提供的额外软件专利保证。