Config

Struct Config 

Source
pub struct Config {
Show 35 fields pub database_path: PathBuf, pub full_network: bool, pub ephemeral: bool, pub ephemeral_ttl: Duration, pub relays: Vec<FirehoseSource>, pub plc_urls: Vec<Url>, pub enable_firehose: bool, pub firehose_workers: usize, pub cursor_save_interval: Duration, pub repo_fetch_timeout: Duration, pub backfill_concurrency_limit: usize, pub enable_crawler: Option<bool>, pub crawler_max_pending_repos: usize, pub crawler_resume_pending_repos: usize, pub crawler_sources: Vec<CrawlerSource>, pub verify_signatures: SignatureVerification, pub identity_cache_size: u64, pub verify_mst: bool, pub rev_clock_skew_secs: i64, pub filter_signals: Option<Vec<String>>, pub filter_collections: Option<Vec<String>>, pub filter_excludes: Option<Vec<String>>, pub enable_backlinks: bool, pub seed_hosts: Vec<Url>, pub trusted_hosts: Vec<String>, pub rate_tiers: HashMap<String, RateTier>, pub cache_size: u64, pub data_compression: Compression, pub journal_compression: Compression, pub db_worker_threads: usize, pub db_max_journaling_size_mb: u64, pub db_blocks_memtable_size_mb: u64, pub db_repos_memtable_size_mb: u64, pub db_events_memtable_size_mb: u64, pub db_records_memtable_size_mb: u64,
}

Fields§

§database_path: PathBuf

path to the database folder. set via HYDRANT_DATABASE_PATH.

§full_network: bool

if true, discovers and indexes all repositories in the network. set via HYDRANT_FULL_NETWORK.

§ephemeral: bool

if true, no records are stored; events are deleted after ephemeral_ttl. set via HYDRANT_EPHEMERAL.

§ephemeral_ttl: Duration

how long events are retained in ephemeral mode before deletion. set via HYDRANT_EPHEMERAL_TTL (humantime duration, e.g. 60min).

§relays: Vec<FirehoseSource>

firehose sources for ingestion. set via HYDRANT_RELAY_HOST (single) or HYDRANT_RELAY_HOSTS (comma-separated; takes precedence). prefix a URL with pds:: to mark it as a direct PDS connection.

§plc_urls: Vec<Url>

base URL(s) of the PLC directory (comma-separated for multiple). defaults to https://plc.wtf, or https://plc.directory in full-network mode. set via HYDRANT_PLC_URL.

§enable_firehose: bool

whether to ingest events from relay firehose subscriptions. set via HYDRANT_ENABLE_FIREHOSE.

§firehose_workers: usize

number of concurrent workers processing firehose events. set via HYDRANT_FIREHOSE_WORKERS.

§cursor_save_interval: Duration

how often the firehose cursor is persisted to disk. set via HYDRANT_CURSOR_SAVE_INTERVAL (humantime duration, e.g. 3sec).

§repo_fetch_timeout: Duration

timeout for fetching a full repository CAR during backfill. set via HYDRANT_REPO_FETCH_TIMEOUT (humantime duration, e.g. 5min).

§backfill_concurrency_limit: usize

maximum number of concurrent backfill tasks. set via HYDRANT_BACKFILL_CONCURRENCY_LIMIT.

§enable_crawler: Option<bool>

whether to run the network crawler. None defers to the default for the current mode. set via HYDRANT_ENABLE_CRAWLER.

§crawler_max_pending_repos: usize

maximum number of repos allowed in the backfill pending queue before the crawler pauses. set via HYDRANT_CRAWLER_MAX_PENDING_REPOS.

§crawler_resume_pending_repos: usize

pending queue size at which the crawler resumes after being paused. set via HYDRANT_CRAWLER_RESUME_PENDING_REPOS.

§crawler_sources: Vec<CrawlerSource>

crawler sources: each entry pairs a URL with a discovery mode.

set via HYDRANT_CRAWLER_URLS as a comma-separated list of [mode::]url entries, e.g. relay::wss://bsky.network,by_collection::https://lightrail.microcosm.blue. a bare URL without a mode:: prefix uses the default mode (relay for full-network, by_collection otherwise). defaults to the relay hosts with the default mode. set to an empty string to disable crawling entirely.

§verify_signatures: SignatureVerification

signature verification level for incoming commits. set via HYDRANT_VERIFY_SIGNATURES (full, backfill-only, or none).

§identity_cache_size: u64

number of resolved identities to keep in the in-memory LRU cache. set via HYDRANT_IDENTITY_CACHE_SIZE.

