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
59
fork

Configure Feed

Select the types of activity you want to include in your feed.

[config] enable ephemeral mode by default in relay mode

dawn 0f652fa5 3f9148e6

+4 -1
+1 -1
README.md
··· 217 217 | `SEED_HOSTS` | `https://bsky.network` (relay) | comma-separated list of base URLs to call `com.atproto.sync.listHosts` on at startup. hydrant adds every non-banned host as a PDS firehose source. see [firehose seeding](#firehose-seeding). | 218 218 | `CRAWLER_URLS` | relay hosts in full-network mode, `https://lightrail.microcosm.blue` in filter mode | comma-separated list of `[mode::]url` crawler sources. mode is `relay` or `by_collection`; bare URLs use the default mode. set to empty string to disable crawling. | 219 219 | `PLC_URL` | `https://plc.wtf`, `https://plc.directory` if full network | base URL(s) of the PLC directory (comma-separated for multiple). | 220 - | `EPHEMERAL` | `false` | if enabled, no records are stored. events are deleted after a certain duration (`EPHEMERAL_TTL`). | 220 + | `EPHEMERAL` | `false` (indexer), `true` (relay) | if enabled, no records are stored (in indexer mode). events are deleted after a certain duration (`EPHEMERAL_TTL`). | 221 221 | `EPHEMERAL_TTL` | `60min`, `3d` in relay mode | decides after how long events should be deleted. | 222 222 | `ONLY_INDEX_LINKS` | `false` | indexer only. if enabled, record blocks are not stored, only the index (records, counts, events) is kept. `getRecord`, `listRecords`, and `getRepo` will return errors. the event stream still works but create/update events will not include record values. | 223 223 | `FULL_NETWORK` | `false` (indexer), `true` (relay) | if `true`, discovers and indexes all repositories in the network. |
+3
src/config.rs
··· 450 450 const BASE_MEMTABLE_MB: u64 = 32; 451 451 Self { 452 452 database_path: PathBuf::from("./hydrant.db"), 453 + #[cfg(feature = "indexer")] 453 454 ephemeral: false, 455 + #[cfg(feature = "relay")] 456 + ephemeral: true, 454 457 #[cfg(feature = "indexer")] 455 458 ephemeral_ttl: Duration::from_secs(3600), // 1 hour 456 459 #[cfg(feature = "relay")]