Skip to content

Latest commit

 

History

History
93 lines (73 loc) · 6.19 KB

File metadata and controls

93 lines (73 loc) · 6.19 KB

Packages

Every package in this directory is published to npm. Packages under ./internal/ are published under the @atproto-labs/* scope; all others use @atproto/*. Thin runtime wrappers for the services live in ../services/.

Services

  • pds: The Personal Data Server (PDS) — account management, repo storage, blob storage, and OAuth provider. atproto's main server-side implementation.
  • bsky: The app.bsky.* AppView — read-side service for timelines, profiles, feed generators, and view hydration.
  • bsync: Cross-AppView synchronization service (mutes, notifications) over Connect-RPC.
  • ozone: Moderation service implementing the tools.ozone.* API.

Lexicon SDK

The modern, type-safe Lexicon toolchain. Most consumers only need @atproto/lex, which re-exports the core pieces.

  • lex: The umbrella SDK — lex install / lex build CLI, typed XRPC client, and re-exports of the packages below.
  • lex-schema: The runtime schema system that generated code is built on.
  • lex-builder: Generates TypeScript schemas from Lexicon documents.
  • lex-document: Validation of Lexicon documents themselves.
  • lex-installer: Resolves and installs Lexicon documents into a project.
  • lex-resolver: Resolves Lexicon documents from the network.
  • lex-data: Core data-model types and utilities.
  • lex-json: JSON encoding/decoding of Lexicon data.
  • lex-cbor: CBOR (DRISL) encoding/decoding of Lexicon data.
  • lex-client: HTTP (XRPC) client for Lexicon-defined APIs.
  • lex-server: Request router for Lexicon-defined APIs.
  • lex-password-session: Password-based client authentication, for scripts and bots.
  • xrpc-server: Express-based XRPC server. server.add() registers routes from generated lexicon schemas; used by all four services in this repo.

OAuth

Protocol libraries

  • syntax: Identifier and string-format validation: DID, handle, NSID, AT URI, TID, record key, datetime.
  • did: DID parsing, resolution, and verification.
  • identity: Decentralized identity resolution combining DIDs and handles.
  • crypto: Cryptographic keys and signing.
  • repo: The atproto repository implementation (a Merkle Search Tree) and CAR handling.
  • sync: Firehose consumption and repo synchronization.
  • tap: Client for the atproto tap (event stream) interface.
  • ws-client: Long-lived WebSocket client connections.
  • lexicon-resolver: Network resolution of Lexicon documents.

Earlier client and schema stack

Being replaced by the Lexicon SDK above. Still used in parts of this repo; prefer @atproto/lex for new code.

  • api: Client library for atproto and Bluesky.
  • lexicon: The original Lexicon schema language and validation library.
  • xrpc: XRPC client implementation.
  • lex-cli: Codegen tool for the @atproto/api / @atproto/lexicon stack.

Shared internals

Utility packages published under the @atproto-labs/* scope, all located in ./internal/.

A few further shared libraries live at the top level under the @atproto/* scope:

  • common: Code shared between atproto packages (Node-friendly).
  • common-web: The web-platform-friendly subset of common.
  • aws: AWS helpers (S3 blob storage, etc.) for atproto services.

Development tooling

  • dev-env: Boots a full PDS + AppView + bsync + PLC + Ozone constellation in-process, for tests and the make run-dev-env REPL.
  • dev-infra: Docker Compose definitions for the backing services (Postgres, Redis, etc.) used by tests.