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
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
- 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
-
==========================================================
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? 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 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
Affects
rust::microservices
… - dlct-ardupilotmega dlct-all? = dlct-common
-
Include
ardupilotmega
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe dialect can be found in
rust::dialects::common
module.Enables dlct-common of mavlink-dialects and mavlink-message-definitions
- dlct-cs_air_link dlct-all?
-
Include
csAirLink
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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
dialectThe 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-dialectThe 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
-
==========================================================
MAVLink microservices
========================================================== 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
-
==========================================================
Additional MAVLink tools
========================================================== 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