[package]
edition = "2024"
rust-version = "1.89.0"
name = "rssn"
version = "0.2.4"
authors = ["The rssn developers"]
build = "build.rs"
exclude = [
"examples/*",
"tests/*",
"benches/*",
"doc/*",
".gitea/*",
".github/*",
".vscode/*",
".idea/*",
"*.sh",
"*.bat",
"scripts/*",
"docs/*",
"certificates/*",
"rssn.h",
"rssn.hpp",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A comprehensive scientific computing library for Rust, aiming for feature parity with NumPy and SymPy."
homepage = "https://github.com/Apich-Organization/rssn"
readme = "README.md"
keywords = [
"scientific-computing",
"symbolic-math",
"numerical-analysis",
"physics-simulation",
"optimization",
]
categories = [
"science",
"mathematics",
"data-structures",
"simulation",
"algorithms",
]
license = "Apache-2.0"
repository = "https://github.com/Apich-Organization/rssn"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--html-in-header",
"doc-header.html",
]
[features]
compute = []
default = []
experimental = [
"ffi_blinding",
"jit",
"dep:pulp",
"dep:simba",
]
ffi_api = []
ffi_blinding = ["dep:libc"]
full = [
"default",
"output",
"physics",
"plugins",
"compute",
"ffi_blinding",
"jit",
"input",
"experimental",
]
input = ["dep:nom"]
jit = [
"dep:cranelift-codegen",
"dep:cranelift-frontend",
"dep:cranelift-jit",
"dep:cranelift-module",
"dep:cranelift-native",
]
nightly = ["dep:pulp"]
output = [
"dep:plotters",
"dep:ndarray-npy",
]
physics = []
plugins = [
"dep:libloading",
"dep:abi_stable",
]
[lib]
name = "rssn"
crate-type = [
"cdylib",
"rlib",
"staticlib",
]
path = "src/lib.rs"
[dependencies.abi_stable]
version = "0.11"
optional = true
[dependencies.ahash]
version = "0.8"
features = ["serde"]
[dependencies.argmin]
version = "0.11"
features = [
"serde",
"serde1",
]
[dependencies.argmin-math]
version = "0.5"
features = [
"ndarray_latest-nolinalg",
"nalgebra_latest",
]
[dependencies.bigdecimal]
version = "0.4"
features = ["serde"]
[dependencies.bincode-next]
version = "2.0"
features = ["serde"]
[dependencies.cranelift-codegen]
version = "0.127"
optional = true
[dependencies.cranelift-frontend]
version = "0.127"
optional = true
[dependencies.cranelift-jit]
version = "0.127"
optional = true
[dependencies.cranelift-module]
version = "0.127"
optional = true
[dependencies.cranelift-native]
version = "0.127"
optional = true
[dependencies.dashmap]
version = "6"
[dependencies.errorfunctions]
version = "0.2"
[dependencies.faer]
version = "0.23"
[dependencies.instability]
version = "0.3"
[dependencies.interp]
version = "2.1"
[dependencies.itertools]
version = "0.14"
[dependencies.lazy_static]
version = "1.5"
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.libloading]
version = "0.9"
optional = true
[dependencies.nalgebra]
version = "0.34"
features = ["serde-serialize"]
[dependencies.ndarray]
version = "0.16"
features = ["serde"]
[dependencies.ndarray-npy]
version = "0.9"
optional = true
[dependencies.nom]
version = "8.0"
optional = true
[dependencies.num-bigint]
version = "0.4"
features = [
"serde",
"rand",
]
[dependencies.num-complex]
version = "0.4"
features = ["serde"]
[dependencies.num-rational]
version = "0.4"
features = ["serde"]
[dependencies.num-traits]
version = "0.2"
[dependencies.once_cell]
version = "1.21"
[dependencies.ordered-float]
version = "5.1"
features = ["serde"]
[dependencies.plotters]
version = "0.3"
features = [
"image",
"chrono",
"ttf",
"font-kit",
"evcxr",
]
optional = true
[dependencies.pulp]
version = "0.22"
features = [
"macro",
"x86-v4",
"nightly",
]
optional = true
[dependencies.quadrature]
version = "0.1"
[dependencies.rand]
version = "0.8.5"
[dependencies.rand_v09]
version = "0.9.2"
package = "rand"
[dependencies.rayon]
version = "1.11"
[dependencies.rustfft]
version = "6.4"
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0"
[dependencies.simba]
version = "0.9"
features = [
"libm",
"cordic",
"decimal",
"rand",
]
optional = true
[dependencies.special]
version = "0.12"
[dependencies.sprs-rssn]
version = "0.11"
[dependencies.statrs]
version = "0.18"
[dependencies.uom]
version = "0.37"
features = [
"use_serde",
"num-bigint",
"std",
"usize",
"si",
]
[dependencies.uuid]
version = "1.19"
features = ["v4"]
[dev-dependencies.assert_approx_eq]
version = "1.1"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.9"
[build-dependencies.cbindgen]
version = "0.29"
[build-dependencies.vergen]
version = "9"
features = [
"build",
"cargo",
"cargo_metadata",
"emit_and_set",
"regex",
"rustc",
"rustc_version",
"si",
"sysinfo",
"time",
]
[build-dependencies.vergen-gitcl]
version = "9"
features = [
"build",
"cargo",
"emit_and_set",
"rustc",
"si",
]
[lints.clippy]
empty-line-after-doc-comments = "allow"
[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = ["cfg(has_foo)"]
[profile.dev]
opt-level = 0
lto = false
debug = 2
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 0
debug-assertions = false
panic = "abort"
overflow-checks = false
incremental = true
strip = true