§verify_mst: bool

enable MST inversion validation on incoming commits (expensive). set via HYDRANT_VERIFY_MST.

§rev_clock_skew_secs: i64

clock drift window for future-rev rejection, in seconds. commits with a rev timestamp more than this many seconds in the future are rejected. set via HYDRANT_REV_CLOCK_SKEW. default: 300 (5 minutes).

§filter_signals: Option<Vec<String>>

NSID patterns that trigger auto-discovery in filter mode (e.g. app.bsky.feed.post). set via HYDRANT_FILTER_SIGNALS as a comma-separated list.

§filter_collections: Option<Vec<String>>

NSID patterns used to filter which record collections are stored. if None, all collections are stored. set via HYDRANT_FILTER_COLLECTIONS.

§filter_excludes: Option<Vec<String>>

DIDs that are always skipped, regardless of mode. set via HYDRANT_FILTER_EXCLUDES as a comma-separated list.

§enable_backlinks: bool

enable backlinks indexing (only meaningful in non-ephemeral mode). set via HYDRANT_ENABLE_BACKLINKS=true.

§seed_hosts: Vec<Url>

base URL(s) of relay or aggregator services to seed firehose PDS sources from at startup.

hydrant calls com.atproto.sync.listHosts on each URL and adds the returned PDSes as firehose sources (with is_pds = true). account counts from the response are applied to newly-seen hosts to initialise rate-limiting immediately.

set via HYDRANT_SEED_HOSTS as a comma-separated list of base URLs.

§trusted_hosts: Vec<String>

list of trusted PDS/relay hosts to pre-assign to the “trusted” rate tier at startup. set via HYDRANT_TRUSTED_HOSTS as a comma-separated list of hostnames. hosts not present in this list use the “default” tier unless assigned via the API.

§rate_tiers: HashMap<String, RateTier>

named rate tier definitions for PDS rate limiting.

built-in tiers (“default” and “trusted”) are always present and may be overridden. set via HYDRANT_RATE_TIERS as a comma-separated list of name:base/mul/hourly/daily entries, e.g. trusted:5000/10.0/18000000/432000000,custom:100/1.0/7200000/172800000.

§cache_size: u64

db internals, tune only if you know what you’re doing.

size of the fjall block cache in MB. set via HYDRANT_CACHE_SIZE.

§data_compression: Compression

db internals, tune only if you know what you’re doing.

compression algorithm for data keyspaces (blocks, records, repos, events). set via HYDRANT_DATA_COMPRESSION (lz4, zstd, or none).

§journal_compression: Compression

db internals, tune only if you know what you’re doing.

compression algorithm for the fjall journal. set via HYDRANT_JOURNAL_COMPRESSION (lz4, zstd, or none).

§db_worker_threads: usize

db internals, tune only if you know what you’re doing.

number of background threads used by the fjall storage engine. set via HYDRANT_DB_WORKER_THREADS.

§db_max_journaling_size_mb: u64

db internals, tune only if you know what you’re doing.

maximum total size of the fjall journal in MB before a flush is forced. set via HYDRANT_DB_MAX_JOURNALING_SIZE_MB.

§db_blocks_memtable_size_mb: u64

db internals, tune only if you know what you’re doing.

in-memory write buffer (memtable) size for the blocks keyspace in MB. set via HYDRANT_DB_BLOCKS_MEMTABLE_SIZE_MB.

§db_repos_memtable_size_mb: u64

db internals, tune only if you know what you’re doing.

in-memory write buffer (memtable) size for the repos keyspace in MB. set via HYDRANT_DB_REPOS_MEMTABLE_SIZE_MB.

§db_events_memtable_size_mb: u64

db internals, tune only if you know what you’re doing.

in-memory write buffer (memtable) size for the events keyspace in MB. set via HYDRANT_DB_EVENTS_MEMTABLE_SIZE_MB.

§db_records_memtable_size_mb: u64

db internals, tune only if you know what you’re doing.

in-memory write buffer (memtable) size for the records keyspace in MB. set via HYDRANT_DB_RECORDS_MEMTABLE_SIZE_MB.

Implementations§

Source§

impl Config

Source

pub fn full_network() -> Self

returns the default config for full network usage.

Source

pub fn from_env() -> Result<Self>

reads and builds the config from environment variables, loading .env first if present.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Display for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToCowStr for T
where T: Display + ?Sized,

§

fn to_cowstr(&self) -> CowStr<'_>

Convert to a CowStr.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

§

fn to_smolstr(&self) -> SmolStr

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToStringFallible for T
where T: Display,

§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more