Cargo Features

MAVSpec has no features set by default.

[dependencies]
mavspec = { version = "0.6.4", features = ["alloc", "std", "metadata", "unstable", "rust", "specs", "rust_gen", "generators", "fingerprints", "serde", "specta", "definitions", "rust-dialects", "dlct-ardupilotmega", "dlct-asluav", "dlct-avssuas", "dlct-common", "dlct-cs_air_link", "dlct-cubepilot", "dlct-development", "dlct-icarous", "dlct-matrixpilot", "dlct-minimal", "dlct-paparazzi", "dlct-standard", "dlct-ualberta", "dlct-uavionix", "dlct-all", "extra-dialects", "test-dialects", "msrv-all", "msrv-heartbeat", "msrv-mission", "msrv-parameter", "msrv-parameter-ext", "msrv-command", "msrv-manual-control", "msrv-camera", "msrv-gimbal-v1", "msrv-gimbal-v2", "msrv-arm-auth", "msrv-image-transmission", "msrv-ftp", "msrv-landing-target", "msrv-ping", "msrv-path-planning", "msrv-battery", "msrv-terrain", "msrv-tunnel", "msrv-open-drone-id", "msrv-high-latency", "msrv-component-metadata", "msrv-payload", "msrv-traffic-management", "msrv-events-interface", "msrv-time-sync", "msrv-utils-all", "msrv-utils-mission", "cli", "msrv", "msrv-utils"] }

Features

default

==========================================================

Generic features

==========================================================

Default features (nothing is enabled)

alloc std?

Enable alloc support

Enables std of mavlink-dialects, alloc of mavspec_rust_spec

Affects mission_plan::MissionPlan

std rust_gen? = alloc

Enable standard library support

Enables thiserror, std of mavlink-dialects and mavspec_rust_spec and document-features

Documentation

metadata

Add additional metadata to MAVLink entities.

Enables metadata of mavlink-dialects

unstable

⚠️ Enables unstable API features.

Certain features won't take effect without this flag.

Unstable features will be marked with .

Enables unstable of mavspec_rust_gen and mavspec_rust_spec

mavspec_rust_gen:

Internal crates

Affects microservices::utils

rust rust-dialects? rust_gen? specs?

Enable Rust core interfaces

Enables mavspec_rust_derive and mavspec_rust_spec

Affects mavspec::rust

specs = rust

Enable all core interfaces

rust_gen generators? = rust, std

==========================================================

Code generation

========================================================== Features required for custom dialects generation.

Enable Rust code-generation tools

Enables mavspec_rust_gen

generators cli? = rust_gen

Enable all generators

fingerprints

Use protocol CRC-fingerprints to avoid re-generating files

Enables fingerprints of mavlink-dialects

serde

==========================================================

Serialization and reflection

========================================================== These features enable serde and specta support.

Enable serde support

Enables serde of mavlink-dialects and mavspec_rust_spec and serde and serde_arrays ^0.1.0

serde:

Required for dialect generation

specta

Enable specta support

Enables specta and specta-util, specta of mavlink-dialects and mavspec_rust_spec

definitions

==========================================================

========================================================== These features control whether and how MAVLink message definitions generated by MAVInspect will be bundled.

⚠️ While being useful for ground control stations, the generated definitions is quite large and may bloat the size of the binary.

Bundles MAVLink message definitions.

Message definitions will be generated only for bundled MAVLink dialects. Microservices will be ignored as they are just subsets of existing dialects.

Enables mavlink-message-definitions

MAVLink specification

rust-dialects msrv? msrv-utils? = rust

==========================================================

Dialects

========================================================== These features control which MAVLink dialects will be considered by MAVSpec.

Enabled dialects can be found under the rust::dialects module.

To enable standard MAVLink dialects as defined in XML message definitions, use dlct-* feature family.

In case you want to patch mavlink-message-definitions, you might be interested in enabling extra-dialects feature.

To bundle Rust bindings for MAVLink dialects, enable rust-dialects. No Rust bindings will be generated otherwise.

The dialect selection will also control which dialect definitions will be bundled if definitions feature is enabled.

Bundle MAVLink dialects

