[package]
edition = "2024"
rust-version = "1.85"
name = "millipede"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An idiomatic Rust web-crawling library inspired by Crawlee. Umbrella crate re-exporting the Millipede workspace."
readme = "README.md"
keywords = [
"crawler",
"scraper",
"spider",
"crawlee",
"web-crawler",
]
categories = [
"web-programming",
"asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/satvik007/millipede"
[package.metadata.docs.rs]
all-features = true
[features]
browser = ["dep:millipede-browser"]
browser-chromiumoxide = [
"dep:millipede-browser-chromiumoxide",
"browser",
]
default = [
"http",
"html",
"storage-memory",
]
fingerprint = ["dep:millipede-fingerprint"]
html = ["dep:millipede-html"]
http = ["dep:millipede-http"]
storage-fs = ["dep:millipede-storage-fs"]
storage-memory = ["dep:millipede-storage-memory"]
[lib]
name = "millipede"
path = "src/lib.rs"
[[example]]
name = "autoscale_demo"
path = "examples/autoscale_demo.rs"
required-features = [
"http",
"storage-memory",
]
[[example]]
name = "basic"
path = "examples/basic.rs"
required-features = [
"http",
"html",
"storage-memory",
]
[[example]]
name = "basic_engine"
path = "examples/basic_engine.rs"
required-features = ["storage-memory"]
[[example]]
name = "browser_crawl"
path = "examples/browser_crawl.rs"
required-features = [
"browser-chromiumoxide",
"storage-memory",
]
[[example]]
name = "error_handling"
path = "examples/error_handling.rs"
required-features = [
"http",
"storage-memory",
]
[[example]]
name = "fingerprint_crawl"
path = "examples/fingerprint_crawl.rs"
required-features = [
"http",
"fingerprint",
"storage-memory",
]
[[example]]
name = "hackernews"
path = "examples/hackernews.rs"
required-features = [
"http",
"html",
"storage-memory",
]
[[example]]
name = "http_crawl"
path = "examples/http_crawl.rs"
required-features = [
"http",
"storage-memory",
]
[[example]]
name = "phase0_hello"
path = "examples/phase0_hello.rs"
[[example]]
name = "phase1_queue_demo"
path = "examples/phase1_queue_demo.rs"
required-features = ["storage-memory"]
[[example]]
name = "proxy_switcher"
path = "examples/proxy_switcher.rs"
required-features = [
"http",
"storage-memory",
]
[[example]]
name = "rate_limit"
path = "examples/rate_limit.rs"
required-features = [
"http",
"storage-memory",
]
[[example]]
name = "scrape_books"
path = "examples/scrape_books.rs"
required-features = [
"http",
"html",
"storage-fs",
]
[[example]]
name = "smart_crawl"
path = "examples/smart_crawl.rs"
required-features = [
"browser-chromiumoxide",
"html",
"storage-memory",
]
[[test]]
name = "hackernews_mock"
path = "tests/hackernews_mock.rs"
[[test]]
name = "scrape_books_live"
path = "tests/scrape_books_live.rs"
[[test]]
name = "scrape_books_mock"
path = "tests/scrape_books_mock.rs"
[[test]]
name = "smoke"
path = "tests/smoke.rs"
[dependencies.millipede-browser]
version = "0.1.0"
optional = true
[dependencies.millipede-browser-chromiumoxide]
version = "0.1.0"
optional = true
[dependencies.millipede-core]
version = "0.1.0"
[dependencies.millipede-fingerprint]
version = "0.1.0"
optional = true
[dependencies.millipede-html]
version = "0.1.0"
optional = true
[dependencies.millipede-http]
version = "0.1.0"
optional = true
[dependencies.millipede-storage-fs]
version = "0.1.0"
optional = true
[dependencies.millipede-storage-memory]
version = "0.1.0"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.async-trait]
version = "0.1"
[dev-dependencies.flate2]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[dev-dependencies.url]
version = "2"
features = ["serde"]
[dev-dependencies.wiremock]
version = "=0.6.4"
[lints.clippy]
await_holding_lock = "deny"
[lints.rust]
missing_docs = "warn"
unsafe_code = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tokio_unstable)"]