1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*!
# 📖 Maviola Playbook
Maviola is a high-level [MAVLink](https://mavlink.io/en/) communication library written in Rust.
It provides abstractions such as communication nodes and implements _stateful_ features of MAVLink
protocol: sequencing, message signing, automatic heartbeats, and so on.
This library is a part of [Mavka](https://mavka.gitlab.io/home/) toolchain. It is based on
[Mavio](https://gitlab.com/mavka/libs/mavio), a low-level MAVLink library, and compatible with
[MAVSpec](https://gitlab.com/mavka/libs/mavspec) MAVLink dialects generator.
This documentation provides in-depth explanation of available features. We suggest to begin from
the [Quickstart](crate::docs::a1__quickstart) and then move to other sections.
If you are interested in the reasoning behind this library, we have a corresponding
[Why Maviola?](crate::docs::a2__overview#why-maviola).
## Contents
1. Basics
1. [Quickstart](crate::docs::a1__quickstart)
1. [Overview](crate::docs::a2__overview)
1. [Synchronous API](crate::docs::a3__sync_api)
1. [Asynchronous API](crate::docs::a4__async_api)
1. Advanced Usage
1. [Dialect Constraints](crate::docs::b1__dialect_constraints)
1. [Message Signing](crate::docs::b2__signing)
1. [Compatibility Checks](crate::docs::b3__compat_checks)
1. [Networks & Routing](crate::docs::b4__networks_and_routing)
1. Customization
1. [Custom Dialects](crate::docs::c1__custom_dialects)
1. [Custom Transport](crate::docs::c2__custom_transport)
1. [Custom Processing](crate::docs::c3__custom_processing)
1. [Ad-hoc Dialects](crate::docs::c4__ad_hoc_dialects)
1. Developer Notes
1. [Guidelines](crate::docs::e1__guidelines)
1. [Implementation Notes](crate::docs::e2__implementation)
1. [Testing](crate::docs::e3__testing)
<em>[Quickstart →](crate::docs::a1__quickstart)</em>
*/