Contrail #
Pre-alpha. Expect breaking changes.
Contrail turns AT Protocol records into a queryable AppView. The published package targets public records; an optional workspace-private alpha extension adds permissioned Space projections.
It provides:
- historical backfill from relays and PDSes;
- current updates from Jetstream;
- D1, SQLite, and PostgreSQL storage;
getRecordandlistRecordsHTTP endpoints;- filters, sorting, search, and pagination;
- custom queries;
- relationship counts and hydration; and
- profile and label hydration.
Cloudflare Workers with D1 is the primary deployment target. Node.js with SQLite or PostgreSQL is also supported.
Quick start from a Lexicon prefix #
pnpx @atmo-dev/contrail init my-appview \
--prefix community.lexicon.calendar. \
--namespace com.example.calendar
cd my-appview
pnpx @atmo-dev/contrail dev
--prefix selects the source record Lexicons to import; --namespace sets the
separate XRPC namespace for the generated AppView methods. See the
prefix setup guide
for choosing a prefix, generated files, and import options.
Documentation #
- Get started locally
- Add the typed client
- Configure and query
- Deploy to Cloudflare Workers
- Experimental AT Protocol Spaces
Repository layout #
There is one published package and one optional unpublished alpha extension:
packages/contrail/ @atmo-dev/contrail
packages/contrail-spaces-alpha/ @atmo-dev/contrail-spaces-alpha (private)
The Spaces extension is an aggregator/AppView, not an authority or record host. The previous custom authority, record-host, community, and realtime products remain removed.
See development.md for repository commands.