This feature does not generate any dialect by itself unless dlct-* of extra-dialects feature flags enabled.

Enables mavlink-dialects

Affects rust::microservices

dlct-ardupilotmega dlct-all? = dlct-common

Include ardupilotmega dialect

The dialect can be found in rust::dialects::ardupilotmega module.

Enables dlct-ardupilotmega of mavlink-dialects and mavlink-message-definitions

dlct-asluav dlct-all? = dlct-common

Include ASLUAV dialect

The dialect can be found in rust::dialects::asluav module.

Enables dlct-asluav of mavlink-dialects and mavlink-message-definitions

dlct-avssuas dlct-all? = dlct-common

Include AVSSUAS dialect

The dialect can be found in rust::dialects::avssuas module.

Enables dlct-avssuas of mavlink-dialects and mavlink-message-definitions

dlct-common dlct-all? dlct-ardupilotmega? dlct-asluav? dlct-avssuas? dlct-cubepilot? dlct-development? dlct-matrixpilot? dlct-paparazzi? dlct-ualberta? dlct-uavionix? msrv-arm-auth? msrv-battery? msrv-camera? msrv-command? msrv-component-metadata? msrv-events-interface? msrv-ftp? msrv-gimbal-v1? msrv-gimbal-v2? msrv-high-latency? msrv-image-transmission? msrv-landing-target? msrv-manual-control? msrv-mission? msrv-open-drone-id? msrv-parameter? msrv-parameter-ext? msrv-path-planning? msrv-payload? msrv-ping? msrv-terrain? msrv-time-sync? msrv-traffic-management? msrv-tunnel? msrv-utils-mission? = dlct-minimal

Include common dialect

The dialect can be found in rust::dialects::common module.

Enables dlct-common of mavlink-dialects and mavlink-message-definitions

Include csAirLink dialect

The dialect can be found in rust::dialects::cs_air_link module.

Enables dlct-cs_air_link of mavlink-dialects and mavlink-message-definitions

dlct-cubepilot dlct-all? = dlct-common

Include cubepilot dialect

The dialect can be found in rust::dialects::cubepilot module.

Enables dlct-cubepilot of mavlink-dialects and mavlink-message-definitions

dlct-development dlct-all? = dlct-common

Include development dialect

The dialect can be found in rust::dialects::development module.

Enables dlct-development of mavlink-dialects and mavlink-message-definitions

dlct-icarous dlct-all?

Include icarous dialect

The dialect can be found in rust::dialects::icarous module.

Enables dlct-icarous of mavlink-dialects and mavlink-message-definitions

dlct-matrixpilot dlct-all? = dlct-common

Include matrixpilot dialect

The dialect can be found in rust::dialects::matrixpilot module.

Enables dlct-matrixpilot of mavlink-dialects and mavlink-message-definitions

dlct-minimal dlct-all? dlct-common? dlct-standard? msrv-heartbeat? test-dialects?

Include minimal dialect

The dialect can be found in rust::dialects::minimal module.

Enables dlct-minimal of mavlink-dialects and mavlink-message-definitions

Affects rust::microservices

dlct-paparazzi dlct-all? = dlct-common

Include paparazzi dialect

The dialect can be found in rust::dialects::paparazzi module.

Enables dlct-paparazzi of mavlink-dialects and mavlink-message-definitions

dlct-standard dlct-all? = dlct-minimal

Include standard dialect

The dialect can be found in rust::dialects::standard module.

Enables dlct-standard of mavlink-dialects and mavlink-message-definitions

dlct-ualberta dlct-all? = dlct-common

Include ualberta dialect

The dialect can be found in rust::dialects::ualberta module.

Enables dlct-ualberta of mavlink-dialects and mavlink-message-definitions

dlct-uavionix dlct-all? = dlct-common

Include uAvionix dialect

The dialect can be found in rust::dialects::u_avionix module.

Enables dlct-uavionix of mavlink-dialects and mavlink-message-definitions

dlct-all = dlct-ardupilotmega, dlct-asluav, dlct-avssuas, dlct-common, dlct-cs_air_link, dlct-cubepilot, dlct-development, dlct-icarous, dlct-matrixpilot, dlct-minimal, dlct-paparazzi, dlct-standard, dlct-ualberta, dlct-uavionix

