optimization_engine 0.7.6

A pure Rust framework for embedded nonconvex optimization. Ideal for robotics!
Documentation
# --------------------------------------------------------------------------
# P.A.C.K.A.G.E.  I.N.F.O
# --------------------------------------------------------------------------
[package]
# Authors of this package
authors = [
    "Emil Fresk <emil.fresk@gmail.com>",
    "Pantelis Sopasakis (https://alphaville.github.io)",
]

# Crate categories (chosed from a list of valid categories at https://crates.io/categories)
categories = [
    "embedded",
    "algorithms",
    "science::robotics",
    "development-tools",
    "simulation",
]

# Keywords
keywords = ["embedded", "optimization", "solver", "NMPC", "MPC"]

# Short description
description = "A pure Rust framework for embedded nonconvex optimization. Ideal for robotics!"

# This is the API documentation
documentation = "https://docs.rs/optimization_engine"

# Licenses
license = "MIT OR Apache-2.0"

# README file
readme = "README.md"

# Name of this crate
name = "optimization_engine"

# Homepage
homepage = "https://alphaville.github.io/optimization-engine/"

# Link to github repo
repository = "https://github.com/alphaville/optimization-engine"

# Version of this crate (SemVer)
version = "0.7.6"

edition = "2018"

# change this to `true` if you want to publish the crate; this is done as a
# safety measure. Before you publish, make sure that:
# - You have updated the version (SemVer)
# - You have updated the documentation
# - You have checked the exclude list below
# - All tests pass
#After you publish:
# - Update the webpage (e.g., make a blog post)
publish = true

exclude = [
    "design/*",
    "docs/*",
    "icasadi/*",
    "matlab/*",
    "open-clib/*",
    "open-codegen/*",
    "website/*",
]

# --------------------------------------------------------------------------
# D.O.C.S
# --------------------------------------------------------------------------
[package.metadata.docs.rs]
rustdoc-args = ["--html-in-header", "katex-header.html"]


# --------------------------------------------------------------------------
# D.E.P.E.N.D.E.N.C.I.E.S
# --------------------------------------------------------------------------
[dependencies]
num = "0.4.0"

# Our own stuff - L-BFGS: limited-memory BFGS directions
lbfgs = "0.2"

# Instant is a generic timer that works on Wasm (with wasm-bindgen)
instant = { version = "0.1" }

# Wasm-bindgen is only activated if OpEn is compiled with `--features wasm`
wasm-bindgen = { version = "0.2.74", optional = true }

# sc-allocator provides an implementation of a bump allocator
rpmalloc = { version = "0.2.0", features = [
    "guards",
    "statistics",
], optional = true }

# jemallocator is an optional feature; it will only be loaded if the feature 
# `jem` is used (i.e., if we compile with `cargo build --features jem`)
[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemallocator = { version = "0.5.0", optional = true }


# --------------------------------------------------------------------------
# F.E.A.T.U.R.E.S.
# --------------------------------------------------------------------------
[features]
# Use `jemallocator` as a global memory allocator (requires the dependency 
# `jemallocator` - see above)
jem = ["jemallocator"]

# RPMalloc
rp = ["rpmalloc"]

# WebAssembly
wasm = ["wasm-bindgen", "instant/wasm-bindgen", "instant/inaccurate"]

# --------------------------------------------------------------------------
# T.E.S.T.   D.E.P.E.N.D.E.N.C.I.E.S
# --------------------------------------------------------------------------
# These dependencies are only used for testing
[dev-dependencies]
unit_test_utils = "0.1.3"
# Note: path dependencies (even dev-dependencies) cannot be local in order
#       to publish a crate, so the following line can only be used when
#       testing locally
# icasadi_test = { path = "test/icasadi_test/" }
#       instead, use:
icasadi_test = "0.0.2"
# Random number generators for unit tests:
rand = "0.8"


# --------------------------------------------------------------------------
# B.A.D.G.E.S.
# --------------------------------------------------------------------------
[badges]
# Travis "build-passing" badge
travis-ci = { repository = "alphaville/optimization-engine", branch = "master" }

# Actively maintained badge
maintenance = { status = "actively-developed" }