[package]
edition = "2024"
rust-version = "1.87"
name = "factrs"
version = "0.3.0"
authors = [
"Easton Potokar",
"Taylor Pool",
]
build = false
exclude = ["examples/data/*"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Factor graph optimization for robotics"
readme = "README.md"
keywords = [
"nonlinear",
"optimization",
"robotics",
"estimation",
"SLAM",
]
categories = [
"science::robotics",
"mathematics",
]
license = "MIT"
repository = "https://github.com/rpl-cmu/factrs"
[package.metadata.docs.rs]
features = [
"serde",
"rerun",
]
rustdoc-args = [
"--cfg",
"docsrs",
"--html-in-header",
"assets/katex-header.html",
]
cargo-args = [
"-Zunstable-options",
"-Zrustdoc-scrape-examples",
]
[features]
f32 = []
fake_exp = []
left = []
rayon = ["faer/rayon"]
rerun = ["dep:rerun"]
serde = [
"dep:serde",
"dep:factrs-typetag",
"factrs-proc/serde",
"nalgebra/serde-serialize",
"indexmap/serde",
]
[lib]
name = "factrs"
path = "src/lib.rs"
[[example]]
name = "g2o"
path = "examples/g2o.rs"
[[example]]
name = "gps"
path = "examples/gps.rs"
[[example]]
name = "graph_viz"
path = "examples/graph_viz.rs"
[[example]]
name = "readme"
path = "examples/readme.rs"
[[example]]
name = "serde"
path = "examples/serde.rs"
doc-scrape-examples = true
required-features = ["serde"]
[[test]]
name = "custom_key"
path = "tests/custom_key.rs"
[[test]]
name = "custom_noise"
path = "tests/custom_noise.rs"
[[test]]
name = "custom_residual"
path = "tests/custom_residual.rs"
[[test]]
name = "custom_robust"
path = "tests/custom_robust.rs"
[[test]]
name = "custom_variable"
path = "tests/custom_variable.rs"
[[test]]
name = "serde"
path = "tests/serde.rs"
[dependencies.downcast-rs]
version = "2.0.1"
[dependencies.dyn-clone]
version = "1.0.17"
[dependencies.factrs-proc]
version = "0.3.0"
[dependencies.factrs-typetag]
version = "0.2.0"
optional = true
[dependencies.faer]
version = "0.23.2"
features = [
"std",
"sparse-linalg",
"npy",
]
default-features = false
[dependencies.faer-ext]
version = "0.7.1"
features = ["nalgebra"]
[dependencies.foldhash]
version = "0.2.0"
[dependencies.indexmap]
version = "2.9.0"
default-features = false
[dependencies.log]
version = "0.4.22"
[dependencies.matrixcompare]
version = "0.3.0"
[dependencies.nalgebra]
version = "0.34.1"
features = ["compare"]
[dependencies.num-dual]
version = "0.13.1"
[dependencies.pad-adapter]
version = "0.1.1"
[dependencies.paste]
version = "1.0.15"
[dependencies.rerun]
version = "0.28.1"
features = ["sdk"]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.217"
optional = true
[dependencies.simba]
version = "0.9.0"
default-features = false
[dependencies.statrs]
version = "0.18.0"
default-features = false
[dev-dependencies.matrixcompare]
version = "0.3.0"
[dev-dependencies.nalgebra]
version = "0.34.1"
features = ["compare"]
[dev-dependencies.pretty_env_logger]
version = "0.5.0"
[dev-dependencies.serde_json]
version = "1.0.135"
[profile.bench]
lto = true
[profile.dev.package.faer]
opt-level = 3
[profile.profile]
debug = 2
inherits = "bench"