Cargo Features
Mavio has no features set by default.
[dependencies]
mavio = { version = "0.5.5", features = ["unstable", "extras", "unsafe", "alloc", "std", "sha2", "serde", "specta", "futures", "tokio", "embedded-io", "embedded-io-async", "derive", "definitions", "metadata", "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", "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", "msrv", "msrv-utils"] }
Features
- default
-
==========================================================
Generic features
==========================================================
Default features (nothing is enabled).
- unstable
-
Enable unstable API features.
Mavka
- extras
-
Additional auxilary tools.
- unsafe
-
Unsafe features, that allow access to internal state of the entities.
- alloc std?
-
Enable memory allocation support.
Enables alloc of embedded-io, embedded-io-async, mavspec, serde, and tbytes
serde:
Serde
- std tokio? = alloc
-
Enable Rust std library.
Enables thiserror, std of embedded-io, embedded-io-async, mavspec, serde, sha2, and tbytes and document-features
Documentation
General dependencies
- sha2 std?
-
Enable sha2 backend for message signing
Enables sha2
- serde alloc? std?
-
==========================================================
Serialization and reflection
========================================================== These features enable serde and specta support.
Enable serde support.
Enables serde and serde_arrays ^0.1.0, serde of bitflags and mavspec
- specta
-
Enable specta support.
Enables specta of mavspec and specta and specta-util
specta:
Specta
- futures
-
==========================================================
I/O providers
========================================================== These features enable I/O providers such as Tokio or embedded-io
Enable async support via futures-rs
Enables futures
- tokio = std
-
Enable async support via Tokio
Enables tokio
I/O providers
- embedded-io alloc? std?
-
Enable synchronous I/O support from embedded HAL
Enables embedded-io
- embedded-io-async alloc? std?
-
Enable asynchronous I/O support from embedded HAL
Enables embedded-io and embedded-io-async
- derive
-
==========================================================
MAVSpec tools
========================================================== These features package additional MAVSpec utils suc as derive macros and message definitions.
Adds derive macros for MAVLink entities.
You can access them as
mavio::derive
. - definitions
-
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.Note, that while being useful for ground control stations, the generated definitions is quite large and may bloat the size of the binary.
⚠️ This feature won't compile without
std
feature enabled.Enables definitions of mavspec
- metadata
-
Adds additional metadata to MAVLink entities.
- dlct-ardupilotmega dlct-all? = dlct-common
-
==========================================================
Dialects
========================================================== Bundle standard MAVLink dialects as defined in XML message definitions generated by MAVSpec.
All enabled dialects can be found in
dialects
module. The default dialect, if available, can be found indefault_dialect
or as aDefaultDialect
.Include
ardupilotmega
dialectThe dialect can be found in
dialects::ardupilotmega
module.Enables dlct-ardupilotmega of mavspec
- dlct-asluav dlct-all? = dlct-common
-
Include
ASLUAV
dialectThe dialect can be found in
dialects::asluav
module.Enables dlct-asluav of mavspec
- dlct-avssuas dlct-all? = dlct-common
-
Include
AVSSUAS
dialectThe dialect can be found in
dialects::avssuas
module.Enables dlct-avssuas of mavspec
- 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
dialects::common
module.Enables dlct-common of mavspec
- dlct-cs_air_link dlct-all?
-
Include
csAirLink
dialectThe dialect can be found in
dialects::cs_air_link
module.Enables dlct-cs_air_link of mavspec
- dlct-cubepilot dlct-all? = dlct-common
-
Include
cubepilot
dialectThe dialect can be found in
dialects::cubepilot
module.Enables dlct-cubepilot of mavspec
- dlct-development dlct-all? = dlct-common
-
Include
development
dialectThe dialect can be found in
dialects::development
module.Enables dlct-development of mavspec
- dlct-icarous dlct-all?
-
Include
icarous
dialectThe dialect can be found in
dialects::icarous
module.Enables dlct-icarous of mavspec
- dlct-matrixpilot dlct-all? = dlct-common
-
Include
matrixpilot
dialectThe dialect can be found in
dialects::matrixpilot
module.Enables dlct-matrixpilot of mavspec
- dlct-minimal dlct-all? dlct-common? dlct-standard? msrv-heartbeat?
-
Include
minimal
dialectThe dialect can be found in
dialects::minimal
module.Enables dlct-minimal of mavspec
- dlct-paparazzi dlct-all? = dlct-common
-
Include
paparazzi
dialectThe dialect can be found in
dialects::paparazzi
module.Enables dlct-paparazzi of mavspec
- dlct-standard dlct-all? = dlct-minimal
-
Include
standard
dialectThe dialect can be found in
dialects::standard
module.Enables dlct-standard of mavspec
- dlct-ualberta dlct-all? = dlct-common
-
Include
ualberta
dialectThe dialect can be found in
dialects::ualberta
module.Enables dlct-ualberta of mavspec
- dlct-uavionix dlct-all? = dlct-common
-
Include
uAvionix
dialectThe dialect can be found in
dialects::u_avionix
module.Enables dlct-uavionix of mavspec
- 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
dialects::all
module. - 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
microservices
module.Support for all MavLink microservices
- msrv-heartbeat msrv-all? = dlct-minimal, msrv
-
Heartbeat protocol support
This microservice can be found in
microservices::heartbeat
module.Enables msrv-heartbeat of mavspec
- msrv-mission msrv-all? msrv-utils-mission? = dlct-common, msrv
-
Mission protocol support
This microservice can be found in
microservices::mission
module.Enables msrv-mission of mavspec
- msrv-parameter msrv-all? = dlct-common, msrv
-
Parameter protocol support
This microservice can be found in
microservices::parameter
module.Enables msrv-parameter of mavspec
- msrv-parameter-ext msrv-all? = dlct-common, msrv
-
Extended parameter protocol support
This microservice can be found in
microservices::parameter_ext
module.Enables msrv-parameter-ext of mavspec
- msrv-command msrv-all? = dlct-common, msrv
-
Command protocol support
This microservice can be found in
microservices::command
module.Enables msrv-command of mavspec
- msrv-manual-control msrv-all? = dlct-common, msrv
-
Manual control protocol support
This microservice can be found in
microservices::manual_control
module.Enables msrv-manual-control of mavspec
- msrv-camera msrv-all? = dlct-common, msrv
-
Camera protocol v2 support
This microservice can be found in
microservices::camera
module.Enables msrv-camera of mavspec
- msrv-gimbal-v1 msrv-all? = dlct-common, msrv
-
Gimbal protocol v1 support
This microservice can be found in
microservices::gimbal_v1
module.Enables msrv-gimbal-v1 of mavspec
- msrv-gimbal-v2 msrv-all? = dlct-common, msrv
-
Gimbal protocol v2 support
This microservice can be found in
microservices::gimbal_v2
module.Enables msrv-gimbal-v2 of mavspec
- msrv-arm-auth msrv-all? = dlct-common, msrv
-
Arm authorization protocol support
This microservice can be found in
microservices::arm_auth
module.Enables msrv-arm-auth of mavspec
- msrv-image-transmission msrv-all? = dlct-common, msrv
-
Image transmission protocol support
This microservice can be found in
microservices::image_transmission
module.Enables msrv-image-transmission of mavspec
- msrv-ftp msrv-all? = dlct-common, msrv
-
File transfer protocol support
This microservice can be found in
microservices::ftp
module. - msrv-landing-target msrv-all? = dlct-common, msrv
-
Landing target protocol support
This microservice can be found in
microservices::landing_target
module.Enables msrv-landing-target of mavspec
- msrv-ping msrv-all? = dlct-common, msrv
-
Ping protocol support
This microservice can be found in
microservices::ping
module. - msrv-path-planning msrv-all? = dlct-common, msrv
-
Path planning protocol support
This microservice can be found in
microservices::path_planning
module.Enables msrv-path-planning of mavspec
- msrv-battery msrv-all? = dlct-common, msrv
-
Battery protocol support
This microservice can be found in
microservices::battery
module.Enables msrv-battery of mavspec
- msrv-terrain msrv-all? = dlct-common, msrv
-
Terrain protocol support
This microservice can be found in
microservices::terrain
module.Enables msrv-terrain of mavspec
- msrv-tunnel msrv-all? = dlct-common, msrv
-
Tunnel protocol support
This microservice can be found in
microservices::tunnel
module.Enables msrv-tunnel of mavspec
- msrv-open-drone-id msrv-all? = dlct-common, msrv
-
Open Drone ID protocol support
This microservice can be found in
microservices::open_drone_id
module.Enables msrv-open-drone-id of mavspec
- msrv-high-latency msrv-all? = dlct-common, msrv
-
High latency protocol support
This microservice can be found in
microservices::high_latency
module.Enables msrv-high-latency of mavspec
- msrv-component-metadata msrv-all? = dlct-common, msrv
-
Component metadata protocol support
This microservice can be found in
microservices::component_metadata
module.Enables msrv-component-metadata of mavspec
- msrv-payload msrv-all? = dlct-common, msrv
-
Payload protocol support
This microservice can be found in
microservices::payload
module.Enables msrv-payload of mavspec
- msrv-traffic-management msrv-all? = dlct-common, msrv
-
Traffic management protocol support
This microservice can be found in
microservices::traffic_management
module.Enables msrv-traffic-management of mavspec
- msrv-events-interface msrv-all? = dlct-common, msrv
-
Events interface protocol support
This microservice can be found in
microservices::events_interface
module.Enables msrv-events-interface of mavspec
- msrv-time-sync msrv-all? = dlct-common, msrv
-
Time synchronization protocol support
This microservice can be found in
microservices::time_sync
module.Enables msrv-time-sync of mavspec
- 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.Enables msrv-utils-all of mavspec
- msrv-utils-mission msrv-utils-all? = dlct-common, msrv-mission, msrv-utils
-
Mission protocol utils
⚠️ Requires
unstable
feature to take effect.Enables msrv-utils-mission of mavspec
- 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?
-
==========================================================
Technical features
========================================================== These features should not be used directly.
⊛ 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. - msrv-utils msrv-utils-mission? = msrv
-
⊛️ 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.Enables msrv-utils of mavspec
Features from optional dependencies
Dependencies