Files
rustytorch/crates/specialized/rtx-neuro-core/Cargo.toml
T
2026-03-04 00:08:42 +00:00

117 lines
4.0 KiB
TOML

[package]
name = "rtx-neuro-core"
version = "1.0.0"
edition = "2024"
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Unified neuro-imaging super-crate consolidating 16 neuro crates (47K LOC) - MEG/EEG/fMRI analysis platform"
[dependencies]
# Core RustyTorch dependencies
rtx-tensor = { workspace = true }
rtx-autograd = { workspace = true }
# Neuro-specific crates (conditional on features)
# rtx-neuro is no longer used - core module is now built-in
# rtx-neuro-io is now built-in (migrated into this crate)
# rtx-neuro-signal is now built-in (migrated into this crate)
# rtx-neuro-forward is now built-in (migrated into this crate)
# rtx-neuro-inverse is now built-in (migrated into this crate)
# rtx-neuro-connectivity is now built-in (migrated into this crate)
# rtx-neuro-anatomy is now built-in (migrated into this crate)
# rtx-neuro-stats is now built-in (migrated into this crate)
rtx-neuro-artifacts = { workspace = true, optional = true }
rtx-neuro-realtime = { workspace = true, optional = true }
rtx-neuro-lsl = { workspace = true, optional = true }
rtx-neuro-db = { workspace = true, optional = true }
rtx-neuro-gnn = { workspace = true, optional = true }
rtx-neuro-pinn = { workspace = true, optional = true }
rtx-neuro-fem = { workspace = true, optional = true }
# Essential dependencies (always available)
thiserror = { workspace = true }
serde = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
serde_json = { workspace = true }
# I/O module dependencies (conditional on io feature)
byteorder = { workspace = true, optional = true }
memmap2 = { version = "0.9", optional = true }
walkdir = { workspace = true, optional = true }
regex = { workspace = true, optional = true }
# Signal processing dependencies (conditional on signal feature)
rustfft = { version = "6.2", optional = true }
num-complex = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
# Forward modeling dependencies (conditional on forward feature)
nalgebra = { version = "0.33", optional = true }
# Connectivity dependencies (conditional on connectivity feature)
# rustfft and num-complex already included in signal feature
# Statistics module dependencies (conditional on stats feature)
rand = { workspace = true, optional = true }
statrs = { version = "0.18", optional = true }
ndarray = { version = "0.16", features = ["rayon"], optional = true }
[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
approx = "0.5"
[features]
default = ["core", "io", "signal"]
# Core functionality (now built-in, not dependent on rtx-neuro)
core = []
io = ["dep:byteorder", "dep:memmap2", "dep:walkdir", "dep:regex"]
signal = ["dep:rustfft", "dep:num-complex", "dep:rayon"]
# Analysis modules
# Note: rtx-neuro-forward, rtx-neuro-inverse, rtx-neuro-connectivity, and rtx-neuro-anatomy are now built-in (migrated into this crate)
forward = ["dep:nalgebra", "dep:rayon"]
inverse = ["forward", "dep:nalgebra"]
connectivity = ["signal", "dep:nalgebra"] # Requires signal for FFT, nalgebra for Granger causality
anatomy = ["dep:nalgebra", "dep:byteorder"] # FreeSurfer file reading requires nalgebra for Vector3, byteorder for binary I/O
artifacts = ["dep:rtx-neuro-artifacts"]
stats = ["dep:rand", "dep:rayon", "dep:statrs", "dep:ndarray"] # Statistical analysis now built-in
# Real-time and streaming
realtime = ["dep:rtx-neuro-realtime", "dep:rtx-neuro-lsl"]
# Machine learning extensions
ml = ["dep:rtx-neuro-gnn", "dep:rtx-neuro-pinn", "dep:rtx-neuro-fem"]
# Database support
db = ["dep:rtx-neuro-db"]
# Hardware acceleration
cuda = ["rtx-tensor/cuda"]
metal = ["rtx-tensor/metal"]
# Python bindings (note: rtx-neuro-python excluded from workspace, built separately)
python = []
# Full feature set (all modules)
full = [
"core",
"io",
"signal",
"forward",
"inverse",
"connectivity",
"artifacts",
"stats",
"anatomy",
"realtime",
"ml",
"db",
]
[lints]
workspace = true