[package] name = "factrs" version = "0.1.0" edition = "2021" license = "MIT" description = "Factor graph optimization for robotics" readme = "README.md" authors = ["Easton Potokar", "Taylor Pool"] repository = "https://github.com/rpl-cmu/factrs" keywords = ["nonlinear", "optimization", "robotics", "estimation", "SLAM"] categories = ["science::robotics", "mathematics"] [package.metadata.docs.rs] rustdoc-args = ["--html-in-header", "assets/katex-header.html"] [dependencies] # base ahash = "0.8.11" derive_more = "0.99.17" paste = "1.0.15" downcast-rs = "1.2.1" log = "0.4.21" # numerical faer = { version = "0.19.0", default-features = false, features = [ "perf-warn", "std", "matrixcompare", ] } faer-ext = { version = "0.2.0", features = ["nalgebra"] } nalgebra = { version = "0.32.5", features = ["compare"] } num-dual = "0.9.1" matrixcompare = { version = "0.1" } # serialization serde = { version = "1.0.203", optional = true } typetag = { version = "0.2.16", optional = true } serde_json = { version = "1.0.120", optional = true } # rerun support rerun = { version = "0.18", optional = true, default-features = false, features = [ "sdk", ] } [features] # Run everything with f32 instead of the default f64 f32 = [] # Use left instead of right for lie group updates left = [] # use SO(n) x R instead of SE(n) for exponential map fake_exp = [] # Add multithreaded support (may run slower on smaller problems) rayon = ["faer/rayon"] # Add support for serialization serde = [ "dep:serde", "dep:typetag", "nalgebra/serde-serialize", "faer/serde", "ahash/serde", ] # just used for examples serde_json = ["dep:serde_json"] # Support for conversion to rerun variable types rerun = ["dep:rerun"] [dev-dependencies] matrixcompare = "0.3.0" pretty_env_logger = "0.4" nalgebra = { version = "0.32.5", features = ["compare"] } [[example]] name = "g2o" [[example]] name = "g2o-rerun" required-features = ["rerun"] [[example]] name = "serde" required-features = ["serde", "serde_json"]