[package]
edition = "2024"
rust-version = "1.86"
name = "rapier2d"
version = "0.35.0"
authors = ["Sébastien Crozet <sebcrozet@dimforge.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "2-dimensional physics engine in Rust."
homepage = "https://rapier.rs"
documentation = "https://docs.rs/rapier2d"
readme = "README.md"
keywords = [
"physics",
"dynamics",
"rigid",
"real-time",
"impulse_joints",
]
categories = [
"science",
"game-development",
"mathematics",
"simulation",
"wasm",
]
license = "Apache-2.0"
repository = "https://github.com/dimforge/rapier"
resolver = "2"
[package.metadata.docs.rs]
features = [
"parallel",
"serde-serialize",
"debug-render",
]
[badges.maintenance]
status = "actively-developed"
[features]
alloc = [
"nalgebra/alloc",
"parry2d/alloc",
"serde?/alloc",
]
block-solver = []
bytemuck = ["dep:bytemuck"]
debug-disable-legitimate-fe-exceptions = []
debug-render = []
default = [
"dim2",
"f32",
"std",
"block-solver",
]
dev-remove-slow-accessors = []
dim2 = []
enhanced-determinism = [
"simba/libm_force",
"parry2d/enhanced-determinism",
]
f32 = []
parallel = [
"dep:rayon",
"std",
"parry2d/parallel",
]
profiler = ["dep:web-time"]
serde-serialize = [
"arrayvec/serde",
"nalgebra/serde-serialize",
"parry2d/serde-serialize",
"dep:serde",
"std",
]
simd8 = ["parry2d/simd8"]
solver-bounds-checks = []
std = [
"alloc",
"parry2d/std",
"nalgebra/std",
"simba/std",
"num-traits/std",
"approx/std",
"thiserror/std",
"wide/std",
"serde?/std",
]
unsync-callbacks = []
[lib]
name = "rapier2d"
path = "src/lib.rs"
doctest = false
required-features = [
"dim2",
"f32",
]
[[test]]
name = "ccd_default_vs_fixed"
path = "tests/ccd_default_vs_fixed.rs"
[[test]]
name = "ccd_oriented_wall"
path = "tests/ccd_oriented_wall.rs"
[[test]]
name = "ccd_semantics"
path = "tests/ccd_semantics.rs"
[[test]]
name = "heightfield_solver_graph"
path = "tests/heightfield_solver_graph.rs"
[[test]]
name = "issue_258_sleeping_jointed_to_fixed"
path = "tests/issue_258_sleeping_jointed_to_fixed.rs"
[[test]]
name = "issue_288_collision_groups_broad_phase"
path = "tests/issue_288_collision_groups_broad_phase.rs"
[[test]]
name = "issue_448_manual_sleep_honored"
path = "tests/issue_448_manual_sleep_honored.rs"
[[test]]
name = "issue_477_body_type_toggle_stress"
path = "tests/issue_477_body_type_toggle_stress.rs"
[[test]]
name = "issue_499_angular_limits"
path = "tests/issue_499_angular_limits.rs"
[[test]]
name = "issue_593_mass_collider_removal"
path = "tests/issue_593_mass_collider_removal.rs"
[[test]]
name = "issue_629_large_ground_stability"
path = "tests/issue_629_large_ground_stability.rs"
[[test]]
name = "issue_634_round_triangle_debug_render"
path = "tests/issue_634_round_triangle_debug_render.rs"
[[test]]
name = "issue_643_polyline_corner_stuck"
path = "tests/issue_643_polyline_corner_stuck.rs"
[[test]]
name = "issue_662_collision_pipeline_modified_bodies"
path = "tests/issue_662_collision_pipeline_modified_bodies.rs"
[[test]]
name = "issue_669_polyline_ghost_collisions"
path = "tests/issue_669_polyline_ghost_collisions.rs"
[[test]]
name = "issue_718_contact_reporting_feature_churn"
path = "tests/issue_718_contact_reporting_feature_churn.rs"
[[test]]
name = "issue_752_oneway_platform_normal"
path = "tests/issue_752_oneway_platform_normal.rs"
[[test]]
name = "issue_772_pin_slot_joint"
path = "tests/issue_772_pin_slot_joint.rs"
[[test]]
name = "issue_783_disable_and_remove_bodies"
path = "tests/issue_783_disable_and_remove_bodies.rs"
[[test]]
name = "issue_798_empty_polyline"
path = "tests/issue_798_empty_polyline.rs"
[[test]]
name = "issue_818_nan_tangent_impulse"
path = "tests/issue_818_nan_tangent_impulse.rs"
[[test]]
name = "issue_858_set_fixed_with_joint"
path = "tests/issue_858_set_fixed_with_joint.rs"
[[test]]
name = "issue_866_joints_between_parallel"
path = "tests/issue_866_joints_between_parallel.rs"
[[test]]
name = "issue_918_joint_sleep_wake_stress"
path = "tests/issue_918_joint_sleep_wake_stress.rs"
[[test]]
name = "issue_919_prediction_distance_restitution"
path = "tests/issue_919_prediction_distance_restitution.rs"
[[test]]
name = "issue_949_coupled_linear_accel_motor"
path = "tests/issue_949_coupled_linear_accel_motor.rs"
[[test]]
name = "issue_952_simd_joint_offset_com"
path = "tests/issue_952_simd_joint_offset_com.rs"
[[test]]
name = "joint_assembly_persistence"
path = "tests/joint_assembly_persistence.rs"
[[test]]
name = "joint_contact_solve_order"
path = "tests/joint_contact_solve_order.rs"
[[test]]
name = "joint_stability"
path = "tests/joint_stability.rs"
[[test]]
name = "miri_scenes"
path = "tests/miri_scenes.rs"
[[test]]
name = "snapshot_portability"
path = "tests/snapshot_portability.rs"
[[test]]
name = "snapshot_roundtrip"
path = "tests/snapshot_roundtrip.rs"
[[test]]
name = "speed_cap"
path = "tests/speed_cap.rs"
[[test]]
name = "spinner_containment"
path = "tests/spinner_containment.rs"
[dependencies.approx]
version = "0.5"
default-features = false
[dependencies.arrayvec]
version = "0.7"
default-features = false
[dependencies.bitflags]
version = "2"
[dependencies.bytemuck]
version = "1"
features = ["derive"]
optional = true
[dependencies.glamx]
version = "0.3"
default-features = false
[dependencies.log]
version = "0.4"
[dependencies.num-traits]
version = "0.2"
default-features = false
[dependencies.parry2d]
version = "0.30.2"
features = ["required-features"]
default-features = false
[dependencies.profiling]
version = "1.0"
[dependencies.rayon]
version = "1"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
default-features = false
[dependencies.simba]
version = "0.10.2"
features = ["wide"]
default-features = false
[dependencies.static_assertions]
version = "1"
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.web-time]
version = "1.1"
optional = true
[dependencies.wide]
version = "1"
default-features = false
[dev-dependencies.bincode]
version = "1"
[dev-dependencies.oorandom]
version = "11"
default-features = false
[dev-dependencies.serde]
version = "1"
features = [
"derive",
"std",
]
default-features = false
[dev-dependencies.serde_json]
version = "1"
[target.'cfg(not(target_arch = "spirv"))'.dependencies.glamx]
version = "0.3"
features = ["nalgebra"]
default-features = false
[target.'cfg(not(target_arch = "spirv"))'.dependencies.nalgebra]
version = "0.35"
features = ["macros"]
default-features = false
[lints.clippy]
needless_lifetimes = "allow"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
'cfg(feature, values("dim3", "f64", "std", "alloc"))',
'cfg(target_arch, values("spirv"))',
]