1pub use log::LevelFilter;
15
16pub use spider_core::{
18 CrawlShapePreset,
19 Crawler,
21 CrawlerBuilder,
22 CrawlerConfig,
23 DiscoveryConfig,
24 DiscoveryMode,
25 DiscoveryRule,
26 Downloader,
28 ParseContext,
29 ReqwestClientDownloader,
30 Spider,
31 StartRequestIter,
32 StartRequests,
33 async_trait,
35 scheduler::Scheduler,
37 state::CrawlerState,
38 state::{
40 ConcurrentMap, ConcurrentVec, Counter, Counter64, Flag, StateAccessMetrics, VisitedUrls,
41 },
42 stats::StatCollector,
43 tokio,
44};
45
46pub use spider_util::item::{FieldValueType, ItemFieldSchema, ItemSchema, TypedItemSchema};
47pub use spider_util::item::{ParseOutput, ScrapedItem};
49
50pub use spider_pipeline::pipeline::Pipeline;
52
53pub use spider_macro::scraped_item;
55pub use spider_middleware::middleware::{Middleware, MiddlewareAction};
57pub use spider_util::{
59 error::{PipelineError, SpiderError},
60 request::{Method, Request},
61 response::{Link, LinkExtractOptions, LinkSource, LinkType, PageMetadata, Response},
62 selector::{SelectorList, SelectorNode},
63 util::{create_dir, is_same_site, normalize_origin, validate_output_dir},
64};
65
66pub use spider_middleware::{
68 rate_limit::RateLimitMiddleware, referer::RefererMiddleware, retry::RetryMiddleware,
69};
70
71#[cfg(feature = "middleware-cache")]
73pub use spider_middleware::http_cache::HttpCacheMiddleware;
74
75#[cfg(feature = "middleware-autothrottle")]
77pub use spider_middleware::autothrottle::AutoThrottleMiddleware;
78
79#[cfg(feature = "middleware-proxy")]
81pub use spider_middleware::proxy::ProxyMiddleware;
82
83#[cfg(feature = "middleware-user-agent")]
85pub use spider_middleware::user_agent::UserAgentMiddleware;
86
87#[cfg(feature = "middleware-robots")]
89pub use spider_middleware::robots::RobotsTxtMiddleware;
90
91#[cfg(feature = "middleware-cookies")]
93pub use spider_middleware::cookies::CookieMiddleware;
94
95pub use spider_pipeline::{
97 console::ConsolePipeline,
98 dedup::DeduplicationPipeline,
99 schema::{
100 SchemaExportConfig, SchemaTransformPipeline, SchemaValidationPipeline, SchemaViolation,
101 },
102 transform::{TransformOperation, TransformPipeline},
103 validation::{JsonType, ValidationPipeline, ValidationRule},
104};
105
106#[cfg(feature = "pipeline-csv")]
108pub use spider_pipeline::csv::CsvPipeline;
109
110#[cfg(feature = "pipeline-json")]
112pub use spider_pipeline::json::JsonPipeline;
113
114#[cfg(feature = "pipeline-jsonl")]
116pub use spider_pipeline::jsonl::JsonlPipeline;
117
118#[cfg(feature = "pipeline-sqlite")]
120pub use spider_pipeline::sqlite::SqlitePipeline;
121
122#[cfg(feature = "pipeline-stream-json")]
124pub use spider_pipeline::stream_json::StreamJsonPipeline;
125
126#[cfg(feature = "checkpoint")]
128pub use spider_core::checkpoint::{Checkpoint, SchedulerCheckpoint};