Cargo Features
MAVSpec has no features set by default.
[dependencies]
mavspec = { version = "0.6.7", 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-telemetry", "msrv-utils-all", "msrv-utils-mission", "cli", "msrv", "msrv-utils"] }
Features
- default
-
==========================================================
Generic features
==========================================================
Default features (nothing is enabled)
- alloc std?
-
Enable
allocsupportEnables std of mavlink-dialects, alloc of mavspec_rust_spec
Affects
mission_plan::MissionPlan… - std rust_gen? = alloc
-
Enable standard library support
Enables thiserror and document-features
Documentation
and std of mavlink-dialects, mavlink-message-definitions, and mavspec_rust_spec
mavlink-message-definitions:
MAVLink specification
- 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,microservices::telemetry… - 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
-
==========================================================
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
- 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::dialectsmodule.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-dialectsfeature.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
definitionsfeature is enabled.Bundle MAVLink dialects
This feature does not generate any dialect by itself unless
dlct-*ofextra-dialectsfeature flags enabled.Enables mavlink-dialects
Affects
rust::microservices… - dlct-ardupilotmega dlct-all? = dlct-common
-
Include
ardupilotmegadialectThe dialect can be found in
rust::dialects::ardupilotmegamodule.Enables dlct-ardupilotmega of mavlink-dialects and mavlink-message-definitions
- dlct-asluav dlct-all? = dlct-common
-
Include
ASLUAVdialectThe dialect can be found in
rust::dialects::asluavmodule.Enables dlct-asluav of mavlink-dialects and mavlink-message-definitions
- dlct-avssuas dlct-all? = dlct-common
-
Include
AVSSUASdialectThe dialect can be found in
rust::dialects::avssuasmodule.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-telemetry? msrv-terrain? msrv-time-sync? msrv-traffic-management? msrv-tunnel? msrv-utils-mission? = dlct-minimal
-
Include
commondialectThe dialect can be found in
rust::dialects::commonmodule.Enables dlct-common of mavlink-dialects and mavlink-message-definitions
- dlct-cs_air_link dlct-all?
-
Include
csAirLinkdialectThe dialect can be found in
rust::dialects::cs_air_linkmodule.Enables dlct-cs_air_link of mavlink-dialects and mavlink-message-definitions
- dlct-cubepilot dlct-all? = dlct-common
-
Include
cubepilotdialectThe dialect can be found in
rust::dialects::cubepilotmodule.Enables dlct-cubepilot of mavlink-dialects and mavlink-message-definitions
- dlct-development dlct-all? = dlct-common
-
Include
developmentdialectThe dialect can be found in
rust::dialects::developmentmodule.Enables dlct-development of mavlink-dialects and mavlink-message-definitions
- dlct-icarous dlct-all?
-
Include
icarousdialectThe dialect can be found in
rust::dialects::icarousmodule.Enables dlct-icarous of mavlink-dialects and mavlink-message-definitions
- dlct-matrixpilot dlct-all? = dlct-common
-
Include
matrixpilotdialectThe dialect can be found in
rust::dialects::matrixpilotmodule.Enables dlct-matrixpilot of mavlink-dialects and mavlink-message-definitions
- dlct-minimal dlct-all? dlct-common? dlct-standard? msrv-heartbeat? test-dialects?
-
Include
minimaldialectThe dialect can be found in
rust::dialects::minimalmodule.Enables dlct-minimal of mavlink-dialects and mavlink-message-definitions
Affects
rust::microservices… - dlct-paparazzi dlct-all? = dlct-common
-
Include
paparazzidialectThe dialect can be found in
rust::dialects::paparazzimodule.Enables dlct-paparazzi of mavlink-dialects and mavlink-message-definitions
- dlct-standard dlct-all? = dlct-minimal
-
Include
standarddialectThe dialect can be found in
rust::dialects::standardmodule.Enables dlct-standard of mavlink-dialects and mavlink-message-definitions
- dlct-ualberta dlct-all? = dlct-common
-
Include
ualbertadialectThe dialect can be found in
rust::dialects::ualbertamodule.Enables dlct-ualberta of mavlink-dialects and mavlink-message-definitions
- dlct-uavionix dlct-all? = dlct-common
-
Include
uAvionixdialectThe dialect can be found in
rust::dialects::u_avionixmodule.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
allmeta-dialectThe dialect can be found in
rust::dialects::allmodule.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
-
==========================================================
MAVLink microservices
========================================================== These features will control generation of MAVLink microservice-specific bindings.
If enabled, microservices can be found in
rust::microservicesmodule.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::heartbeatmodule.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::missionmodule.Enables msrv-mission of mavlink-dialects
- msrv-parameter msrv-all? = dlct-common, msrv
-
Parameter protocol support
This microservice can be found in
rust::microservices::parametermodule.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_extmodule.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::commandmodule.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_controlmodule.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::cameramodule.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_v1module.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_v2module.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_authmodule.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_transmissionmodule.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::ftpmodule.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_targetmodule.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::pingmodule.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_planningmodule.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::batterymodule.Enables msrv-battery of mavlink-dialects
- msrv-terrain msrv-all? = dlct-common, msrv
-
Terrain protocol support
This microservice can be found in
rust::microservices::terrainmodule.Enables msrv-terrain of mavlink-dialects
- msrv-tunnel msrv-all? = dlct-common, msrv
-
Tunnel protocol support
This microservice can be found in
rust::microservices::tunnelmodule.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_idmodule.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_latencymodule.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_metadatamodule.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::payloadmodule.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_managementmodule.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_interfacemodule.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_syncmodule.Enables msrv-time-sync of mavlink-dialects
- msrv-telemetry = dlct-common, msrv
-
MAVLink Telemetry
This microservice can be found in
rust::microservices::telemetrymodule. - msrv-utils-all = msrv-utils-mission
-
==========================================================
Additional MAVLink tools
========================================================== These features will enable additional MAVLink utilities such as
*.waypointsfiles support, mission planninc, etc.If enabled, additional microservice tools can be found in
rust::microservices::utils.⚠️ All such features require
unstablefeature to be enabled in order to take effect.All MAVLink microservices utils
⚠️ Requires
unstablefeature 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
unstablefeature 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-telemetry? 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