millipede 0.1.0

An idiomatic Rust web-crawling library inspired by Crawlee. Umbrella crate re-exporting the Millipede workspace.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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)"]