[package]
edition = "2024"
name = "streamweave"
version = "0.9.0"
authors = ["Tom Wieland <tom.wieland@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Composable, async, stream-first computation in pure Rust"
homepage = "https://github.com/Industrial/streamweave"
documentation = "https://docs.rs/streamweave"
readme = "README.md"
keywords = [
"stream",
"async",
"pipeline",
"data-processing",
"rust",
]
categories = [
"asynchronous",
"data-structures",
]
license = "CC-BY-SA-4.0"
repository = "https://github.com/Industrial/streamweave"
[lib]
name = "streamweave"
path = "src/lib.rs"
[[example]]
name = "_http-server"
path = "examples/_http-server/main.rs"
[[example]]
name = "abs_node"
path = "examples/nodes/math/abs_node.rs"
[[example]]
name = "add_node"
path = "examples/nodes/arithmetic/add_node.rs"
[[example]]
name = "and_node"
path = "examples/nodes/boolean_logic/and_node.rs"
[[example]]
name = "append_node"
path = "examples/nodes/string/append_node.rs"
[[example]]
name = "average_node"
path = "examples/nodes/aggregation/average_node.rs"
[[example]]
name = "break_node"
path = "examples/nodes/advanced/break_node.rs"
[[example]]
name = "buffer_node"
path = "examples/nodes/stream/buffer_node.rs"
[[example]]
name = "capitalize_node"
path = "examples/nodes/string/capitalize_node.rs"
[[example]]
name = "ceil_node"
path = "examples/nodes/math/ceil_node.rs"
[[example]]
name = "concat_node"
path = "examples/nodes/array/concat_node.rs"
[[example]]
name = "condition_node"
path = "examples/nodes/advanced/condition_node.rs"
[[example]]
name = "contains_node"
path = "examples/nodes/array/contains_node.rs"
[[example]]
name = "continue_node"
path = "examples/nodes/advanced/continue_node.rs"
[[example]]
name = "count_node"
path = "examples/nodes/aggregation/count_node.rs"
[[example]]
name = "current_time_node"
path = "examples/nodes/time/current_time_node.rs"
[[example]]
name = "debounce_node"
path = "examples/nodes/stream/debounce_node.rs"
[[example]]
name = "distinct_node"
path = "examples/nodes/stream/distinct_node.rs"
[[example]]
name = "distinct_until_changed_node"
path = "examples/nodes/stream/distinct_until_changed_node.rs"
[[example]]
name = "divide_node"
path = "examples/nodes/arithmetic/divide_node.rs"
[[example]]
name = "drop_node"
path = "examples/nodes/stream/drop_node.rs"
[[example]]
name = "ends_with_node"
path = "examples/nodes/string/ends_with_node.rs"
[[example]]
name = "equal_node"
path = "examples/nodes/comparison/equal_node.rs"
[[example]]
name = "error_branch_node"
path = "examples/nodes/advanced/error_branch_node.rs"
[[example]]
name = "exp_node"
path = "examples/nodes/math/exp_node.rs"
[[example]]
name = "filter_map_node"
path = "examples/nodes/stream/filter_map_node.rs"
[[example]]
name = "filter_node"
path = "examples/nodes/stream/filter_node.rs"
[[example]]
name = "first_node"
path = "examples/nodes/stream/first_node.rs"
[[example]]
name = "flatten_node"
path = "examples/nodes/array/flatten_node.rs"
[[example]]
name = "floor_node"
path = "examples/nodes/math/floor_node.rs"
[[example]]
name = "for_each_node"
path = "examples/nodes/stream/for_each_node.rs"
[[example]]
name = "format_node"
path = "examples/nodes/string/format_node.rs"
[[example]]
name = "format_time_node"
path = "examples/nodes/time/format_time_node.rs"
[[example]]
name = "graph_macro_fan_patterns"
path = "examples/graph_macro_fan_patterns.rs"
[[example]]
name = "graph_macro_io"
path = "examples/graph_macro_io.rs"
[[example]]
name = "graph_macro_simple"
path = "examples/graph_macro_simple.rs"
[[example]]
name = "greater_than_node"
path = "examples/nodes/comparison/greater_than_node.rs"
[[example]]
name = "greater_than_or_equal_node"
path = "examples/nodes/comparison/greater_than_or_equal_node.rs"
[[example]]
name = "index_node"
path = "examples/nodes/array/index_node.rs"
[[example]]
name = "index_of_node"
path = "examples/nodes/array/index_of_node.rs"
[[example]]
name = "is_array_node"
path = "examples/nodes/type_ops/is_array_node.rs"
[[example]]
name = "is_boolean_node"
path = "examples/nodes/type_ops/is_boolean_node.rs"
[[example]]
name = "is_float_node"
path = "examples/nodes/type_ops/is_float_node.rs"
[[example]]
name = "is_int_node"
path = "examples/nodes/type_ops/is_int_node.rs"
[[example]]
name = "is_null_node"
path = "examples/nodes/type_ops/is_null_node.rs"
[[example]]
name = "join_node"
path = "examples/nodes/string/join_node.rs"
[[example]]
name = "last_node"
path = "examples/nodes/stream/last_node.rs"
[[example]]
name = "length_node"
path = "examples/nodes/array/length_node.rs"
[[example]]
name = "less_than_node"
path = "examples/nodes/comparison/less_than_node.rs"
[[example]]
name = "less_than_or_equal_node"
path = "examples/nodes/comparison/less_than_or_equal_node.rs"
[[example]]
name = "log_node"
path = "examples/nodes/math/log_node.rs"
[[example]]
name = "map_node"
path = "examples/nodes/stream/map_node.rs"
[[example]]
name = "match_node"
path = "examples/nodes/string/match_node.rs"
[[example]]
name = "max_aggregate_node"
path = "examples/nodes/aggregation/max_aggregate_node.rs"
[[example]]
name = "max_node"
path = "examples/nodes/math/max_node.rs"
[[example]]
name = "merge_node"
path = "examples/nodes/stream/merge_node.rs"
[[example]]
name = "min_aggregate_node"
path = "examples/nodes/aggregation/min_aggregate_node.rs"
[[example]]
name = "min_node"
path = "examples/nodes/math/min_node.rs"
[[example]]
name = "modulo_node"
path = "examples/nodes/arithmetic/modulo_node.rs"
[[example]]
name = "multiply_node"
path = "examples/nodes/arithmetic/multiply_node.rs"
[[example]]
name = "nand_node"
path = "examples/nodes/boolean_logic/nand_node.rs"
[[example]]
name = "nor_node"
path = "examples/nodes/boolean_logic/nor_node.rs"
[[example]]
name = "not_equal_node"
path = "examples/nodes/comparison/not_equal_node.rs"
[[example]]
name = "not_node"
path = "examples/nodes/boolean_logic/not_node.rs"
[[example]]
name = "object_has_property_node"
path = "examples/nodes/object/object_has_property_node.rs"
[[example]]
name = "object_keys_node"
path = "examples/nodes/object/object_keys_node.rs"
[[example]]
name = "object_merge_node"
path = "examples/nodes/object/object_merge_node.rs"
[[example]]
name = "object_property_node"
path = "examples/nodes/object/object_property_node.rs"
[[example]]
name = "object_set_property_node"
path = "examples/nodes/object/object_set_property_node.rs"
[[example]]
name = "object_size_node"
path = "examples/nodes/object/object_size_node.rs"
[[example]]
name = "or_node"
path = "examples/nodes/boolean_logic/or_node.rs"
[[example]]
name = "parse_time_node"
path = "examples/nodes/time/parse_time_node.rs"
[[example]]
name = "power_node"
path = "examples/nodes/arithmetic/power_node.rs"
[[example]]
name = "range_node"
path = "examples/nodes/range_node.rs"
[[example]]
name = "read_variable_node"
path = "examples/nodes/variable/read_variable_node.rs"
[[example]]
name = "reduce_node"
path = "examples/nodes/reduction/reduce_node.rs"
[[example]]
name = "repeat_node"
path = "examples/nodes/advanced/repeat_node.rs"
[[example]]
name = "retry_node"
path = "examples/nodes/advanced/retry_node.rs"
[[example]]
name = "reverse_node"
path = "examples/nodes/array/reverse_node.rs"
[[example]]
name = "round_node"
path = "examples/nodes/math/round_node.rs"
[[example]]
name = "sample_node"
path = "examples/nodes/stream/sample_node.rs"
[[example]]
name = "scan_node"
path = "examples/nodes/reduction/scan_node.rs"
[[example]]
name = "skip_node"
path = "examples/nodes/stream/skip_node.rs"
[[example]]
name = "slice_node"
path = "examples/nodes/array/slice_node.rs"
[[example]]
name = "sort_node"
path = "examples/nodes/array/sort_node.rs"
[[example]]
name = "split_node"
path = "examples/nodes/array/split_node.rs"
[[example]]
name = "sqrt_node"
path = "examples/nodes/math/sqrt_node.rs"
[[example]]
name = "string_char_at_node"
path = "examples/nodes/string/char_at_node.rs"
[[example]]
name = "string_concat_node"
path = "examples/nodes/string/concat_node.rs"
[[example]]
name = "string_contains_node"
path = "examples/nodes/string/contains_node.rs"
[[example]]
name = "string_index_of_node"
path = "examples/nodes/string/index_of_node.rs"
[[example]]
name = "string_last_index_of_node"
path = "examples/nodes/string/last_index_of_node.rs"
[[example]]
name = "string_length_node"
path = "examples/nodes/string/length_node.rs"
[[example]]
name = "string_lowercase_node"
path = "examples/nodes/string/lowercase_node.rs"
[[example]]
name = "string_prepend_node"
path = "examples/nodes/string/prepend_node.rs"
[[example]]
name = "string_replace_node"
path = "examples/nodes/string/replace_node.rs"
[[example]]
name = "string_slice_node"
path = "examples/nodes/string/slice_node.rs"
[[example]]
name = "string_split_node"
path = "examples/nodes/string/split_node.rs"
[[example]]
name = "string_starts_with_node"
path = "examples/nodes/string/starts_with_node.rs"
[[example]]
name = "string_trim_node"
path = "examples/nodes/string/trim_node.rs"
[[example]]
name = "string_uppercase_node"
path = "examples/nodes/string/uppercase_node.rs"
[[example]]
name = "subtract_node"
path = "examples/nodes/arithmetic/subtract_node.rs"
[[example]]
name = "sum_node"
path = "examples/nodes/aggregation/sum_node.rs"
[[example]]
name = "switch_node"
path = "examples/nodes/advanced/switch_node.rs"
[[example]]
name = "sync_node"
path = "examples/nodes/sync_node.rs"
[[example]]
name = "take_node"
path = "examples/nodes/stream/take_node.rs"
[[example]]
name = "throttle_node"
path = "examples/nodes/stream/throttle_node.rs"
[[example]]
name = "timestamp_node"
path = "examples/nodes/time/timestamp_node.rs"
[[example]]
name = "to_boolean_node"
path = "examples/nodes/type_ops/to_boolean_node.rs"
[[example]]
name = "to_float_node"
path = "examples/nodes/type_ops/to_float_node.rs"
[[example]]
name = "to_int_node"
path = "examples/nodes/type_ops/to_int_node.rs"
[[example]]
name = "to_number_node"
path = "examples/nodes/type_ops/to_number_node.rs"
[[example]]
name = "to_string_node"
path = "examples/nodes/type_ops/to_string_node.rs"
[[example]]
name = "try_catch_node"
path = "examples/nodes/advanced/try_catch_node.rs"
[[example]]
name = "unique_node"
path = "examples/nodes/array/unique_node.rs"
[[example]]
name = "while_loop_node"
path = "examples/nodes/while_loop_node.rs"
[[example]]
name = "window_node"
path = "examples/nodes/stream/window_node.rs"
[[example]]
name = "write_variable_node"
path = "examples/nodes/variable/write_variable_node.rs"
[[example]]
name = "xor_node"
path = "examples/nodes/boolean_logic/xor_node.rs"
[[example]]
name = "zip_node"
path = "examples/nodes/stream/zip_node.rs"
[[bench]]
name = "in_process_bench"
path = "benches/in_process_bench.rs"
harness = false
[[bench]]
name = "shared_memory_bench"
path = "benches/shared_memory_bench.rs"
harness = false
[dependencies.arrow]
version = "54"
default-features = false
[dependencies.async-stream]
version = "0.3.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.7"
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.x"
features = ["serde"]
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.csv]
version = "1.3"
[dependencies.dyn-clone]
version = "1.0"
[dependencies.futures]
version = "0.3"
[dependencies.http-body-util]
version = "0.1"
[dependencies.ndarray]
version = "0.15"
[dependencies.once_cell]
version = "1.19"
[dependencies.opentelemetry]
version = "0.31"
[dependencies.opentelemetry-otlp]
version = "0.31"
features = ["grpc-tonic"]
[dependencies.opentelemetry_sdk]
version = "0.31"
[dependencies.ort]
version = "2.0.0-rc.10"
[dependencies.parquet]
version = "54"
features = [
"arrow",
"snap",
]
default-features = false
[dependencies.quick-xml]
version = "0.38"
features = ["serialize"]
[dependencies.rand]
version = "0.8"
[dependencies.rdkafka]
version = "0.36"
[dependencies.redis]
version = "1.0"
features = [
"tokio-comp",
"connection-manager",
]
[dependencies.regex]
version = "1.0"
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"multipart",
]
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.shared_memory]
version = "0.12"
[dependencies.sqlx]
version = "0.8"
features = [
"mysql",
"postgres",
"sqlite",
"runtime-tokio-rustls",
]
[dependencies.thiserror]
version = "2.0.17"
[dependencies.tokio]
version = "1.0"
features = [
"macros",
"rt",
"rt-multi-thread",
"sync",
"time",
"io-util",
"io-std",
"signal",
"fs",
"net",
"process",
]
default-features = false
[dependencies.tokio-stream]
version = "0.1"
default-features = false
[dependencies.tower]
version = "0.4"
[dependencies.tower-http]
version = "0.5"
features = [
"cors",
"trace",
]
[dependencies.tracing]
version = "0.1.40"
[dependencies.uuid]
version = "1.10"
features = [
"v4",
"serde",
]
[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]
[dev-dependencies.proptest]
version = "1.5"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio-test]
version = "0.4.2"
[dev-dependencies.tracing-subscriber]
version = "0.3"
[lints.rust]