rangebar 0.4.2

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.
Documentation
[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",                     # Project memory - never publish
    "*.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"]  # Pure Rust library

[[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"
# Core async dependencies
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"

# Statistical analysis (optional)
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 }

# Data integrity validation (optional)
crc32fast = { version = "1.4", optional = true }
md5 = { version = "0.7", optional = true }
sha2 = { version = "0.10", optional = true }

# Arrow ecosystem support (optional)
arrow = { version = "53.0", optional = true }
parquet = { version = "53.0", optional = true }

# Python bindings (optional)
pyo3 = { version = "0.26", features = ["extension-module", "abi3-py38"], optional = true }

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }

[profile.release]
lto = true              # Link-time optimization for better performance
codegen-units = 1       # Single codegen unit for better optimization  
overflow-checks = false # Disable overflow checks in release for speed
panic = "abort"         # Smaller binary size

[profile.dev]
overflow-checks = true  # Keep overflow checks in debug builds

[features]
default = ["statistics", "data-integrity"]  # Core features for most users
simd = []                                # Optional SIMD optimizations

# Feature groups for modular compilation
statistics = ["dep:statrs", "dep:quantiles", "dep:polars", "dep:nalgebra"]
arrow-support = ["dep:arrow", "dep:parquet"]
data-integrity = ["dep:sha2", "dep:crc32fast", "dep:md5"]

# Python integration (2024 best practices)
python = ["dep:pyo3", "statistics"]  # Python requires statistics for full functionality

# Combined feature sets
full-analytics = ["statistics", "data-integrity"]
production = ["full-analytics", "arrow-support"]
python-bindings = ["dep:pyo3", "statistics"]  # Optional Python bindings for those who want them