[package]
edition = "2024"
rust-version = "1.85"
name = "mocra"
version = "0.2.1"
build = false
exclude = [
"target/**",
"data/**",
"logs/**",
"tests/logs/**",
"docker-compose.kafka.yml",
"scripts/**",
".github/**",
".idea/**",
"*.log",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A distributed, event-driven crawling and data collection framework"
homepage = "https://github.com/ouiex/mocra"
documentation = "https://docs.rs/mocra"
readme = "README.md"
keywords = [
"crawler",
"distributed",
"queue",
"scraping",
"framework",
]
categories = [
"network-programming",
"asynchronous",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ouiex/mocra"
[features]
default = ["mimalloc"]
js-v8 = ["dep:v8"]
mimalloc = ["dep:mimalloc"]
polars = []
[lib]
name = "mocra"
path = "src/lib.rs"
[[bin]]
name = "metrics_node"
path = "src/bin/metrics_node.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
features = ["json"]
[dependencies.base64]
version = "0.22"
[dependencies.bloomfilter]
version = "3"
[dependencies.calamine]
version = "0.33.0"
features = [
"chrono",
"dates",
]
[dependencies.chrono]
version = "0.4.43"
features = ["serde"]
[dependencies.chrono-tz]
version = "0.10"
[dependencies.crc32fast]
version = "1.5.0"
[dependencies.cron]
version = "0.15"
[dependencies.dashmap]
version = "6"
[dependencies.deadpool-redis]
version = "0.22"
features = [
"json",
"script",
"serde",
"streams",
]
[dependencies.dyn-clone]
version = "1"
[dependencies.env_logger]
version = "0.11"
[dependencies.flate2]
version = "1.1.9"
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.log]
version = "0.4"
[dependencies.md5]
version = "0.8"
[dependencies.metrics]
version = "0.24"
[dependencies.metrics-exporter-prometheus]
version = "0.18"
[dependencies.mimalloc]
version = "0.1"
optional = true
default-features = false
[dependencies.once_cell]
version = "1"
[dependencies.polars]
version = "0.52.0"
features = [
"json",
"lazy",
"serde",
"csv",
"timezones",
"strings",
"ipc",
"dtype-decimal",
]
[dependencies.polars-lazy]
version = "0.52.0"
features = ["pivot"]
[dependencies.polars-ops]
version = "0.52.0"
features = ["pivot"]
[dependencies.rand]
version = "0.9.2"
[dependencies.rdkafka]
version = "0.39"
features = ["cmake-build"]
[dependencies.redis]
version = "0.32"
features = [
"tokio-comp",
"safe_iterators",
"tokio-native-tls-comp",
]
[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.ring]
version = "0.17"
[dependencies.rmp-serde]
version = "1.3"
[dependencies.sea-orm]
version = "1"
features = [
"postgres-array",
"runtime-tokio-native-tls",
"sqlx-postgres",
"sqlx-sqlite",
]
[dependencies.semver]
version = "1"
features = ["serde"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_path_to_error]
version = "0.1"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha1]
version = "0.10"
[dependencies.siphasher]
version = "1"
[dependencies.sysinfo]
version = "0.38"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.time]
version = "0.3"
features = [
"local-offset",
"formatting",
"parsing",
]
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-tungstenite]
version = "0.28"
features = ["native-tls"]
[dependencies.toml]
version = "0.9"
[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.urlencoding]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"serde",
"v7",
"zerocopy",
"v4",
]
[dependencies.v8]
version = "145"
optional = true
[dependencies.zstd]
version = "0.13"
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true