[badges.maintenance]
status = "actively-developed"
[[bench]]
harness = false
name = "rangebar_bench"
path = "benches/rangebar_bench.rs"
[[bin]]
name = "data-structure-validator"
path = "src/bin/data_structure_validator.rs"
[[bin]]
name = "polars-benchmark"
path = "src/bin/polars_benchmark.rs"
[[bin]]
name = "rangebar-analyze"
path = "src/bin/parallel_tier1_analysis.rs"
[[bin]]
name = "rangebar_api"
path = "src/bin/rangebar_api.rs"
[[bin]]
name = "spot-tier1-processor"
path = "src/bin/spot_tier1_processor.rs"
[[bin]]
name = "temporal-integrity-validator"
path = "src/bin/temporal_integrity_test_only.rs"
[[bin]]
name = "tier1-symbol-discovery"
path = "src/bin/tier1_symbol_discovery.rs"
[dependencies.anyhow]
optional = true
version = "1.0"
[dependencies.arrow]
optional = true
version = "53.0"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
features = ["json", "multipart", "ws"]
optional = true
version = "0.7"
[dependencies.bufferpool]
optional = true
version = "0.1"
[dependencies.bytes]
version = "1.0"
[dependencies.chrono]
features = ["serde"]
version = "0.4"
[dependencies.clap]
features = ["derive", "env"]
version = "4.0"
[dependencies.comfy-table]
version = "7.2"
[dependencies.config]
version = "0.14"
[dependencies.crc32fast]
optional = true
version = "1.4"
[dependencies.csv]
version = "1.3"
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.md5]
optional = true
version = "0.7"
[dependencies.mempool]
optional = true
version = "0.3"
[dependencies.nalgebra]
optional = true
version = "0.33"
[dependencies.num_cpus]
version = "1.16"
[dependencies.parquet]
optional = true
version = "53.0"
[dependencies.polars]
features = ["lazy", "temporal", "strings", "parquet", "csv", "ipc"]
optional = true
version = "0.49"
[dependencies.pyo3]
features = ["extension-module", "abi3-py38"]
optional = true
version = "0.26"
[dependencies.quantiles]
optional = true
version = "0.7"
[dependencies.rayon]
version = "1.11"
[dependencies.reqwest]
features = ["stream"]
version = "0.12"
[dependencies.rolling-stats]
optional = true
version = "0.1"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
features = ["arbitrary_precision"]
version = "1.0"
[dependencies.sha2]
optional = true
version = "0.10"
[dependencies.statrs]
optional = true
version = "0.17"
[dependencies.ta-statistics]
optional = true
version = "0.2"
[dependencies.tdigests]
optional = true
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tikv-jemallocator]
optional = true
version = "0.6"
[dependencies.tokio]
features = ["full"]
version = "1.0"
[dependencies.tokio-stream]
version = "0.1"
[dependencies.tokio-tungstenite]
features = ["native-tls"]
version = "0.23"
[dependencies.tower]
features = ["limit", "timeout"]
optional = true
version = "0.4"
[dependencies.tower-http]
features = ["cors", "trace", "compression-br"]
optional = true
version = "0.5"
[dependencies.tracing]
optional = true
version = "0.1"
[dependencies.tracing-subscriber]
features = ["env-filter", "json"]
optional = true
version = "0.3"
[dependencies.utoipa]
features = ["axum_extras", "chrono", "uuid"]
optional = true
version = "4.2"
[dependencies.utoipa-swagger-ui]
features = ["axum"]
optional = true
version = "4.0"
[dependencies.uuid]
features = ["v4", "serde"]
optional = true
version = "1.6"
[dependencies.validator]
features = ["derive"]
optional = true
version = "0.18"
[dependencies.zip]
version = "2.2"
[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5"
[dev-dependencies.crossterm]
version = "0.28"
[dev-dependencies.ratatui]
version = "0.29"
[dev-dependencies.tempfile]
version = "3.8"
[dev-dependencies.toml]
version = "0.8"
[[example]]
name = "analysis-market-efficiency"
path = "examples/analysis/market_efficiency_analysis.rs"
[[example]]
name = "analysis-rangebar-generation"
path = "examples/analysis/rangebar_generation_comparison.rs"
[[example]]
name = "analysis-tier1-symbols"
path = "examples/analysis/tier1_symbols.rs"
[[example]]
name = "analysis-tier1-volume"
path = "examples/analysis/tier1_volume_comparison.rs"
[[example]]
name = "basic-usage"
path = "examples/educational/basic_usage.rs"
[[example]]
name = "format-demo"
path = "examples/interactive/format_demo.rs"
[[example]]
name = "historical-replay"
path = "examples/interactive/historical_replay.rs"
[[example]]
name = "investigation-date-availability"
path = "examples/investigation/date_availability_investigation.rs"
[[example]]
name = "investigation-timestamp-analysis"
path = "examples/investigation/timestamp_analysis.rs"
[[example]]
name = "market-comparison-demo"
path = "examples/interactive/market_comparison_demo.rs"
[[example]]
name = "terminology-clarification"
path = "examples/educational/terminology_clarification.rs"
[[example]]
name = "test-historical-replay"
path = "examples/interactive/test_historical_replay.rs"
[[example]]
name = "validate-25bps-threshold"
path = "examples/validation/validate_25bps_threshold.rs"
[[example]]
name = "validate-custom-threshold"
path = "examples/validation/validate_custom_threshold.rs"
[features]
advanced-analytics = ["polars-analytics", "cross-symbol-analysis"]
api = ["dep:axum", "dep:tower", "dep:tower-http", "dep:utoipa", "dep:utoipa-swagger-ui", "dep:anyhow", "dep:tracing", "dep:tracing-subscriber", "dep:validator", "dep:uuid"]
arrow-export = ["polars-io", "dep:arrow"]
arrow-support = ["dep:arrow", "dep:parquet"]
basic-analytics = ["streaming-stats"]
batch-mode = ["polars-analytics", "advanced-analytics"]
cross-symbol-analysis = ["polars-analytics"]
data-integrity = ["dep:sha2", "dep:crc32fast", "dep:md5"]
debug = []
default = ["streaming-v2", "data-integrity"]
export-formats = ["polars-io", "arrow-export", "parquet-export"]
full-suite = ["researcher", "trader", "hybrid-mode"]
hybrid-mode = ["streaming-mode", "batch-mode"]
market-microstructure = ["advanced-analytics"]
memory-optimized = ["dep:mempool", "dep:bufferpool", "dep:tikv-jemallocator"]
parquet-export = ["polars-io"]
polars-analytics = ["polars-io", "dep:statrs", "dep:quantiles"]
polars-io = ["dep:polars"]
production = ["hybrid-mode", "arrow-support", "data-integrity"]
python = ["dep:pyo3", "polars-analytics"]
real-time-indicators = []
research-analytics = ["advanced-analytics", "market-microstructure"]
researcher = ["polars-analytics", "arrow-export", "research-analytics"]
simd = []
statistics = ["dep:statrs", "dep:quantiles", "dep:nalgebra"]
streaming-mode = ["streaming-stats", "real-time-indicators"]
streaming-stats = ["dep:ta-statistics", "dep:rolling-stats", "dep:tdigests"]
streaming-v2 = []
trader = ["streaming-mode", "real-time-indicators", "api"]
[lib]
crate-type = ["rlib"]
name = "rangebar"
path = "src/lib.rs"
[package]
authors = ["Terry Li <terry@eonlabs.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["algorithms", "data-structures", "finance"]
description = "Non-lookahead range bar construction for cryptocurrency trading with temporal integrity guarantees"
documentation = "https://docs.rs/rangebar"
edition = "2024"
exclude = ["CLAUDE.md", "docs/", "src/bin/rangebar_export.rs", "src/data/", "*.py", "*.ipynb", "test_data/", "test_output/", "test_regression/", "test_single/", "test_spot/", "test_thresholds/", "data/", "output/", "range_bar_charts/", "statistical_analysis/", "visualization/", "web/", "adversarial_test_output/", "milestones/", ".venv/", "repos/", ".pytest_cache/", "benchmark_data/", "binance_futures_*.txt"]
homepage = "https://github.com/Eon-Labs/rangebar"
keywords = ["finance", "trading", "range-bars", "cryptocurrency", "binance"]
license = "MIT"
name = "rangebar"
readme = "README.md"
repository = "https://github.com/Eon-Labs/rangebar"
rust-version = "1.90"
version = "0.9.1"
[profile.dev]
overflow-checks = true
[profile.release]
codegen-units = 1
lto = true
overflow-checks = false
panic = "abort"
[[test]]
name = "boundary_consistency_tests"
path = "tests/boundary_consistency_tests.rs"
[[test]]
name = "bps_conversion_tests"
path = "tests/bps_conversion_tests.rs"
[[test]]
name = "cross_year_speed_comparison"
path = "tests/cross_year_speed_comparison.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "large_boundary_tests"
path = "tests/large_boundary_tests.rs"
[[test]]
name = "multi_month_memory_tests"
path = "tests/multi_month_memory_tests.rs"
[[test]]
name = "production_streaming_validation"
path = "tests/production_streaming_validation.rs"
[[test]]
name = "statistics_v2_validation"
path = "tests/statistics_v2_validation.rs"