-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCargo.toml
140 lines (118 loc) · 4.09 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
[package]
name = "vanadium-cli"
version = "0.1.0"
edition = "2018"
###################################################################################################
# Profile
###################################################################################################
[profile.release]
debug = true
codegen-units = 1
lto = "fat"
###################################################################################################
# Features
###################################################################################################
[features]
default = ["progress", "syscall-backend", "mapped-backend", "tokio-backend"]
windows = ["progress", "syscall-backend", "mapped-backend", "tokio-backend"]
macos = ["progress", "syscall-backend", "mapped-backend", "tokio-backend"]
linux = ["progress", "glommio-backend", "syscall-backend", "mapped-backend", "tokio-backend"]
#################################################
# BLAS implementations - choose ONE
#################################################
# enables openBLAS implementation
openblas = ["blas-src/openblas", "openblas-src", "ndarray/blas"]
# enables netlib implementation
netlib = ["blas-src/netlib", "netlib-src", "ndarray/blas"]
#################################################
# IO backends
#################################################
# io_uring-based direct io backend, is generally the fastest
glommio-backend = ["glommio", "futures"]
# read/write syscall-based backend
# is not bad in terms of performance
syscall-backend = []
# memory mapped file backend
# is a bit inconsistent compared to others
mapped-backend = ["memmap2"]
tokio-backend = ["tokio", "futures"]
#################################################
# Other features
#################################################
# enables progress bar
progress = ["indicatif"]
###################################################################################################
# Dependencies
###################################################################################################
[dependencies]
# CLI arg microframework
structopt = "^0.3.0"
# JSON serialization/deserialization
serde_json = "^1.0.0"
# Used for numeric generics
num-traits = "^0.2.0"
# Used for ifdef statements
cfg-if = "^1.0.0"
# Error handling
thiserror = "^1.0.0"
# Handles reading primitives from bytes, as well as endianness (in some cases)
byteorder = "^1.4.0"
# Used for eigendecomposition
ndarray-linalg = "^0.14.0"
# Used for image generation
image = "^0.23.14"
# JSON serialization/deserialization
[dependencies.serde]
version = "^1.0.0"
features = ["derive"]
# n-dimensional array, used for vectorized operations and linear algebra
[dependencies.ndarray]
version = "^0.15.0"
features = ["serde"]
###################################################################################################
# Optional Dependencies
###################################################################################################
[dependencies.tokio]
version = "^1.10.0"
features = ["rt", "fs", "io-util", "sync", "rt-multi-thread"]
optional = true
# Memory mapped IO
[dependencies.memmap2]
version = "^0.3.0"
optional = true
# BLAS-src, used for ndarray BLAS
[dependencies.blas-src]
version = "^0.8.0"
optional = true
# OpenBLAS backend for ndarray BLAS
[dependencies.openblas-src]
version = "^0.10.0"
features = ["cblas", "system"]
optional = true
# Netlib backend for ndarray BLAS
[dependencies.netlib-src]
version = "^0.8.0"
features = ["cblas", "system"]
optional = true
# Progress bar
[dependencies.indicatif]
version = "^0.16.0"
optional = true
# io_uring framework
[dependencies.glommio]
version = "^0.5.0"
optional = true
# futures crate, is just really useful
[dependencies.futures]
version = "^0.3.0"
optional = true
###################################################################################################
# Dev Dependencies
###################################################################################################
[dev-dependencies]
# used for checking approximate equality in tests
approx = "^0.5.0"
# enable approx support for ndarray
[dev-dependencies.ndarray]
version = "^0.15.0"
features = ["approx"]