[package]
name = "excelstream"
version = "0.20.0"
edition = "2021"
authors = ["Ton That Vu <ttvuhm@gmail.com>"]
description = "High-performance streaming Excel & CSV library with S3/GCS cloud support and Parquet conversion - Ultra-low memory usage"
license = "MIT"
repository = "https://github.com/KSD-CO/excelstream"
keywords = ["excel", "xlsx", "csv", "parquet", "streaming"]
categories = ["parsing", "encoding"]
exclude = [
"*.xlsx",
"*.xls",
"examples/*.xlsx",
"examples/*.xls",
"tests/data/*.xlsx",
"tests/data/*.xls",
"benches/results/",
"memory_test_*.xlsx",
]
[dependencies]
thiserror = "2.0"
dhat = { version = "0.3.3", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
rayon = { version = "1.8", optional = true }
indexmap = "2"
chrono = { version = "0.4", features = ["clock"] }
itoa = "1.0"
s-zip = { version = "0.8.0", default-features = false }
postgres = { version = "0.19", features = ["with-chrono-0_4"], optional = true }
tokio-postgres = { version = "0.7", features = ["with-chrono-0_4"], optional = true }
deadpool-postgres = { version = "0.14", optional = true }
tokio = { version = "1", features = ["full"], optional = true }
aws-config = { version = "1.0", optional = true }
aws-sdk-s3 = { version = "1.0", optional = true }
google-cloud-storage = { version = "0.22", optional = true }
google-cloud-auth = { version = "0.17", optional = true }
tempfile = { version = "3.8", optional = true }
axum = { version = "0.7", optional = true }
parquet = { version = "57", optional = true, default-features = false, features = ["arrow", "snap", "zstd"] }
arrow = { version = "57", optional = true, default-features = false, features = ["ipc"] }
[dev-dependencies]
tempfile = "3.8"
criterion = "0.5"
[features]
default = ["s-zip/zstd-support"]
serde = ["dep:serde"]
parallel = ["dep:rayon"]
postgres = ["dep:postgres"]
postgres-async = ["dep:tokio-postgres", "dep:deadpool-postgres", "dep:tokio"]
cloud-s3 = ["dep:aws-config", "dep:aws-sdk-s3", "dep:tokio", "dep:tempfile", "s-zip/cloud-s3"]
dhat-heap = ["dep:dhat"]
cloud-gcs = ["dep:google-cloud-storage", "dep:google-cloud-auth", "dep:tokio", "dep:tempfile", "s-zip/cloud-gcs"]
cloud-http = ["dep:axum", "dep:tokio", "dep:tempfile"]
cloud-azure = []
parquet-support = ["dep:parquet", "dep:arrow"]
[[bench]]
name = "streaming_benchmark"
harness = false
[lib]
name = "excelstream"
path = "src/lib.rs"
[[example]]
name = "basic_read"
path = "examples/basic_read.rs"
[[example]]
name = "basic_write"
path = "examples/basic_write.rs"
[[example]]
name = "streaming_read"
path = "examples/streaming_read.rs"
[[example]]
name = "streaming_write"
path = "examples/streaming_write.rs"
[[example]]
name = "postgres_to_excel_advanced"
path = "examples/postgres_to_excel_advanced.rs"
required-features = ["postgres-async"]
[[example]]
name = "postgres_streaming"
path = "examples/postgres_streaming.rs"
required-features = ["postgres"]
[[example]]
name = "http_streaming"
path = "examples/http_streaming.rs"
required-features = ["cloud-http"]
[[example]]
name = "http_memory_test"
path = "examples/http_memory_test.rs"
required-features = ["cloud-http"]
[[example]]
name = "gcs_streaming"
path = "examples/gcs_streaming.rs"
required-features = ["cloud-gcs"]
[[example]]
name = "gcs_performance_test"
path = "examples/gcs_performance_test.rs"
required-features = ["cloud-gcs"]
[[example]]
name = "parquet_to_excel"
path = "examples/parquet_to_excel.rs"
required-features = ["parquet-support"]
[[example]]
name = "excel_to_parquet"
path = "examples/excel_to_parquet.rs"
required-features = ["parquet-support"]
[[example]]
name = "parquet_streaming"
path = "examples/parquet_streaming.rs"
required-features = ["parquet-support"]
[[example]]
name = "parquet_performance_test"
path = "examples/parquet_performance_test.rs"
required-features = ["parquet-support"]
[[example]]
name = "memory_bench"
path = "examples/memory_bench.rs"
required-features = ["dhat-heap"]