mavio 0.2.6

Minimalistic MAVLink client that supports `no-std` and `no-alloc` targets.
Documentation
[package]
name = "mavio"
description = "Minimalistic MAVLink client that supports `no-std` and `no-alloc` targets."
version = "0.2.6"
edition = "2021"
authors = ["Mykhailo Ziatin <ziatin@mathwithoutend.org>"]
repository = "https://gitlab.com/mavka/libs/mavio"
readme = "../README.md"
license = "MIT OR Apache-2.0"
homepage = "https://mavka.gitlab.io/home/projects/mavio"
keywords = ["MAVLink", "UAV", "drones"]
categories = [
    "aerospace::protocols",
    "aerospace::drones",
    "aerospace::unmanned-aerial-vehicles",
    "no-std",
    "no-std::no-alloc",
]
resolver = "2"
include = [
    "message_definitions",
    "src",
    "build.rs",
    "Cargo.toml"
]

[lib]
name = "mavio"
path = "src/lib.rs"

###########################################################
# Dependencies
###########################################################
[dependencies]
bitflags = { version = "2.5.0", default-features = false }
crc-any = { version = "2.4.4", default-features = false }
mavspec = { version = "0.3.4", default-features = false, features = ["rust"] }
paste = "1.0.14"
serde = { version = "1.0.197", default-features = false, features = ["derive"], optional = true }
serde_arrays = { version = "0.1.0", default-features = false, optional = true }
sha2 = { version = "0.10.8", default-features = false, optional = true }
tbytes = { version = "0.1.0", default-features = false }
thiserror = { version = "1.0.58", optional = true }
tokio = { version = "1.36.0", features = ["io-util"], optional = true }

[dev-dependencies]
log = "0.4.21"
env_logger = "0.11.3"
portpicker = "0.1.1"

[build-dependencies]
mavspec = { version = "0.3.4", default-features = false, features = ["rust_gen", "fingerprints"] }

###########################################################
# Features
###########################################################
[features]
## Default features.
default = []
## Enable unstable API features.
unstable = []
## Additional auxilary tools.
extras = []
## Unsafe features, that allow access to internal state of the entities.
unsafe = []

## Enable memory allocation support.
alloc = [
    "mavspec/alloc",
    "serde/alloc",
    "tbytes/alloc",
]
## Enable Rust std library.
std = [
    "alloc",
    "mavspec/std",
    "serde/std",
    "sha2/std",
    "tbytes/std",
    "thiserror",
    "bitflags/std"
]

## Enable sha2 backend for message signing
sha2 = ["dep:sha2"]

## Enable serde support.
serde = [
    "dep:serde",
    "dep:serde_arrays",
    "mavspec/serde",
    "bitflags/serde",
]
## Enable tokio (async) support
async = ["dep:tokio", "std"]

###########################################################
# Dialects
###########################################################
## Include `ardupilotmega` dialect
ardupilotmega = ["common"]
## Include `ASLUAV` dialect
asluav = ["common"]
## Include `AVSSUAS` dialect
avssuas = ["common"]
## Include `common` dialect
common = ["minimal"]
## Include `csAirLink` dialect
cs_air_link = []
## Include `cubepilot` dialect
cubepilot = ["common"]
## Include `development` dialect
development = ["common"]
## Include `icarous` dialect
icarous = []
## Include `matrixpilot` dialect
matrixpilot = ["common"]
## Include `minimal` dialect
minimal = []
## Include `paparazzi` dialect
paparazzi = ["common"]
## Include `standard` dialect
standard = ["minimal"]
## Include `ualberta` dialect
ualberta = ["common"]
## Include `uAvionix` dialect
uavionix = ["common"]

## Include `all` meta-dialect
all = [
    "ardupilotmega",
    "common",
    "asluav",
    "avssuas",
    "cs_air_link",
    "cubepilot",
    "development",
    "icarous",
    "matrixpilot",
    "minimal",
    "paparazzi",
    "standard",
    "ualberta",
    "uavionix",
]

###########################################################
# Metadata
###########################################################
[package.metadata.docs.rs]
# Features to include into `docs.rs` documentation
features = ["serde", "all", "unstable", "unsafe", "extras", "std", "async", "sha2"]