streamweave 0.2.1

Composable, async, stream-first computation in pure Rust
Documentation
[dependencies.arrow]
default-features = false
features = ["ipc"]
optional = true
version = "54"

[dependencies.async-compression]
features = ["tokio", "gzip", "deflate"]
optional = true
version = "0.4"

[dependencies.async-stream]
version = "0.3.3"

[dependencies.async-trait]
version = "0.1"

[dependencies.axum]
features = ["macros", "query", "form", "json", "multipart"]
optional = true
version = "0.7"

[dependencies.base64]
version = "0.22.1"

[dependencies.chrono]
features = ["serde"]
version = "0.4"

[dependencies.csv]
optional = true
version = "1.3"

[dependencies.futures]
version = "0.3"

[dependencies.http-body-util]
optional = true
version = "0.1"

[dependencies.hyper-tungstenite]
optional = true
version = "0.19"

[dependencies.hyper-util]
features = ["full"]
optional = true
version = "0.1"

[dependencies.jsonschema]
optional = true
version = "0.37"

[dependencies.jsonwebtoken]
default-features = false
features = ["rust_crypto"]
version = "10.2"

[dependencies.mime]
version = "0.3"

[dependencies.ndarray]
optional = true
version = "0.15"

[dependencies.num-traits]
version = "0.2.19"

[dependencies.opentelemetry]
features = ["trace", "metrics"]
optional = true
version = "0.31"

[dependencies.opentelemetry-otlp]
default-features = false
features = ["trace", "metrics", "grpc-tonic"]
optional = true
version = "0.31"

[dependencies.opentelemetry_sdk]
features = ["rt-tokio", "trace", "metrics"]
optional = true
version = "0.31"

[dependencies.ort]
optional = true
version = "2.0.0-rc.10"

[dependencies.parquet]
default-features = false
features = ["arrow", "snap", "lz4", "zstd"]
optional = true
version = "54"

[dependencies.pin-project]
version = "1.0"

[dependencies.rand]
optional = true
version = "0.9"

[dependencies.rdkafka]
features = ["cmake-build"]
optional = true
version = "0.36"

[dependencies.redis]
features = ["tokio-comp", "streams", "connection-manager"]
optional = true
version = "0.26"

[dependencies.regex]
version = "1.10"

[dependencies.reqwest]
default-features = false
features = ["json", "gzip", "brotli"]
optional = true
version = "0.12"

[dependencies.rmp-serde]
optional = true
version = "1.3"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_urlencoded]
version = "0.7"

[dependencies.sha2]
version = "0.10"

[dependencies.sqlparser]
optional = true
version = "0.40"

[dependencies.sqlx]
default-features = false
features = ["runtime-tokio-native-tls", "postgres", "mysql", "sqlite", "chrono", "uuid"]
optional = true
version = "0.8"

[dependencies.thiserror]
version = "2.0.17"

[dependencies.tokio]
default-features = false
features = ["macros", "rt"]
version = "1.0"

[dependencies.tokio-stream]
default-features = false
version = "0.1"

[dependencies.tokio-tungstenite]
optional = true
version = "0.28"

[dependencies.tokio-util]
optional = true
version = "0.7.14"

[dependencies.tower]
optional = true
version = "0.4"

[dependencies.tower-http]
features = ["cors", "trace", "compression-gzip", "compression-deflate"]
optional = true
version = "0.5"

[dependencies.tracing]
version = "0.1.40"

[dependencies.tracing-opentelemetry]
optional = true
version = "0.32"

[dependencies.tracing-subscriber]
optional = true
version = "0.3.20"

[dependencies.uuid]
features = ["v4", "serde"]
optional = true
version = "1.0"

[dev-dependencies.proptest]
version = "1.4"

[dev-dependencies.tempfile]
version = "3.10.0"

[[example]]
name = "advanced_pipeline"
path = "examples/advanced_pipeline/main.rs"

[[example]]
name = "advanced_transformers"
path = "examples/advanced_transformers/main.rs"

