-
Notifications
You must be signed in to change notification settings - Fork 47
Expand file tree
/
Copy pathCargo.toml
More file actions
117 lines (106 loc) · 3.21 KB
/
Copy pathCargo.toml
File metadata and controls
117 lines (106 loc) · 3.21 KB
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
[workspace]
members = ["lib/numerica", "lib/graphica"]
resolver = "3"
[package]
authors = ["Ben Ruijl <ben@symbolica.io>"]
build = "build.rs"
categories = ["science"]
description = "A blazing fast computer algebra system"
edition = "2024"
keywords = ["algebra", "symbolic", "manipulation", "mathematics", "physics"]
license-file = "License.md"
name = "symbolica"
readme = "Readme.md"
repository = "https://github.com/symbolica-dev/symbolica"
rust-version = "1.89"
version = "2.2.0"
[package.metadata.docs.rs]
features = ["python_export", "serde", "bincode", "python_stubgen"]
rustdoc-args = ["--cfg", "docsrs"]
[profile.release]
codegen-units = 1
lto = true
[profile.dev.package."*"]
opt-level = 3
[profile.dev-optim]
inherits = "dev"
opt-level = 3
[lib]
crate-type = ["lib"]
name = "symbolica"
[features]
default = ["tracing_max_level_info", "faster_alloc", "gmp"]
faster_alloc = ["mimalloc"]
gmp = ["dep:rug", "numerica/gmp", "graphica/gmp"]
no_gmp = ["numerica/no_gmp", "graphica/no_gmp"]
# sort functions based on an argument-by-argument comparison
full_fn_cmp = []
mathematica_api = ["wolfram-library-link"]
# create a Python module
python_api = [
"pyo3/extension-module",
"numpy",
"bincode",
"pyo3-log",
"tracing/log",
"pyo3-stub-gen-derive",
"numerica/python",
]
# export the Python API
python_export = [
"pyo3",
"numpy",
"bincode",
"pyo3-stub-gen-derive",
"numerica/python",
]
# generate stubs for Python API
python_stubgen = ["python_export", "pyo3-stub-gen", "numerica/python_stubgen"]
# build a module that is independent of the specific Python version
python_abi3 = ["pyo3/abi3", "pyo3/abi3-py37"]
tracing_max_level_info = ["tracing/release_max_level_info"]
# import/export objects that do not depend on the state using serde
serde = ["dep:serde", "rug?/serde", "numerica/serde"]
# allow importing/exporting of atoms with a state map using bincode
bincode = ["dep:bincode", "dep:bincode-trait-derive", "numerica/bincode"]
[dependencies.pyo3]
features = ["abi3", "py-clone", "num-complex"]
optional = true
version = "0.28"
[dependencies]
numerica = { version = "2.2", default-features = false }
graphica = { version = "2.0", default-features = false }
ahash = "0.8.7"
append-only-vec = "0.1"
bincode = { version = "2.0", optional = true }
brotli = "8.0"
byteorder = "1.5"
bytes = "1.5"
dyn-clone = "1.0"
inventory = "0.3"
libloading = "0.9"
once_cell = "1.19"
rand = "0.9"
pyo3-stub-gen = { version = "0.17", default-features = false, features = [
"numpy",
], optional = true }
pyo3-stub-gen-derive = { version = "0.17", optional = true }
rayon = "1.8"
rug = { version = "1.27.0", optional = true }
numpy = { version = "0.28", optional = true }
self_cell = "1.2.0"
serde = { version = "1.0", features = ["derive"], optional = true }
smallvec = "1.13"
smartstring = "1.0"
mimalloc = { version = "0.1", optional = true }
tinyjson = "2.5"
tracing = "0.1"
wide = "1.3"
wolfram-library-link = { version = "0.2.9", optional = true }
bincode-trait-derive = { version = "0.1.0", optional = true }
pyo3-log = { version = "0.13", optional = true }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
symjit = "2.21"
[patch.crates-io]
numerica = { path = "lib/numerica" }
graphica = { path = "lib/graphica" }