1#![doc = include_str!("../README.md")]
2
3#[cfg(test)]
4extern crate self as millipede_core;
5
6#[cfg(test)]
7#[allow(dead_code)]
8#[path = "../../millipede-storage-memory/src/dataset.rs"]
9mod dataset;
10#[cfg(test)]
11#[allow(dead_code)]
12#[path = "../../millipede-storage-memory/src/kvs.rs"]
13mod kvs;
14#[cfg(test)]
15#[allow(dead_code)]
16#[path = "../../millipede-storage-memory/src/client.rs"]
17mod memory_client;
18#[cfg(test)]
19#[allow(dead_code)]
20#[path = "../../millipede-storage-memory/src/policy.rs"]
21mod policy;
22#[cfg(test)]
23#[allow(dead_code, unreachable_patterns)]
24#[path = "../../millipede-storage-memory/src/queue.rs"]
25mod queue;
26#[cfg(test)]
27use dataset::MemoryDataset;
28#[cfg(test)]
29use kvs::MemoryKeyValueStore;
30#[cfg(test)]
31use queue::MemoryRequestQueue;
32
33pub mod antibot;
35pub mod autoscale;
37pub mod config;
39pub mod cookies;
41pub mod crawler;
43pub mod enqueue;
45pub mod errors;
47pub mod events;
49pub mod handler;
51pub mod http_client;
53pub mod link_extraction;
55pub mod proxy;
57pub mod request;
59pub mod retry_strategy;
61pub mod router;
63pub mod session;
65pub mod sitemap;
67pub mod snapshot;
69pub mod statistics;
71pub mod storage;
73
74mod util;
75
76pub mod prelude {
78 pub use crate::antibot::{AntiBotDetector, AntiBotSignals, DefaultAntiBotDetector};
79 pub use crate::autoscale::{
80 AimdController, AutoscaleMode, AutoscaledPool, AutoscaledPoolOptions, ClientLoadSignal,
81 ClientLoadSignalHandle, CpuLoadSignal, CpuLoadSignalOptions, LoadSignal, LoadSnapshot,
82 MemoryLoadSignal, MemoryLoadSignalOptions, ScaleDecision, Snapshotter, SnapshotterOptions,
83 SystemStatus, SystemStatusOptions, TokioRuntimeLoadSignal, TokioRuntimeLoadSignalOptions,
84 };
85 pub use crate::config::{ConfigError, Configuration, ConfigurationBuilder, LogLevel};
86 pub use crate::cookies::{Cookie, CookieJar, CookieJarError, SameSite};
87 pub use crate::crawler::{
88 AttemptObservation, AutoscalerSnapshot, BasicContext, BasicCrawler, BasicKind, Crawler,
89 CrawlerBuildError, CrawlerBuilder, CrawlerEnv, CrawlerHandle, CrawlerKind,
90 IntoStartRequest, IntoStartRequests, RequestEnv, RequestOutcome, RequestPrep,
91 };
92 pub use crate::enqueue::{
93 EnqueueLinker, EnqueueLinksOptions, EnqueueResult, SkipReason, SkippedUrl,
94 };
95 pub use crate::errors::{AntiBotTech, CrawlError};
96 pub use crate::events::{
97 CrawlerEvent, EventBus, EventStream, HandledRequest, RequestFinalState, ResultStream,
98 };
99 pub use crate::handler::{
100 FailedRequestContext, FailedRequestHandler, Middleware, RequestHandler,
101 };
102 pub use crate::http_client::{
103 HttpClient, HttpClientError, HttpRequest, HttpResponse, HttpStatusError, StreamingResponse,
104 };
105 pub use crate::link_extraction::{
106 CrawlPolicy, EnqueueStrategy, ExtractedLink, GlobPattern, LinkExtractor, LinkPatternError,
107 SkippedHandler, TransformResult, UrlMatch, UrlPattern,
108 };
109 pub use crate::proxy::{
110 ProxyBuckets, ProxyConfiguration, ProxyInfo, ProxyKind, ProxyResolveContext, ProxyResolver,
111 ProxyRouteContext, ProxyStrategy, RotationStrategy,
112 };
113 pub use crate::request::{
114 HeaderMap, IntoUrl, Method, Request, RequestBody, RequestBuildError, RequestBuilder,
115 RequestId, RequestState, UserData,
116 };
117 pub use crate::retry_strategy::{
118 AttemptOutcome, AttemptOverrides, RetryDirective, RetryStrategy, SessionRetryAction,
119 };
120 pub use crate::router::{HasRequest, MethodFilter, Router};
121 pub use crate::session::{
122 SESSION_POOL_PERSIST_KEY, Session, SessionConfig, SessionId, SessionPool,
123 SessionPoolOptions, SessionToken,
124 };
125 pub use crate::sitemap::{
126 RequestQueueWithSitemap, SITEMAP_STATE_KEY, SitemapEntry, SitemapRequestList,
127 SitemapRequestListBuilder,
128 };
129 pub use crate::snapshot::{ErrorSnapshot, ErrorSnapshotter};
130 pub use crate::statistics::{
131 FinalStatistics, STATISTICS_PERSIST_KEY, StatisticsHandle, StatisticsSnapshot,
132 };
133 pub use crate::storage::{
134 AddOptions, AddRequestsBatchedResult, AutoSaved, BatchAddHandle, Dataset, DatasetExt,
135 DatasetInfo, KeyInfo, KeyList, KeyValueStore, KeyValueStoreExt, KvEntry, Lease, LeaseId,
136 ListKeysOptions, ListOptions, Page, ProcessedRequest, QueueOpInfo,
137 RateLimitReportingClient, ReclaimOptions, RequestQueue, RequestSource, StorageClient,
138 StorageError, StorageHandle, StorageResult,
139 };
140}