Cargo Features
MAVSpec has no features set by default.
[dependencies]
mavspec = { version = "0.6.1", features = ["alloc", "std", "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
supportEnables 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
- 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
rust::microservices
… - 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
serde:
Required for dialect generation
- specta
-
Enable specta support
Enables specta and specta-util, specta of mavlink-dialects and mavspec_rust_spec
- definitions
-
==========================================================
MAVLink message 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-utils? = rust
-
==========================================================
Dialects
========================================================== These features control which MAVLink dialects will be considered by MAVSpec.
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 enablingextra-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-*
ofextra-dialects
feature flags enabled.Enables mavlink-dialects
- dlct-ardupilotmega dlct-all? = dlct-common
-
Include
ardupilotmega
dialectEnables dlct-ardupilotmega of mavlink-dialects and mavlink-message-definitions
- dlct-asluav dlct-all? = dlct-common
-
Include
ASLUAV
dialectEnables dlct-asluav of mavlink-dialects and mavlink-message-definitions
- dlct-avssuas dlct-all? = dlct-common
-
Include
AVSSUAS
dialectEnables 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-utils-mission? = dlct-minimal
-
Include
common
dialectEnables dlct-common of mavlink-dialects and mavlink-message-definitions
- dlct-cs_air_link dlct-all?
-
Include
csAirLink
dialectEnables dlct-cs_air_link of mavlink-dialects and mavlink-message-definitions
- dlct-cubepilot dlct-all? = dlct-common
-
Include
cubepilot
dialectEnables dlct-cubepilot of mavlink-dialects and mavlink-message-definitions
- dlct-development dlct-all? = dlct-common
-
Include
development
dialectEnables dlct-development of mavlink-dialects and mavlink-message-definitions
- dlct-icarous dlct-all?
-
Include
icarous
dialectEnables dlct-icarous of mavlink-dialects and mavlink-message-definitions
- dlct-matrixpilot dlct-all? = dlct-common
-
Include
matrixpilot
dialectEnables dlct-matrixpilot of mavlink-dialects and mavlink-message-definitions
- dlct-minimal dlct-all? dlct-common? dlct-standard? test-dialects?
-
Include
minimal
dialectEnables dlct-minimal of mavlink-dialects and mavlink-message-definitions
- dlct-paparazzi dlct-all? = dlct-common
-
Include
paparazzi
dialectEnables dlct-paparazzi of mavlink-dialects and mavlink-message-definitions
- dlct-standard dlct-all? = dlct-minimal
-
Include
standard
dialectEnables dlct-standard of mavlink-dialects and mavlink-message-definitions
- dlct-ualberta dlct-all? = dlct-common
-
Include
ualberta
dialectEnables dlct-ualberta of mavlink-dialects and mavlink-message-definitions
- dlct-uavionix dlct-all? = dlct-common
-
Include
uAvionix
dialectEnables 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-dialectEnables 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
-
==========================================================
MAVLink microservices
========================================================== These features will control generation of MAVLink microservice-specific bindings.
Support for all MavLink microservices
Enables msrv-all of mavlink-dialects
- msrv-heartbeat msrv-all? = msrv
-
Heartbeat protocol support
Enables msrv-heartbeat of mavlink-dialects
- msrv-mission msrv-all? msrv-utils-mission? = msrv
-
Mission microservice support
Enables msrv-mission of mavlink-dialects
- msrv-parameter msrv-all? = msrv
-
Parameter protocol support
Enables msrv-parameter of mavlink-dialects
- msrv-parameter-ext msrv-all? = msrv
-
Extended parameter protocol support
Enables msrv-parameter-ext of mavlink-dialects
- msrv-command msrv-all? = msrv
-
Command protocol support
Enables msrv-command of mavlink-dialects
- msrv-manual-control msrv-all? = msrv
-
Manual control protocol support
Enables msrv-manual-control of mavlink-dialects
- msrv-camera msrv-all? = msrv
-
Camera protocol v2 support
Enables msrv-camera of mavlink-dialects
- msrv-gimbal-v1 msrv-all? = msrv
-
Gimbal protocol v1 support
Enables msrv-gimbal-v1 of mavlink-dialects
- msrv-gimbal-v2 msrv-all? = msrv
-
Gimbal protocol v2 support
Enables msrv-gimbal-v2 of mavlink-dialects
- msrv-arm-auth msrv-all? = msrv
-
Arm authorization protocol support
Enables msrv-arm-auth of mavlink-dialects
- msrv-image-transmission msrv-all? = msrv
-
Image transmission protocol support
Enables msrv-image-transmission of mavlink-dialects
- msrv-ftp msrv-all? = msrv
-
File transfer protocol support
Enables msrv-ftp of mavlink-dialects
- msrv-landing-target msrv-all? = msrv
-
Landing target protocol support
Enables msrv-landing-target of mavlink-dialects
- msrv-ping msrv-all? = msrv
-
Ping protocol support
Enables msrv-ping of mavlink-dialects
- msrv-path-planning msrv-all? = msrv
-
Path planning protocol support
Enables msrv-path-planning of mavlink-dialects
- msrv-battery msrv-all? = msrv
-
Battery protocol support
Enables msrv-battery of mavlink-dialects
- msrv-terrain msrv-all? = msrv
-
Terrain protocol support
Enables msrv-terrain of mavlink-dialects
- msrv-tunnel msrv-all? = msrv
-
Tunnel protocol support
Enables msrv-tunnel of mavlink-dialects
- msrv-open-drone-id msrv-all? = msrv
-
Open Drone ID protocol support
Enables msrv-open-drone-id of mavlink-dialects
- msrv-high-latency msrv-all? = msrv
-
High latency protocol support
Enables msrv-high-latency of mavlink-dialects
- msrv-component-metadata msrv-all? = msrv
-
Component metadata protocol support
Enables msrv-component-metadata of mavlink-dialects
- msrv-payload msrv-all? = msrv
-
Payload protocol support
Enables msrv-payload of mavlink-dialects
- msrv-traffic-management msrv-all? = msrv
-
Traffic management protocol support
Enables msrv-traffic-management of mavlink-dialects
- msrv-events-interface msrv-all? = msrv
-
Events interface protocol support
Enables msrv-events-interface of mavlink-dialects
- msrv-time-sync msrv-all? = msrv
-
Time synchronization protocol support
Enables msrv-time-sync of mavlink-dialects
- msrv-utils-all = msrv-utils-mission
-
==========================================================
Additional MAVLink tools
========================================================== These features will enable additional MAVLink utilities such as
*.waypoints
files support, mission planninc, etc.⚠️ 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
⚠️ Requires
unstable
feature to take effect.Enables format_no_std
Required for microservice utils
Affects
microservices::mission
… - 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?
-
⊛ 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
- 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
rust::microservices
…
Features from optional dependencies
Dependencies