-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
81 lines (68 loc) · 2.83 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[package]
name = "extractor"
version = "0.1.0"
edition = "2024"
authors = ["Your Name <[email protected]>"]
description = "High-performance biological CSV file filtering library with indexed access support"
repository = "https://github.com/HeartBioPortal/Extractor"
documentation = "https://docs.rs/extractor"
readme = "README.md"
keywords = ["bioinformatics", "csv", "filter", "parallel", "performance"]
categories = ["science", "parser-implementations"]
license = "MIT"
[dependencies]
# Core functionality
csv = "1.3" # CSV reading/writing
rayon = "1.8" # Parallel processing
memmap2 = "0.9" # Memory mapping for efficient file I/O
crossbeam-channel = "0.5" # Channel-based communication
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Error handling
thiserror = "1.0" # Error handling derive macros
anyhow = "1.0" # Error context and wrapping
# Logging and diagnostics
tracing = "0.1" # Modern logging framework
tracing-subscriber = "0.3" # Logging implementation
# Utilities
bytes = "1.5" # Efficient byte buffer operations
indicatif = { version = "0.17", optional = true } # Progress bars
regex = "1.10" # Regular expressions for pattern matching
itertools = "0.12" # Iterator utilities
num_cpus = "1.15" # CPU count detection
[dev-dependencies]
# Testing
criterion = { version = "0.5", features = ["html_reports"] }
tempfile = "3.8" # Temporary file handling for tests
assert_fs = "1.0" # Filesystem assertions
predicates = "3.0" # Test predicates
rstest = "0.18" # Test case generation
mockall = "0.12" # Mocking framework
test-log = "0.2" # Test logging
# Benchmarking
iai = "0.1" # Constant-time benchmarking
dhat = "0.3" # Heap profiling
[features]
default = ["progress-bars"]
progress-bars = ["dep:indicatif"]
compression = [] # Future support for compressed files
extended-stats = [] # Future support for statistical analysis
[[bench]]
name = "performance_benchmarks"
harness = false
[profile.release]
lto = true # Link-time optimization
codegen-units = 1 # Maximize optimization
panic = "abort" # Remove panic unwinding
opt-level = 3 # Maximum optimization
debug = false # No debug symbols
strip = true # Strip symbols from binary
[profile.dev]
opt-level = 0 # No optimization for faster compilation
debug = true # Full debug info
[profile.test]
opt-level = 0 # No optimization for tests
debug = true # Full debug info
[package.metadata]
msrv = "1.70.0" # Minimum supported Rust version