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

Configure Feed

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

[config] set ephemeral ttl to 3 days on relay mode by default

dawn f037e1d1 c3f14acb

+6 -3
+1 -1
README.md
··· 122 122 | `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. | 123 123 | `PLC_URL` | `https://plc.wtf`, `https://plc.directory` if full network | base URL(s) of the PLC directory (comma-separated for multiple). | 124 124 | `EPHEMERAL` | `false` | if enabled, no records are stored. events are deleted after a certain duration (`EPHEMERAL_TTL`). | 125 - | `EPHEMERAL_TTL` | `60min` | decides after how long events should be deleted. | 125 + | `EPHEMERAL_TTL` | `60min`, `3d` in relay mode | decides after how long events should be deleted. | 126 126 | `FULL_NETWORK` | `false` | if `true`, discovers and indexes all repositories in the network. | 127 127 | `FILTER_SIGNALS` | | comma-separated list of NSID patterns to use for the filter (e.g. `app.bsky.feed.post,app.bsky.graph.*`). | 128 128 | `FILTER_COLLECTIONS` | | comma-separated list of NSID patterns to use for the collections filter. |
+5 -2
src/config.rs
··· 426 426 database_path: PathBuf::from("./hydrant.db"), 427 427 full_network: false, 428 428 ephemeral: false, 429 - ephemeral_ttl: Duration::from_secs(3600), 429 + #[cfg(feature = "indexer")] 430 + ephemeral_ttl: Duration::from_secs(3600), // 1 hour 431 + #[cfg(feature = "relay")] 432 + ephemeral_ttl: Duration::from_secs(3600 * 24 * 3), // 3 days 430 433 relays: vec![FirehoseSource { 431 434 url: Url::parse("wss://relay.fire.hose.cam/").unwrap(), 432 435 is_pds: false, ··· 460 463 m 461 464 }, 462 465 cache_size: 256, 463 - data_compression: Compression::Lz4, 466 + data_compression: Compression::Zstd, 464 467 journal_compression: Compression::Lz4, 465 468 db_worker_threads: 4, 466 469 db_max_journaling_size_mb: 400,