[package]
edition = "2024"
rust-version = "1.85"
name = "mocra-core"
version = "0.4.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The mocra crawler framework runtime: errors, cache, utilities, domain models, downloader, data-plane queue, coordination, scheduler and engine."
homepage = "https://github.com/ouiex/mocra"
documentation = "https://docs.rs/mocra-core"
readme = "README.md"
keywords = [
"crawler",
"scraping",
"framework",
"async",
]
categories = [
"network-programming",
"web-programming",
"asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ouiex/mocra"
resolver = "2"
[features]
cluster-embedded = ["dep:mocra-cluster"]
dashboard = [
"dep:tower-http",
"dep:axum",
]
excel = [
"dep:calamine",
"polars",
]
polars = ["dep:polars"]
queue-kafka = ["dep:rdkafka"]
queue-nats = ["dep:async-nats"]
store = [
"dep:sea-orm",
"dep:mocra-store",
]
[lib]
name = "mocra_core"
path = "src/lib.rs"
[dependencies.async-nats]
version = "0.38"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
features = ["json"]
optional = true
[dependencies.bloomfilter]
version = "3"
[dependencies.calamine]
version = "0.33.0"
features = [
"chrono",
"dates",
]
optional = true
[dependencies.chrono]
version = "0.4.43"
features = ["serde"]
[dependencies.crc32fast]
version = "1.5.0"
[dependencies.cron]
version = "0.15"
[dependencies.dashmap]
version = "6"
[dependencies.dyn-clone]
version = "1"
[dependencies.flate2]
version = "1.1.9"
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.indexmap]
version = "2"
features = ["serde"]
[dependencies.log]
version = "0.4"
[dependencies.md5]
version = "0.8"
[dependencies.metrics]
version = "0.24"
[dependencies.metrics-exporter-prometheus]
version = "0.18"
[dependencies.mocra-cluster]
version = "0.4.1"
optional = true
[dependencies.mocra-dag]
version = "0.4.1"
[dependencies.mocra-proxy]
version = "0.4.1"
[dependencies.mocra-store]
version = "0.4.1"
optional = true
[dependencies.once_cell]
version = "1"
[dependencies.polars]
version = "0.52.0"
features = [
"json",
"lazy",
"serde",
"csv",
"timezones",
"strings",
"ipc",
"dtype-decimal",
]
optional = true
[dependencies.rand]
version = "0.9.2"
[dependencies.rdkafka]
version = "0.39"
features = ["cmake-build"]
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.13"
features = [
"http2",
"charset",
"native-tls",
"brotli",
"form",
"cookies",
"json",
"socks",
"gzip",
"deflate",
"zstd",
"hickory-dns",
"stream",
]
default-features = false
[dependencies.reqwest_cookie_store]
version = "0.10"
features = ["serde"]
[dependencies.rmp-serde]
version = "1.3"
[dependencies.sea-orm]
version = "1"
features = [
"postgres-array",
"runtime-tokio-native-tls",
"sqlx-postgres",
"sqlx-sqlite",
]
optional = true
[dependencies.semver]
version = "1"
features = ["serde"]
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.serde_path_to_error]
version = "0.1"
[dependencies.sysinfo]
version = "0.38"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-tungstenite]
version = "0.28"
features = ["native-tls"]
[dependencies.toml]
version = "0.9"
[dependencies.tower-http]
version = "0.6"
features = ["cors"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-log]
version = "0.2"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"time",
"json",
]
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v7",
"zerocopy",
"v4",
]
[dependencies.zstd]
version = "0.13"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]