rustygraph 0.4.2

A high-performance library for visibility graph computation from time series data
Documentation
[package]
name = "rustygraph"
version = "0.4.2"
edition = "2021"
authors = ["Paul Magos <paul.magos@tum.de>"]
description = "A high-performance library for visibility graph computation from time series data"
documentation = "https://docs.rs/rustygraph"
repository = "https://github.com/paulmagos/rustygraph"
license = "MIT"
keywords = ["time-series", "graph", "visibility", "network", "complex-networks"]
categories = ["algorithms", "science", "data-structures"]
readme = "README.md"

[lib]
name = "rustygraph"
path = "src/lib.rs"
crate-type = ["lib", "cdylib"]

[dependencies]
dataloader = "0.18.0"
futures = "0.3"
num_cpus = "1.16"

# Optional features
rayon = { version = "1.8", optional = true }
csv = { version = "1.3", optional = true }
rustfft = { version = "6.2", optional = true }
ndarray = { version = "0.16", optional = true }
ndarray-npy = { version = "0.9", optional = true }
parquet = { version = "57.0.0", optional = true }
arrow = { version = "57.0.0", optional = true }
hdf5 = { version = "0.8", optional = true }
petgraph = { version = "0.6", optional = true }
pyo3 = { version = "0.23", optional = true, features = ["extension-module", "abi3-py39"] }
numpy = { version = "0.23", optional = true }
burn = { version = "0.13", optional = true, default-features = false }
polars = { version = "0.45", optional = true, features = ["lazy", "dtype-full"] }

[features]
default = ["parallel", "csv-import", "simd"]
parallel = ["rayon"]
simd = []
cuda = []   # GPU acceleration with CUDA (NVIDIA, requires CUDA toolkit)
metal = []  # GPU acceleration with Metal (Apple Silicon)
opencl = [] # GPU acceleration with OpenCL (Universal)
csv-import = ["csv"]
advanced-features = ["rustfft"]
npy-export = ["ndarray", "ndarray-npy"]
parquet-export = ["parquet", "arrow"]
hdf5-export = ["hdf5"]
petgraph-integration = ["petgraph"]
python-bindings = ["pyo3", "numpy", "ndarray", "parallel", "simd"]
ndarray-support = ["ndarray"]
burn-integration = ["burn"]
polars-integration = ["polars"]


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

[[bench]]
name = "visibility_benchmarks"
harness = false

[[example]]
name = "basic_usage"
path = "examples/basic_usage.rs"

[[example]]
name = "with_features"
path = "examples/with_features.rs"

[[example]]
name = "weighted_graphs"
path = "examples/weighted_graphs.rs"

[[example]]
name = "advanced_optimization"
path = "examples/advanced_optimization.rs"
required-features = ["advanced-features"]

# Testing examples
[[example]]
name = "ground_truth"
path = "examples/testing/ground_truth.rs"

[[example]]
name = "test_parallel_simd"
path = "examples/testing/test_parallel_simd.rs"
required-features = ["parallel", "simd"]

# Benchmark examples
[[example]]
name = "rust_benchmark"
path = "examples/benchmarks/rust_benchmark.rs"

[[example]]
name = "ml_dataloader"
path = "examples/ml_dataloader.rs"

# Metal GPU support (Apple Silicon)
[target.'cfg(target_os = "macos")'.dependencies]
metal = "0.32.0"
objc = "0.2"