//! Crawler subsystem. //! //! Runs as its own binary (`src/bin/crawler.rs`) and shares `domain`, //! `repo`, and `storage` with the API binary. Layering mirrors the //! `Storage` trait pattern: callers depend on the `source::Source` //! trait, not on a concrete site; new sites plug in as additional //! impls without touching the job runner. //! //! Submodules: //! - [`browser`]: launches and pools Chromium via `chromiumoxide`. //! First run downloads a known-good build via the `fetcher` feature. //! - [`source`]: the `Source` trait. Per-site impls live alongside it. //! - [`jobs`]: job kinds, queue wrapper, handler dispatch. //! - [`diff`]: change detection — new / updated / dropped semantics. pub mod browser; pub mod content; pub mod diff; pub mod jobs; pub mod rate_limit; pub mod session; pub mod source;