very fast at protocol indexer with flexible filtering, xrpc queries, cursor-backed event stream, and more, built on fjall
rust
fjall
at-protocol
atproto
indexer
1---
2title: hydrant
3---
4
5`hydrant` is an AT Protocol indexer built on the `fjall` database. it's built to be flexible, supporting both full-network indexing and filtered indexing (e.g., by DID), allowing querying with XRPCs (not only `com.atproto.*`!), providing an ordered event stream, etc. oh and it can also act as a relay!
6
7you can see [random.wisp.place](https://tangled.org/did:plc:dfl62fgb7wtjj3fcbb72naae/random.wisp.place) (standalone binary using http API) or the [statusphere example](https://tangled.org/did:plc:dfl62fgb7wtjj3fcbb72naae/hydrant/blob/main/examples/statusphere.rs) (hydrant-as-library) for examples. for rust docs look at https://hydrant.klbr.net/ for now.
8
9**WARNING: *the db format is only partially stable.*** we provide migrations in hydrant itself, so nothing should go wrong! you should still probably keep backups just in case!
10
11## what's here
12
13- [vs tap](concepts/vs-tap.md): comparison against tap, the go sync utility
14- [getting started](getting-started.md): building, running, reverse proxying
15- [configuration](configuration.md): all environment variables
16- [build features](build-features.md): optional cargo features (`relay`, `backlinks`, etc.)
17- [concepts](concepts/README.md): how the stream works, relay comparison, multi-relay support
18- [rest api](api/README.md): management API reference
19- [xrpc](xrpc/README.md): data access via XRPC
20
21## quick start
22
23```bash
24cargo build --release
25export HYDRANT_DATABASE_PATH=./hydrant.db
26./target/release/hydrant
27```