[package]
edition = "2021"
rust-version = "1.67.1"
name = "rust_decimal"
version = "1.41.0"
authors = ["Paul Mason <paul@form1.co.nz>"]
build = "build.rs"
exclude = ["tests/generated/*"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Decimal number implementation written in pure Rust suitable for financial and fixed-precision calculations."
documentation = "https://docs.rs/rust_decimal/"
readme = "README.md"
keywords = [
"decimal",
"financial",
"fixed",
"precision",
"number",
]
categories = [
"science",
"mathematics",
"data-structures",
]
license = "MIT"
repository = "https://github.com/paupino/rust-decimal"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
targets = [
"x86_64-unknown-linux-gnu",
"wasm32-unknown-unknown",
]
[features]
align16 = []
borsh = [
"dep:borsh",
"std",
]
bytemuck = [
"c-repr",
"dep:bytemuck",
"dep:bytemuck_derive",
]
c-repr = []
db-diesel-mysql = [
"diesel/mysql_backend",
"std",
]
db-diesel-postgres = [
"diesel/postgres_backend",
"std",
]
db-diesel2-mysql = ["db-diesel-mysql"]
db-diesel2-postgres = ["db-diesel-postgres"]
db-postgres = [
"dep:bytes",
"dep:postgres-types",
"std",
]
db-tokio-postgres = [
"dep:bytes",
"dep:postgres-types",
"std",
]
default = [
"serde",
"std",
]
legacy-ops = []
macros = ["dep:rust_decimal_macros"]
maths = []
maths-nopanic = ["maths"]
ndarray = ["dep:ndarray"]
proptest = ["dep:proptest"]
rand = ["dep:rand"]
rkyv = ["dep:rkyv"]
rkyv-safe = ["rkyv/validation"]
rocket-traits = [
"dep:rocket",
"std",
]
rust-fuzz = ["dep:arbitrary"]
serde = [
"dep:serde",
"wasm-bindgen?/serde",
]
serde-arbitrary-precision = ["serde-with-arbitrary-precision"]
serde-bincode = ["serde-str"]
serde-float = ["serde-with-float"]
serde-str = ["serde-with-str"]
serde-with-arbitrary-precision = [
"serde",
"serde_json/arbitrary_precision",
"serde_json/std",
"zmij",
]
serde-with-float = ["serde"]
serde-with-str = ["serde"]
std = [
"arrayvec/std",
"wasm-bindgen?/std",
"borsh?/std",
"bytes?/std",
"rand?/std",
"rkyv?/std",
"serde?/std",
"serde_json?/std",
]
tokio-pg = ["db-tokio-postgres"]
wasm = ["dep:wasm-bindgen"]
[lib]
name = "rust_decimal"
path = "src/lib.rs"
[[example]]
name = "rkyv-remote"
path = "examples/rkyv-remote.rs"
required-features = ["macros"]
[[test]]
name = "decimal_tests"
path = "tests/decimal_tests.rs"
[[test]]
name = "macros"
path = "tests/macros.rs"
[[test]]
name = "version-numbers"
path = "tests/version-numbers.rs"
[[test]]
name = "wasm"
path = "tests/wasm.rs"
[[bench]]
name = "comparison"
path = "benches/comparison.rs"
harness = false
[[bench]]
name = "lib_benches"
path = "benches/lib_benches.rs"
[dependencies.arbitrary]
version = "1.0"
optional = true
default-features = false
[dependencies.arrayvec]
version = "0.7"
default-features = false
[dependencies.borsh]
version = "1.1.1"
features = [
"derive",
"unstable__schema",
]
optional = true
default-features = false
[dependencies.bytemuck]
version = "1.17.1"
optional = true
default-features = false
[dependencies.bytemuck_derive]
version = "1.7.1"
optional = true
default-features = false
[dependencies.bytes]
version = "1.0"
optional = true
default-features = false
[dependencies.diesel]
version = "2.2.3"
optional = true
default-features = false
[dependencies.ndarray]
version = "0.15.6"
optional = true
default-features = false
[dependencies.num-traits]
version = "0.2"
features = ["i128"]
default-features = false
[dependencies.postgres-types]
version = "0.2"
optional = true
default-features = false
[dependencies.proptest]
version = "1.0"
features = ["std"]
optional = true
default-features = false
[dependencies.rand]
version = "0.8"
optional = true
default-features = false
[dependencies.rand-0_9]
version = "0.9"
optional = true
default-features = false
package = "rand"
[dependencies.rkyv]
version = "0.7.46"
features = [
"size_32",
"std",
]
optional = true
default-features = false
[dependencies.rocket]
version = "0.5.0-rc.3"
optional = true
default-features = false
[dependencies.rust_decimal_macros]
version = "1"
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
optional = true
default-features = false
[dependencies.serde_json]
version = "1.0"
optional = true
default-features = false
[dependencies.tokio-postgres]
version = "0.7"
optional = true
default-features = false
[dependencies.zmij]
version = "1.0"
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.5"
default-features = false
[dev-dependencies.csv]
version = "1"
[dev-dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.version-sync]
version = "0.9"
features = [
"html_root_url_updated",
"markdown_deps_updated",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.bincode]
version = "1.0"
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.bytes]
version = "1.0"
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.diesel]
version = "2.2.3"
features = [
"mysql",
"postgres",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.futures]
version = "0.3"
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.postgres]
version = "0.19"
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rand]
version = "0.8"
features = ["getrandom"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rand-0_9]
version = "0.9"
features = ["thread_rng"]
default-features = false
package = "rand"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rkyv-0_8]
version = "0.8.13"
package = "rkyv"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio]
version = "1.0"
features = [
"macros",
"rt-multi-thread",
"test-util",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio-postgres]
version = "0.7"
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen]
version = "0.2"
default-features = false
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3"