Include all meta-dialect

The dialect can be found in rust::dialects::all module.

Enables dlct-all of mavlink-dialects and mavlink-message-definitions

extra-dialects

Enables extra dialects

Downstream crates can patch mavlink-message-definitions adding extra MAVLink dialects.

Enables extra-dialects of mavlink-dialects and mavlink-message-definitions

test-dialects = dlct-minimal

Enables test dialects

These dialects are useful for checking various test cases.

Enables test-dialects of mavlink-dialects and mavlink-message-definitions

msrv-all = msrv-arm-auth, msrv-battery, msrv-camera, msrv-command, msrv-component-metadata, msrv-events-interface, msrv-ftp, msrv-gimbal-v1, msrv-gimbal-v2, msrv-heartbeat, msrv-high-latency, msrv-image-transmission, msrv-landing-target, msrv-manual-control, msrv-mission, msrv-open-drone-id, msrv-parameter, msrv-parameter-ext, msrv-path-planning, msrv-payload, msrv-ping, msrv-terrain, msrv-time-sync, msrv-traffic-management, msrv-tunnel

==========================================================

========================================================== These features will control generation of MAVLink microservice-specific bindings.

If enabled, microservices can be found in rust::microservices module.

Support for all MAVLink microservices

Enables msrv-all of mavlink-dialects

msrv-heartbeat msrv-all? = dlct-minimal, msrv

Heartbeat protocol support

This microservice can be found in rust::microservices::heartbeat module.

Enables msrv-heartbeat of mavlink-dialects

msrv-mission msrv-all? msrv-utils-mission? = dlct-common, msrv

Mission microservice support

This microservice can be found in rust::microservices::mission module.

Enables msrv-mission of mavlink-dialects

msrv-parameter msrv-all? = dlct-common, msrv

Parameter protocol support

This microservice can be found in rust::microservices::parameter module.

Enables msrv-parameter of mavlink-dialects

msrv-parameter-ext msrv-all? = dlct-common, msrv

Extended parameter protocol support

This microservice can be found in rust::microservices::parameter_ext module.

Enables msrv-parameter-ext of mavlink-dialects

msrv-command msrv-all? = dlct-common, msrv

Command protocol support

This microservice can be found in rust::microservices::command module.

Enables msrv-command of mavlink-dialects

msrv-manual-control msrv-all? = dlct-common, msrv

Manual control protocol support

This microservice can be found in rust::microservices::manual_control module.

Enables msrv-manual-control of mavlink-dialects

msrv-camera msrv-all? = dlct-common, msrv

Camera protocol v2 support

This microservice can be found in rust::microservices::camera module.

Enables msrv-camera of mavlink-dialects

msrv-gimbal-v1 msrv-all? = dlct-common, msrv

Gimbal protocol v1 support

This microservice can be found in rust::microservices::gimbal_v1 module.

Enables msrv-gimbal-v1 of mavlink-dialects

msrv-gimbal-v2 msrv-all? = dlct-common, msrv

Gimbal protocol v2 support

This microservice can be found in rust::microservices::gimbal_v2 module.

Enables msrv-gimbal-v2 of mavlink-dialects

msrv-arm-auth msrv-all? = dlct-common, msrv

Arm authorization protocol support

This microservice can be found in rust::microservices::arm_auth module.

Enables msrv-arm-auth of mavlink-dialects

msrv-image-transmission msrv-all? = dlct-common, msrv

Image transmission protocol support

This microservice can be found in rust::microservices::image_transmission module.

Enables msrv-image-transmission of mavlink-dialects

msrv-ftp msrv-all? = dlct-common, msrv

File transfer protocol support

This microservice can be found in rust::microservices::ftp module.

Enables msrv-ftp of mavlink-dialects

msrv-landing-target msrv-all? = dlct-common, msrv

Landing target protocol support

This microservice can be found in rust::microservices::landing_target module.

Enables msrv-landing-target of mavlink-dialects

msrv-ping msrv-all? = dlct-common, msrv

Ping protocol support

This microservice can be found in rust::microservices::ping module.

Enables msrv-ping of mavlink-dialects