[[example]]
name = "basic_pipeline"
path = "examples/basic_pipeline/main.rs"

[[example]]
name = "database_integration"
path = "examples/database_integration/main.rs"

[[example]]
name = "error_handling"
path = "examples/error_handling/main.rs"

[[example]]
name = "exactly_once"
path = "examples/exactly_once/main.rs"

[[example]]
name = "file_formats"
path = "examples/file_formats/main.rs"

[[example]]
name = "http_poll_integration"
path = "examples/http_poll_integration/main.rs"
required-features = ["http-poll"]

[[example]]
name = "http_server_integration"
path = "examples/http_server_integration/main.rs"
required-features = ["http-server"]

[[example]]
name = "kafka_integration"
path = "examples/kafka_integration/main.rs"

[[example]]
name = "metrics_monitoring"
path = "examples/metrics_monitoring/main.rs"

[[example]]
name = "redis_streams_integration"
path = "examples/redis_streams_integration/main.rs"

[[example]]
name = "sql_dialect"
path = "examples/sql_dialect/main.rs"
required-features = ["sql"]

[[example]]
name = "sql_parser"
path = "examples/sql_parser/main.rs"
required-features = ["sql"]

[[example]]
name = "sql_query"
path = "examples/sql_query/main.rs"
required-features = ["sql"]

[[example]]
name = "stateful_processing"
path = "examples/stateful_processing/main.rs"

[[example]]
name = "visualization"
path = "examples/visualization/main.rs"

[[example]]
name = "visualization_web"
path = "examples/visualization_web/main.rs"

[[example]]
name = "windowing"
path = "examples/windowing/main.rs"

[features]
compression = ["dep:async-compression"]
database = ["dep:sqlx"]
default = ["native"]
file-formats = ["dep:arrow", "dep:parquet", "dep:csv", "dep:rmp-serde"]
http-poll = ["dep:reqwest"]
http-server = ["dep:axum", "dep:tower", "dep:tower-http", "dep:http-body-util"]
kafka = ["dep:rdkafka"]
ml = ["dep:ort", "dep:ndarray"]
native = ["tokio/full", "tokio-stream/io-util", "dep:async-compression", "dep:hyper-tungstenite", "dep:hyper-util", "dep:jsonschema", "dep:tokio-tungstenite", "dep:tokio-util", "dep:tracing-subscriber", "file-formats", "random", "http-server"]
opentelemetry = ["dep:opentelemetry", "dep:opentelemetry_sdk", "dep:opentelemetry-otlp", "dep:tracing-opentelemetry"]
prometheus = []
random = ["dep:rand", "dep:uuid"]
redis-streams = ["dep:redis"]
sql = ["dep:sqlparser"]
wasm = ["tokio/sync", "tokio/macros", "tokio/rt", "tokio/time"]
wasm-minimal = ["tokio/sync", "tokio/rt", "tokio/time", "tokio/macros"]

[lib]
name = "streamweave"
path = "src/lib.rs"

[package]
authors = ["Tom Wieland <tom.wieland@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["asynchronous", "data-structures", "web-programming::http-server"]
description = "Composable, async, stream-first computation in pure Rust"
documentation = "https://docs.rs/streamweave"
edition = "2024"
homepage = "https://github.com/Industrial/streamweave"
keywords = ["stream", "async", "pipeline", "data-processing", "rust"]
license = "CC-BY-SA-4.0"
name = "streamweave"
readme = "README.md"
repository = "https://github.com/Industrial/streamweave"
version = "0.2.1"

[package.metadata.rust-analyzer.check]
allTargets = true

[profile.release]
codegen-units = 1
lto = true
panic = "abort"
strip = true

[profile.wasm-release]
codegen-units = 1
inherits = "release"
lto = true
opt-level = "z"
panic = "abort"
strip = true

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
features = ["js"]
version = "0.2"

[[test]]
name = "wasm_size_test"
path = "tests/wasm_size_test.rs"