···11# atp
2233-AT Protocol boilerplate for Go, extracted from [arabica.social](https://tangled.org/arabica.social/arabica). Covers OAuth flows, PDS client operations, real-time event consumption, session storage, HTTP middleware, and testing infrastructure.
33+AT Protocol boilerplate for Go, extracted from [arabica.social](https://tangled.org/arabica.social/arabica). Covers OAuth flows, PDS client operations, real-time event consumption, session storage, and HTTP middleware.
4455-> Note: The `testpds` package pulls in [cocoon](https://github.com/haileyok/cocoon) to spin up ephemeral PDS instances, which makes the dependency tree heavy (indigo, aws-sdk, etc.).
55+For integration testing against an ephemeral in-process PDS, see [chrysalis](https://tangled.org/pdewey.com/chrysalis).
6677## Installation
88···35353636- bolt: BoltDB-backed.
3737- sqlite: SQLite-backed with automatic schema migration and expired request cleanup.
3838-3939-### `testpds`
4040-4141-Ephemeral, in-process PDS for integration testing. Uses in-memory SQLite and an optional `FakePLC` (from `plc`) so tests need no external services. Includes helpers for creating test accounts and subscribing to the firehose.
4242-4343-### `plc`
4444-4545-Mock PLC directory that stores operations in memory instead of posting to a real directory. Used by `testpds` for isolated test environments.
46384739### `tracing`
4840