msrv-path-planning msrv-all? = dlct-common, msrv

Path planning protocol support

This microservice can be found in rust::microservices::path_planning module.

Enables msrv-path-planning of mavlink-dialects

msrv-battery msrv-all? = dlct-common, msrv

Battery protocol support

This microservice can be found in rust::microservices::battery module.

Enables msrv-battery of mavlink-dialects

msrv-terrain msrv-all? = dlct-common, msrv

Terrain protocol support

This microservice can be found in rust::microservices::terrain module.

Enables msrv-terrain of mavlink-dialects

msrv-tunnel msrv-all? = dlct-common, msrv

Tunnel protocol support

This microservice can be found in rust::microservices::tunnel module.

Enables msrv-tunnel of mavlink-dialects

msrv-open-drone-id msrv-all? = dlct-common, msrv

Open Drone ID protocol support

This microservice can be found in rust::microservices::open_drone_id module.

Enables msrv-open-drone-id of mavlink-dialects

msrv-high-latency msrv-all? = dlct-common, msrv

High latency protocol support

This microservice can be found in rust::microservices::high_latency module.

Enables msrv-high-latency of mavlink-dialects

msrv-component-metadata msrv-all? = dlct-common, msrv

Component metadata protocol support

This microservice can be found in rust::microservices::component_metadata module.

Enables msrv-component-metadata of mavlink-dialects

msrv-payload msrv-all? = dlct-common, msrv

Payload protocol support

This microservice can be found in rust::microservices::payload module.

Enables msrv-payload of mavlink-dialects

msrv-traffic-management msrv-all? = dlct-common, msrv

Traffic management protocol support

This microservice can be found in rust::microservices::traffic_management module.

Enables msrv-traffic-management of mavlink-dialects

msrv-events-interface msrv-all? = dlct-common, msrv

Events interface protocol support

This microservice can be found in rust::microservices::events_interface module.

Enables msrv-events-interface of mavlink-dialects

msrv-time-sync msrv-all? = dlct-common, msrv

Time synchronization protocol support

This microservice can be found in rust::microservices::time_sync module.

Enables msrv-time-sync of mavlink-dialects

msrv-utils-all = msrv-utils-mission

==========================================================

========================================================== These features will enable additional MAVLink utilities such as *.waypoints files support, mission planninc, etc.

If enabled, additional microservice tools can be found in rust::microservices::utils.

⚠️ All such features require unstable feature to be enabled in order to take effect.

All MAVLink microservices utils

⚠️ Requires unstable feature to take effect.

msrv-utils-mission msrv-utils-all? = dlct-common, msrv-mission, msrv-utils

Mission protocol utils

If enabled, these microservice tools can be found in rust::microservices::utils::mission.

⚠️ Requires unstable feature to take effect.

Enables format_no_std

Required for microservice utils

cli = generators

==========================================================

Technical features

========================================================== These features should not be used directly.

⊛ Command-line utilities

Turned on automatically when CLI tools are built.

Enables clap, env_logger, and log

clap:

CLI dependencies

Required by the binary

msrv msrv-arm-auth? msrv-battery? msrv-camera? msrv-command? msrv-component-metadata? msrv-events-interface? msrv-ftp? msrv-gimbal-v1? msrv-gimbal-v2? msrv-heartbeat? msrv-high-latency? msrv-image-transmission? msrv-landing-target? msrv-manual-control? msrv-mission? msrv-open-drone-id? msrv-parameter? msrv-parameter-ext? msrv-path-planning? msrv-payload? msrv-ping? msrv-terrain? msrv-time-sync? msrv-traffic-management? msrv-tunnel? msrv-utils? = rust-dialects

⊛ Enable MAVLink microservices support

Do not use directly as this feature does not give access to any specific functionality by itself. Instead, use one of msrv-* features.

Enables msrv of mavlink-dialects

Affects rust::microservices

msrv-utils msrv-utils-mission? = msrv, rust-dialects

⊛️ Enables MAVLink microservices extra utils

Do not use directly as this feature does not give access to any specific functionality by itself. Instead, use one of msrv-utils-* features.

Affects microservices::utils

Features from optional dependencies

Dependencies