copp 0.2.2

Convex-objective path parameterization for robotic trajectory planning.
Documentation
[package]
name = "copp"
version = "0.2.2"
edition = "2024"
rust-version = "1.88"
description = "Convex-objective path parameterization for robotic trajectory planning."
license = "MIT"
repository = "https://github.com/TOPP-THU/copp"
readme = "README.md"
categories = ["science::robotics", "algorithms", "mathematics", "simulation"]
keywords = [
    "trajectory-planning",
    "jerk-limited",
    "motion-planning",
    "convex-optimization",
    "time-optimal",
]
exclude = ["data/**", "target/**", "bindings/python/**/*.pdb"]

[lib]
name = "copp"
crate-type = ["rlib", "cdylib", "staticlib"]

[features]
default = []
python = ["dep:numpy", "dep:pyo3"]
c = []
cpp = ["dep:cxx", "dep:cxx-build"]
# Public MATLAB build alias; the MEX gateway currently links through the C ABI.
matlab = ["c"]


[dependencies]
nalgebra = { version = "0.34.1", features = ["serde-serialize"] }
clarabel = "0.11.1"
thiserror = "2.0.18"
itertools = "0.14.0"
chrono = "0.4.44"
serde = { version = "1.0", features = ["derive"] }
rayon = "1.12.0"
log = "0.4.30"
cxx = { version = "1.0", optional = true }
numpy = { version = "0.28.0", optional = true, features = ["nalgebra"] }
pyo3 = { version = "0.28.3", optional = true }

[build-dependencies]
cxx-build = { version = "1.0", optional = true }

[dev-dependencies]
rand = "0.10.1"
plotters = "0.3.7"
csv = "1.4.0"
rkyv = { version = "0.7.46", default-features = false, features = [
    "std",
    "validation",
    "size_64",
] }
memmap2 = "0.9.10"
env_logger = "0.11.8"

# Only use for the final release.
# [profile.release]
# opt-level = 3
# codegen-units = 1
# lto = "fat"

[package.metadata.docs.rs]
# The following line adds MathJax support for rendering mathematical equations in documentation.
# Run `cargo doc` to generate the documentation with MathJax.
rustdoc-args = ["--html-in-header", "mathjax-config.html"]