[package]
name = "rangebar"
version = "0.4.2"
authors = ["Terry Li <terry@eonlabs.com>"]
categories = ["algorithms", "data-structures", "finance"]
documentation = "https://docs.rs/rangebar"
edition = "2024"
homepage = "https://github.com/Eon-Labs/rangebar"
keywords = ["finance", "trading", "range-bars", "cryptocurrency", "binance"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/Eon-Labs/rangebar"
rust-version = "1.85"
description = """
High-performance non-lookahead bias range bar construction for Binance UM Futures.
Processes 137M+ trades/sec with comprehensive Tier-1 cryptocurrency analysis.
Non-lookahead algorithm guarantees temporal integrity for financial backtesting.
"""
exclude = [
"CLAUDE.md",
"*.py",
"*.ipynb",
"test_data/*",
"data/*",
"output/*",
"range_bar_charts/*",
"statistical_analysis/*",
"visualization/*",
"web/*",
"adversarial_test_output/*",
"milestones/*",
".venv/*",
"repos/*"
]
[badges]
maintenance = { status = "actively-developed" }
[lib]
name = "rangebar"
crate-type = ["rlib"]
[[bin]]
name = "rangebar-export"
path = "src/bin/rangebar_export.rs"
[[bin]]
name = "rangebar-analyze"
path = "src/bin/parallel_tier1_analysis.rs"
[[bin]]
name = "tier1-symbol-discovery"
path = "src/bin/tier1_symbol_discovery.rs"
[[bench]]
name = "rangebar_bench"
harness = false
[dependencies]
rayon = "1.11"
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["arbitrary_precision"] }
thiserror = "2.0"
csv = "1.3"
bytes = "1.0"
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4.0", features = ["derive"] }
futures-util = "0.3"
reqwest = { version = "0.12", features = ["stream"] }
tokio = { version = "1.0", features = ["full"] }
zip = "2.2"
nalgebra = { version = "0.33", optional = true }
polars = { version = "0.49", features = ["lazy", "temporal", "strings", "parquet", "csv"], optional = true }
quantiles = { version = "0.7", optional = true }
statrs = { version = "0.17", optional = true }
crc32fast = { version = "1.4", optional = true }
md5 = { version = "0.7", optional = true }
sha2 = { version = "0.10", optional = true }
arrow = { version = "53.0", optional = true }
parquet = { version = "53.0", optional = true }
pyo3 = { version = "0.26", features = ["extension-module", "abi3-py38"], optional = true }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
[profile.release]
lto = true
codegen-units = 1
overflow-checks = false
panic = "abort"
[profile.dev]
overflow-checks = true
[features]
default = ["statistics", "data-integrity"]
simd = []
statistics = ["dep:statrs", "dep:quantiles", "dep:polars", "dep:nalgebra"]
arrow-support = ["dep:arrow", "dep:parquet"]
data-integrity = ["dep:sha2", "dep:crc32fast", "dep:md5"]
python = ["dep:pyo3", "statistics"]
full-analytics = ["statistics", "data-integrity"]
production = ["full-analytics", "arrow-support"]
python-bindings = ["dep:pyo3", "statistics"]