[package]
edition = "2024"
name = "lightstream"
version = "0.6.1"
build = false
exclude = [
"benches/aws/Dockerfile",
"benches/aws/run.sh",
"benches/aws/terraform/",
"benches/ecs/Dockerfile",
"benches/ecs/.dockerignore",
"benches/ecs/terraform/",
"benches/ecs/run.sh",
"benches/ecs/run-local-docker.sh",
"run-lightstream-industry-bench-local.sh",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Composable, zero-copy Arrow IPC and native data streaming for Rust with SIMD-aligned I/O, async support, and memory-mapping."
homepage = "https://github.com/SpaceCell/lightstream"
documentation = "https://docs.rs/lightstream"
readme = "README.md"
keywords = [
"arrow",
"apache-arrow",
"polars",
"streaming",
"simd",
]
categories = [
"asynchronous",
"data-structures",
"encoding",
"filesystem",
"network-programming",
]
license = "MPL-2.0"
repository = "https://github.com/SpaceCell/lightstream"
[features]
arena = [
"minarrow/arena",
"dep:libc",
]
bench_arrow = ["arrow"]
bench_arrow_flight = [
"arrow",
"dep:arrow-flight",
"dep:tonic",
"dep:tokio-stream",
"dep:futures",
"dep:bytes",
"minarrow/cast_arrow",
]
bench_logging = ["dep:env_logger"]
bench_polars = ["polars"]
csv = [
"dep:ryu",
"dep:memchr",
"dep:fast-float2",
]
datetime = ["minarrow/datetime"]
default = [
"default_categorical_8",
"arena",
"large_string",
]
default_categorical_8 = ["minarrow/default_categorical_8"]
extended_categorical = [
"default_categorical_8",
"minarrow/extended_categorical",
]
extended_numeric_types = ["minarrow/extended_numeric_types"]
http = [
"tcp",
"dep:h2",
"dep:http",
"dep:bytes",
]
io_uring = [
"uds",
"tokio-uring",
"protocol",
]
json = [
"dep:simd-json",
"dep:memchr",
"dep:ryu",
]
large_string = ["minarrow/large_string"]
lbuffer = ["minarrow/lbuffer"]
mmap = ["dep:libc"]
msgpack = [
"protocol",
"rmp-serde",
"serde",
]
parquet = []
protobuf = [
"protocol",
"prost",
]
protocol = []
quic = [
"tokio/net",
"quinn",
]
snappy = ["snap"]
stdio = ["tokio/io-std"]
table_metadata = ["minarrow/table_metadata"]
tcp = ["tokio/net"]
tls = [
"tcp",
"dep:tokio-rustls",
"dep:rustls-pki-types",
"tokio-tungstenite?/rustls-tls-webpki-roots",
]
uds = ["tokio/net"]
vmap64 = [
"vec64/mmap",
"minarrow/vmap64",
]
websocket = [
"tcp",
"tokio-tungstenite",
]
webtransport = [
"tokio/net",
"wtransport",
]
zstd = ["dep:zstd"]
[lib]
name = "lightstream"
path = "src/lib.rs"
[[example]]
name = "arrow_ipc_basic"
path = "examples/arrow/ipc_basic.rs"
[[example]]
name = "arrow_mmap"
path = "examples/arrow/mmap.rs"
[[example]]
name = "arrow_table_reader"
path = "examples/arrow/table_reader.rs"
[[example]]
name = "arrow_table_stream_reader"
path = "examples/arrow/table_stream_reader.rs"
[[example]]
name = "arrow_table_stream_writer"
path = "examples/arrow/table_stream_writer.rs"
[[example]]
name = "arrow_table_writer"
path = "examples/arrow/table_writer.rs"
[[example]]
name = "bench_ecs_sink"
path = "benches/ecs/sink.rs"
required-features = [
"bench_arrow_flight",
"protocol",
"tcp",
"mmap",
]
[[example]]
name = "bench_ecs_source"
path = "benches/ecs/source.rs"
required-features = [
"bench_arrow_flight",
"protocol",
"tcp",
"mmap",
]
[[example]]
name = "bench_receiver"
path = "benches/aws/receiver.rs"
required-features = ["tcp"]
[[example]]
name = "bench_sender"
path = "benches/aws/sender.rs"
required-features = ["tcp"]
[[example]]
name = "csv_basic"
path = "examples/csv/basic.rs"
required-features = ["csv"]
[[example]]
name = "http_arrow"
path = "examples/http/arrow.rs"
required-features = ["http"]
[[example]]
name = "http_arrow_parallel"
path = "examples/http/arrow-parallel.rs"
required-features = ["http"]
[[example]]
name = "lightstream"
path = "examples/lightstream/protocol.rs"
required-features = [
"protocol",
"tcp",
"msgpack",
]
[[example]]
name = "parquet_file_io"
path = "examples/parquet/file_io.rs"
[[example]]
name = "protobuf_arrow_lightstream"
path = "examples/lightstream/protobuf_arrow.rs"
required-features = [
"protocol",
"tcp",
"protobuf",
]
[[example]]
name = "quic_arrow"
path = "examples/quic/arrow.rs"
required-features = ["quic"]
[[example]]
name = "quic_arrow_parallel"
path = "examples/quic/arrow-parallel.rs"
required-features = ["quic"]
[[example]]
name = "quic_lightstream"
path = "examples/quic/lightstream.rs"
required-features = [
"protocol",
"quic",
"msgpack",
]
[[example]]
name = "tcp_arrow"
path = "examples/tcp/arrow.rs"
required-features = ["tcp"]
[[example]]
name = "tcp_arrow_tls"
path = "examples/tcp/arrow_tls.rs"
required-features = [
"tcp",
"tls",
]
[[example]]
name = "tcp_lightstream"
path = "examples/tcp/lightstream.rs"
required-features = [
"protocol",
"tcp",
"msgpack",
]
[[example]]
name = "tlv_protocol"
path = "examples/tlv/protocol.rs"
[[example]]
name = "uds_arrow"
path = "examples/uds/arrow.rs"
required-features = ["uds"]
[[example]]
name = "uds_lightstream"
path = "examples/uds/lightstream.rs"
required-features = [
"protocol",
"uds",
"msgpack",
]
[[example]]
name = "websocket_arrow"
path = "examples/websocket/arrow.rs"
required-features = ["websocket"]
[[example]]
name = "websocket_arrow_tls"
path = "examples/websocket/arrow_tls.rs"
required-features = [
"websocket",
"tls",
]
[[example]]
name = "websocket_lightstream"
path = "examples/websocket/lightstream.rs"
required-features = [
"protocol",
"websocket",
"msgpack",
]
[[example]]
name = "webtransport_arrow"
path = "examples/webtransport/arrow.rs"
required-features = ["webtransport"]
[[example]]
name = "webtransport_lightstream"
path = "examples/webtransport/lightstream.rs"
required-features = [
"protocol",
"webtransport",
"msgpack",
]
[[test]]
name = "http_parallel_roundtrip"
path = "tests/http_parallel_roundtrip.rs"
[[test]]
name = "io_uring_roundtrip"
path = "tests/io_uring_roundtrip.rs"
[[test]]
name = "ipc_roundtrip"
path = "tests/ipc_roundtrip.rs"
[[test]]
name = "json_roundtrip"
path = "tests/json_roundtrip.rs"
[[test]]
name = "lightstream_parallel_roundtrip"
path = "tests/lightstream_parallel_roundtrip.rs"
[[test]]
name = "parquet_roundtrip"
path = "tests/parquet_roundtrip.rs"
[[test]]
name = "protocol_roundtrip"
path = "tests/protocol_roundtrip.rs"
[[test]]
name = "pyarrow_roundtrip"
path = "tests/pyarrow_roundtrip.rs"
[[test]]
name = "quic_roundtrip"
path = "tests/quic_roundtrip.rs"
[[test]]
name = "stdio_roundtrip"
path = "tests/stdio_roundtrip.rs"
[[test]]
name = "tcp_parallel_roundtrip"
path = "tests/tcp_parallel_roundtrip.rs"
[[test]]
name = "tcp_roundtrip"
path = "tests/tcp_roundtrip.rs"
[[test]]
name = "test_column_projection"
path = "tests/test_column_projection.rs"
[[test]]
name = "test_compression_api"
path = "tests/test_compression_api.rs"
[[test]]
name = "test_compression_integration"
path = "tests/test_compression_integration.rs"
[[test]]
name = "test_compression_roundtrip"
path = "tests/test_compression_roundtrip.rs"
[[test]]
name = "test_mmap_shared_buffers"
path = "tests/test_mmap_shared_buffers.rs"
[[test]]
name = "transport_roundtrip"
path = "tests/transport_roundtrip.rs"
[[test]]
name = "uds_roundtrip"
path = "tests/uds_roundtrip.rs"
[[test]]
name = "websocket_roundtrip"
path = "tests/websocket_roundtrip.rs"
[[test]]
name = "webtransport_roundtrip"
path = "tests/webtransport_roundtrip.rs"
[[bench]]
name = "arrow_flight_comparison"
path = "benches/arrow/arrow_flight_comparison.rs"
harness = false
required-features = [
"bench_arrow_flight",
"tcp",
]
[[bench]]
name = "chunked_throughput"
path = "benches/file/chunked_throughput.rs"
harness = false
[[bench]]
name = "file_throughput"
path = "benches/file/file_throughput.rs"
harness = false
[[bench]]
name = "ipc_throughput"
path = "benches/transport/ipc_throughput.rs"
harness = false
[[bench]]
name = "json_throughput"
path = "benches/json/json_throughput.rs"
harness = false
required-features = ["json"]
[[bench]]
name = "lightstream_throughput"
path = "benches/transport/lightstream_throughput.rs"
harness = false
required-features = [
"protocol",
"tcp",
"uds",
]
[[bench]]
name = "mmap_streaming"
path = "benches/file/mmap_streaming.rs"
harness = false
required-features = ["mmap"]
[[bench]]
name = "transport_bench_matrix"
path = "benches/transport/transport_bench_matrix.rs"
harness = false
required-features = [
"tcp",
"uds",
"websocket",
]
[dependencies.arrow]
version = "59.2.0"
features = ["ipc"]
optional = true
default-features = false
[dependencies.arrow-flight]
version = "59.2.0"
optional = true
[dependencies.bytes]
version = "1"
optional = true
[dependencies.env_logger]
version = "0.11"
optional = true
[dependencies.fast-float2]
version = "0.2"
optional = true
[dependencies.flatbuffers]
version = "25.12.19"
[dependencies.futures]
version = "0.3"
features = ["alloc"]
optional = true
default-features = false
[dependencies.futures-core]
version = "0.3"
[dependencies.futures-sink]
version = "0.3.32"
[dependencies.futures-util]
version = "0.3"
features = ["sink"]
[dependencies.h2]
version = "0.4"
optional = true
[dependencies.http]
version = "1"
optional = true
[dependencies.libc]
version = "0.2.183"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.memchr]
version = "=2.8.0"
optional = true
[dependencies.minarrow]
version = "0.17.0"
features = [
"chunked",
"views",
"select",
"size",
]
default-features = false
[dependencies.polars]
version = "0.55.2"
features = ["ipc"]
optional = true
default-features = false
[dependencies.prost]
version = "0.14"
optional = true
[dependencies.quinn]
version = "0.11"
features = [
"runtime-tokio",
"rustls-ring",
]
optional = true
default-features = false
[dependencies.rmp-serde]
version = "1"
optional = true
[dependencies.rustls-pki-types]
version = "1"
optional = true
[dependencies.ryu]
version = "=1.0.23"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.simd-json]
version = "0.17"
features = ["known-key"]
optional = true
[dependencies.snap]
version = "1.0"
optional = true
[dependencies.tokio]
version = "1"
features = [
"fs",
"io-util",
"rt-multi-thread",
"macros",
"sync",
]
[dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
optional = true
default-features = false
[dependencies.tokio-stream]
version = "0.1"
features = ["net"]
optional = true
[dependencies.tokio-tungstenite]
version = "0.28"
optional = true
[dependencies.tokio-uring]
version = "0.5"
optional = true
[dependencies.tonic]
version = "0.14"
features = ["transport"]
optional = true
[dependencies.tracing]
version = "0.1.44"
[dependencies.vec64]
version = "0.5.0"
[dependencies.wtransport]
version = "0.7"
optional = true
[dependencies.zstd]
version = "0.13"
optional = true
[dev-dependencies.criterion]
version = "0.8"
features = ["async_tokio"]
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
]
default-features = false
[dev-dependencies.tempfile]
version = "3.26.0"
[target.'cfg(target_os = "linux")'.dev-dependencies.libc]
version = "0.2"