[package]
name = "rapier2d"
version = "0.22.0"
authors = ["Sébastien Crozet <sebcrozet@dimforge.com>"]
description = "2-dimensional physics engine in Rust."
documentation = "https://docs.rs/rapier2d"
homepage = "https://rapier.rs"
repository = "https://github.com/dimforge/rapier"
readme = "README.md"
categories = [
    "science",
    "game-development",
    "mathematics",
    "simulation",
    "wasm",
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"

[badges]
maintenance = { status = "actively-developed" }

[lints]
rust.unexpected_cfgs = { level = "warn", check-cfg = [
    'cfg(feature, values("dim3", "f64"))',
] }

[features]
default = ["dim2", "f32"]
dim2 = []
f32 = []
parallel = ["dep:rayon"]
simd-stable = ["simba/wide", "simd-is-enabled"]
simd-nightly = ["simba/portable_simd", "simd-is-enabled"]
# Do not enable this feature directly. It is automatically
# enabled with the "simd-stable" or "simd-nightly" feature.
simd-is-enabled = ["dep:vec_map"]
serde-serialize = [
    "nalgebra/serde-serialize",
    "parry2d/serde-serialize",
    "dep:serde",
    "bit-vec/serde",
    "arrayvec/serde",
]
enhanced-determinism = ["simba/libm_force", "parry2d/enhanced-determinism"]
debug-render = []
profiler = ["dep:web-time"] # Enables the internal profiler.

# Feature used for debugging only.
debug-disable-legitimate-fe-exceptions = []

# Feature used for development and debugging only.
# Do not enable this unless you are working on the engine internals.
dev-remove-slow-accessors = []

[package.metadata.docs.rs]
features = ["parallel", "simd-stable", "serde-serialize", "debug-render"]

[lib]
name = "rapier2d"
path = "../../src/lib.rs"
required-features = ["dim2", "f32"]


[dependencies]
vec_map = { version = "0.8", optional = true }
web-time = { version = "1.1", optional = true }
num-traits = "0.2"
nalgebra = "0.33"
parry2d = "0.18.0"
simba = "0.9"
approx = "0.5"
rayon = { version = "1", optional = true }
crossbeam = "0.8"
arrayvec = "0.7"
bit-vec = "0.7"
rustc-hash = "2"
serde = { version = "1", features = ["derive"], optional = true }
downcast-rs = "1.2"
num-derive = "0.4"
bitflags = "2"
log = "0.4"
ordered-float = "4"
thiserror = "1"
profiling = "1.0"

[dev-dependencies]
bincode = "1"
serde_json = "1"
serde = { version = "1", features = ["derive"] }
oorandom = { version = "11", default-features = false }
