[package] authors = ["Ben Ruijl "] build = "build.rs" categories = ["science"] description = "A blazing fast computer algebra system" edition = "2021" keywords = ["algebra", "symbolic", "manipulation", "mathematics", "physics"] license-file = "License.md" name = "symbolica" readme = "Readme.md" repository = "https://github.com/benruijl/symbolica" rust-version = "1.73" version = "0.13.0" [profile.release] codegen-units = 1 lto = true [profile.dev-optim] inherits = "dev" opt-level = 3 [lib] crate-type = ["lib"] name = "symbolica" [features] default = [] # if using this, make sure jemalloc is compiled with --disable-initial-exec-tls # if symbolica is used as a dynamic library (as is the case for the Python API) faster_alloc = ["tikv-jemallocator"] # sort functions based on an argument-by-argument comparison full_fn_cmp = [] mathematica_api = ["wolfram-library-link"] python_api = ["pyo3", "bincode"] # do not create a Python module but allow other crates to do so python_no_module = ["python_api"] # build a module that is independent of the specific Python version python_abi3 = ["pyo3/abi3", "pyo3/abi3-py37"] [dependencies.pyo3] features = ["extension-module", "abi3", "py-clone"] optional = true version = "0.22" [dev-dependencies] tracing-subscriber = {version = "0.3.18", features = ["env-filter"]} [dependencies] ahash = "0.8.7" append-only-vec = "0.1" bincode = {version = "1.3", optional = true} brotli = "5.0" byteorder = "1.5" bytes = "1.5" colored = "2.1" dyn-clone = "1.0" libloading = "0.8.4" once_cell = "1.19" rand = "0.8.5" rand_xoshiro = "0.6" rayon = "1.8" rug = "=1.25.0" self_cell = "1.0" serde = {version = "1.0", features = ["derive"]} smallvec = "1.13" smartstring = "1.0" tikv-jemallocator = {version = "0.5.4", optional = true} tinyjson = "2.5" tracing = {version = "0.1", features = ["max_level_trace", "release_max_level_warn"]} wide = "0.7" wolfram-library-link = {version = "0.2.9", optional = true}