Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
322 commits
Select commit Hold shift + click to select a range
8c63f80
lib: Fix serialization of mavlink v2
patrickelectric Nov 20, 2023
63a51d8
tests: Add serialization test
patrickelectric Nov 20, 2023
8e58086
tests: Add more ser/deser test
patrickelectric Nov 20, 2023
c4e069e
Cargo: Update to 0.12.2
patrickelectric Nov 20, 2023
9353461
Update lib.rs
antonio-sc66 Dec 12, 2023
19154d8
Cleanup. Remove unnecessary self.clone() calls
antonio-sc66 Jan 3, 2024
76a2813
Bugfix. Replace default isize enum representation.
antonio-sc66 Jan 3, 2024
aaec6ed
Refactor mavlink-dump. Change from [[bin]] to [[example]].
antonio-sc66 Jan 3, 2024
a7102c9
Update README.md
antonio-sc66 Jan 3, 2024
d828e6e
Update .github workflow to accommodate for the mavlink-dump refactor
antonio-sc66 Jan 3, 2024
be0bc1e
src: connection: Fix panic when DNS lookup fails
joaoantoniocardoso Jan 10, 2024
09411e9
Restructure project to enable custom mavlink bindings generation (#223)
GrahamDennis Feb 18, 2024
7d6a1c4
Fixed incorrect message framing by using a buffered reader.
tiagomarquestek Feb 27, 2024
c8fb42b
Replaced `buffered_reader::Generic` with own buffered reader implemen…
tiagomarquestek Feb 29, 2024
5679e26
Removed extraneous buffered-reader dependency
tiagomarquestek Feb 29, 2024
ad39b28
added documentation to `PeekReader
tiagomarquestek Feb 29, 2024
033b069
Simplified PeekReader for MAVLink and made it friendly
tiagomarquestek Mar 20, 2024
8d61f75
Changed rerun-if-changed to full xml path of message definitions
JorgeCastanho Mar 27, 2024
1208960
Fix URLs in README pointing to examples
booo Mar 28, 2024
96079f4
changed fn_calculate_crc to pub
joaofrf May 2, 2024
cdd585f
Added (back) buffering to UDP's Read implementation
tjrmarques Apr 24, 2024
a67f1d8
changed `main` to `main.rs` for markdown hyperlinks
TB-ME Apr 19, 2024
f47c61f
print bindgen cli error
BKSalman Mar 31, 2024
8c342c1
Update embedded-hal to 1.0.
qwerty19106 Jun 17, 2024
249e4c8
mavlink-core: Update to 0.13.1
patrickelectric Jul 18, 2024
19ad62d
mavlink-core: Fix README path
patrickelectric Jul 18, 2024
66588af
mavlink-bindgen: Update Cargo description
patrickelectric Jul 18, 2024
594be0c
Release 0.13.1
patrickelectric Jul 18, 2024
eea939b
Add new release flow
patrickelectric Jul 18, 2024
26ecf38
workflows: Fix checkout
patrickelectric Jul 18, 2024
9cd7bf0
deploy: Fix action
patrickelectric Jul 18, 2024
2e40341
Use versions over path
patrickelectric Jul 21, 2024
0b39939
Fix and add missing links to README
patrickelectric Jul 21, 2024
ab925ad
Improve final binary size
G1gg1L3s Jul 21, 2024
63b6af9
fix: Enum entries without value are generated as isize
pv42 Jul 31, 2024
9e9ef09
Feat: add cli argument documentation
Aug 6, 2024
d788b66
Feat: add mavlink-bindgen readme
Aug 6, 2024
69703a7
Fix: CouldNotReadDefinitionFile doc is copy pasted
Aug 7, 2024
4705886
Feat: add doc to public functions in mavlink-bindgen's lib.rs
Aug 7, 2024
d168962
Fix: improve mavlink-bindgen readme
Aug 7, 2024
a5edd29
Fix: set cargo toml link to readme in mavlink-bindgen, add missing re…
Aug 7, 2024
c93fd57
fix: incompatibility flags of v2 messages are checked
pv42 Aug 8, 2024
c10d36e
mavlink-core: src: read shouldn't be mut
joaoantoniocardoso Aug 22, 2024
5a1cd30
cargo: Add tokio-1 feature for tokio-based async-io
joaoantoniocardoso Aug 22, 2024
12b1e2b
mavlink-core: src: Add tokio-based async read/write
joaoantoniocardoso Aug 22, 2024
311cd65
Revert "Use versions over path"
joaoantoniocardoso Aug 22, 2024
4faca0e
fix: add MavFrame deser & ser warning, fixes #250
amsmith-pro Aug 7, 2024
06f1eef
mavlink-core: src: Fix embedded v2 read header
joaoantoniocardoso Aug 22, 2024
8fb5875
Emit extensions
pv42 Aug 22, 2024
2ab6785
move to 2021 edition (#262)
danieleades Aug 25, 2024
908e654
Minor refactoring
danieleades Aug 25, 2024
9a657c0
feat: add signing feature with sha2 dependency
pv42 Aug 7, 2024
ab82e27
feat: Add incompat flag field to MavHeader
pv42 Aug 7, 2024
6e15048
feat: add MavConnection::setup_signing(), signing functions to MAVLin…
pv42 Aug 7, 2024
33d0564
fix: move signing mod, remove incompat_flags since it is breaking
pv42 Aug 11, 2024
312968c
fix: remove std requirement for signing, fmt
pv42 Aug 11, 2024
f264153
test: add features signing, tokio-1 to clippy
pv42 Aug 23, 2024
6592af0
feat: add link_id to signing config
pv42 Aug 23, 2024
42b84d1
feat: add signing to async read/write functions
pv42 Aug 23, 2024
04a4732
fix: clippy warnings
pv42 Aug 23, 2024
e481f5f
fix: remove redundant feature gate
pv42 Aug 25, 2024
e345857
fix: fmt
pv42 Aug 25, 2024
f83fcbd
chore(deps): update 'quickxml'
danieleades Aug 25, 2024
b41d557
chore(deps): update 'num_derive'
danieleades Aug 25, 2024
1b8fbf1
doc: add tokio-1 and signing to docs.rs features
pv42 Aug 26, 2024
3285c6d
exclude embedded-hal v0.2 from dependabot updates
danieleades Aug 26, 2024
a729400
update MSRV checks to account for features
danieleades Aug 25, 2024
d5c5bc3
address some lint warnings
danieleades Aug 25, 2024
cd600a2
doc: add doc_auto_cfg feature to doc and docsrs build for mavlink and…
pv42 Aug 26, 2024
c8b10f0
test: switch docs test to nightly, add all features used for docs.rs
pv42 Aug 26, 2024
bec09cc
test: disable doc_auto_cfg for doctest
pv42 Aug 26, 2024
49ecc03
mavlink/build.rs simplification
imp Aug 29, 2024
3cc4cce
mavlink-bindgen: build.rs simplification
imp Sep 8, 2024
4cc4513
mavlink-bindgen: parser: Simple PascalCase implementation
imp Sep 9, 2024
8f6fe95
mavlink-bindgen: parser: less unwrap()
imp Sep 9, 2024
38d94ff
test: remove all dev targets from msrv check (fixes #277)
Sep 4, 2024
3e7191e
feat: add async connection mod with tcp, udp, file
pv42 Aug 29, 2024
7dcc48f
test: add async versiosn of network loopback tests
pv42 Sep 1, 2024
0089701
fix: read_v2_msg_async_inner, write_versioned_msg_async_signed
pv42 Sep 1, 2024
f81f0b4
fix: fmt
pv42 Sep 1, 2024
68536ef
fix: add Send marker to AsyncMavConnection for rust 1.70
pv42 Sep 4, 2024
38e85b6
doc: replace block with yield, move file comment, fmt cargo
pv42 Sep 8, 2024
fbd2239
fix: rename tcp/udp connection to AsyncTcpConnection/AsyncUdpConnecti…
pv42 Sep 8, 2024
5f2ecbe
bump pinned clippy version
danieleades Sep 20, 2024
0e936c5
feat: async serial
roby2014 Sep 21, 2024
90d2ad4
cargo: update to 0.14.0
roby2014 Sep 23, 2024
c80321b
mavlink-core: MAVLinkV1MessageRaw::header should not require mut
joaoantoniocardoso Oct 14, 2024
5a4c3dd
Fix read error leads to skip message for blocking API
kusstas Dec 19, 2024
9928e4d
feat: implement non-blocking read handling in PeekReader and add tests
kusstas Dec 22, 2024
a3deb2f
fix: handle unexpected EOF in PeekReader in case zero bytes has read
kusstas Dec 22, 2024
4cd498b
fix: change reader_ref method to return an immutable reference
kusstas Dec 23, 2024
e609ab0
feat: add read method to Read trait for embedded traits
kusstas Dec 24, 2024
a973af3
fix: unused_variables warning when compiled without signing feature
pv42 Dec 27, 2024
a44abd2
feat: add ConnectionAddress type and Connectable traits
pv42 Jan 5, 2025
fea159c
clippy: suppress suspicious_else_formatting lint in generated code
May 6, 2025
dee4726
remove quotes from features and reorder important features
liamkinne Jan 22, 2025
c8c585d
Add enum MAVLinkMessageRaw, add read_any_[raw_]message[__async][_sign…
pv42 Apr 1, 2025
a4db16b
add ReadVersion, change read_versioned_msg[..]() apis
pv42 Apr 1, 2025
1e39edc
add set_allow_recv_any_version, allow_recv_any_version to [Async]Conn…
pv42 Apr 1, 2025
c8c3f7d
fix: use correct v1 STX in read_any_raw_message_inner
Apr 2, 2025
fcc6c64
test: add agnostic decode test, move HEARTBEAT_VX into tests_shared
Apr 2, 2025
097357c
mavlink-core: cargo: Add 'arbitrary' feature + dependencies
joaoantoniocardoso May 6, 2025
eab51f3
mavlink-core: Add method random_message_from_id to the Message trait API
joaoantoniocardoso May 6, 2025
84d0713
mavlink-core: Derive arbitrary for MavHeader, MavFrame, and MavlinkVe…
joaoantoniocardoso May 6, 2025
2cf05ad
mavlink-bindgen: cargo: Add 'arbitrary' feature + dependencies
joaoantoniocardoso May 6, 2025
b222cad
mavlink-bindgen: Implement random_message_from_id for MavMessage
joaoantoniocardoso May 6, 2025
a9e0d89
mavlink-bindgen: Implement random to message structs
joaoantoniocardoso May 6, 2025
c87b72e
mavlink-bindgen: Derive arbitrary for enums
joaoantoniocardoso May 6, 2025
970259d
mavlink: cargo: Add 'arbitrary' feature + dependencies
joaoantoniocardoso May 6, 2025
33af3d0
mavlink: tests: Add a simple test using arbitrary to generate all ard…
joaoantoniocardoso May 6, 2025
1a5997b
feat: add check if git is installed, improve build error messages
pv42 May 21, 2025
9dde7bf
Update mavlink definitions
chemicstry May 22, 2025
101ce8e
ci: split cargo wrokspace publish, add version dependencies
Apr 30, 2025
f0d19f7
ci: force cargo workspace to update versions
May 22, 2025
4beacd6
fix: tcp, udp, and serial features were not fully configured for cond…
DusterTheFirst May 25, 2025
ebdc9ec
Commit new release 0.14.1
github-actions[bot] May 26, 2025
0afbd14
fix: remove feature dependencies between dialects
pv42 May 26, 2025
f8c18e4
test: supress unused_mut warning in tests without signing
pv42 May 26, 2025
ab87c7e
test: remove apm included dialect feature gates
pv42 May 26, 2025
bbce1ad
test: fix clippy::needless_borrow warn
pv42 May 26, 2025
ec5deea
test: fix parse test not working without all connection features afte…
pv42 May 26, 2025
798b8c5
test: fix feature gates in mav_frame_tests
pv42 May 26, 2025
e087eac
test: fmt
pv42 May 26, 2025
4f7952b
fix: update features in example
pv42 May 26, 2025
48191c1
fix: remove outdated slugs dialect
May 27, 2025
c4163e9
doc: use io::ErrorKind to make links work
pv42 May 24, 2025
027b77a
doc: imporve dialect module docs
pv42 May 24, 2025
9dd9f35
doc: add feature doc
pv42 May 30, 2025
0c8fd46
feat: use tokio AsyncRead/Write instead of AsyncRead/WriteExt in pub api
pv42 May 30, 2025
93a5576
doc: improve doc comments
pv42 May 30, 2025
4efa9f7
doc: mention git dependency, update version in readme
pv42 May 30, 2025
584b599
doc: replace message set with dialect in module doc
pv42 May 30, 2025
90221c5
fix: fmt
pv42 May 30, 2025
41fd6dc
doc: fix typos
pv42 Jun 2, 2025
cfc6b2e
lock-free {SerialConnection, AsyncSerialConnection} sequence
onur-ozkan Jun 6, 2025
06fcb06
avoid unnecessary buffer allocation in `PeekReader`
onur-ozkan Jun 17, 2025
57379ef
use single atomic operation for both write and read
onur-ozkan Jun 17, 2025
c86c776
chore(deps): update quick-xml requirement from 0.36 to 0.37 (#289)
dependabot[bot] Jun 19, 2025
7123184
remove outdated `serial` and migrate to `serialport` (#325)
onur-ozkan Jun 20, 2025
eb818f6
implement `try_recv` to `MavConnection`
onur-ozkan Jun 11, 2025
efb6fed
refactor: split serial port into separate r/w mutexes (#329)
onur-ozkan Jun 20, 2025
0609a85
Revert "refactor: split serial port into separate r/w mutexes" (#331)
onur-ozkan Jun 20, 2025
276d6d3
refactor: split serial port into separate r/w mutexes (#332)
onur-ozkan Jun 20, 2025
e4121db
Commit new release 0.15.0
github-actions[bot] Jun 20, 2025
6f8d121
chore(deps): update clap_lex requirement from =0.5.0 to =0.7.5 (#328)
dependabot[bot] Jun 21, 2025
30b9c14
chore(deps): update anstyle-query requirement from =1.0.0 to =1.1.3 (…
dependabot[bot] Jun 21, 2025
8039ab9
Update README.md
onur-ozkan Jun 21, 2025
9ed0142
fix dependabot config (#280)
danieleades Jun 21, 2025
ed66632
chore(deps): update anstyle-parse requirement from =0.2.1 to =0.2.7 (…
dependabot[bot] Jun 21, 2025
9c8ec27
chore(deps): update serde_arrays requirement from 0.1.0 to 0.2.0 (#334)
dependabot[bot] Jun 21, 2025
1b8bcd0
chore(deps): update anstyle requirement from =1.0.2 to =1.0.11 (#335)
dependabot[bot] Jun 21, 2025
80e5747
lock `actions/checkout` version
onur-ozkan Jun 24, 2025
69eb0e2
chore(deps): update quick-xml requirement from 0.37 to 0.38 (#339)
dependabot[bot] Jun 30, 2025
22d55cb
use tokio-free locks and results
onur-ozkan Jun 30, 2025
a1654ff
re-order dependencies by ascending order
onur-ozkan Jun 30, 2025
e31f210
fix: remove tokio sync feature
pv42 Jun 30, 2025
aeac5d9
String parsing for char[] (#343)
joaoantoniocardoso Jul 2, 2025
f7090c4
fix embedded example and ci and remove ardupilotmega feature
pv42 Jul 3, 2025
5a9a128
Make `remove_trailing_zeroes` panic-safe and more efficient
onur-ozkan Jul 16, 2025
b8e3733
implement `impl_rust_default` to auto impl defaults
onur-ozkan Jul 16, 2025
5499f28
fix `test_remove_trailing_zeroes_empty_slice` test
onur-ozkan Jul 16, 2025
7230bc6
mavlink-bindgen: skip non XML files (#353)
azerupi Jul 29, 2025
e60e362
chore(deps): update anstyle-query requirement from =1.1.3 to =1.1.4 (…
dependabot[bot] Aug 6, 2025
1f7819f
chore(deps): bump actions/checkout from 4 to 5 (#358)
dependabot[bot] Aug 13, 2025
9873d6a
parser optimizations (#360)
onur-ozkan Aug 15, 2025
30496a7
bindgen: generate only for enabled features (#363)
onur-ozkan Aug 18, 2025
e9fc327
Make MAVLinkMessageRaw methods public (#365)
azerupi Aug 18, 2025
7ac1710
Add serde tests (#366)
pv42 Aug 18, 2025
649880c
Add missing crate metadata and enable lint
pv42 Aug 19, 2025
05a5484
Add a method to retrieve the target system/component if it exists (#357)
azerupi Aug 20, 2025
afd0ae5
ignore editor directories/files (#354)
onur-ozkan Aug 20, 2025
56165ba
Validate that fields in messages are unique (#369)
azerupi Aug 20, 2025
ce50103
re-write entire codegen flow (#368)
onur-ozkan Aug 21, 2025
55983ba
implement config layer for connection types (#355)
onur-ozkan Aug 21, 2025
c61b012
Revert "String parsing for char[]" (#376)
joaoantoniocardoso Aug 22, 2025
88c9b8b
mavlink: tests: test_shared: Add missing extension (#375)
joaoantoniocardoso Aug 22, 2025
a087574
mavlink-core: src: Do not import gated features (#373)
joaoantoniocardoso Aug 22, 2025
93dd8d2
Test more non std (#374)
joaoantoniocardoso Aug 22, 2025
936675e
Change return type on message functions to Option (#379)
pv42 Aug 22, 2025
40e4c03
Add tests to validate decode encode roundtrip (#380)
azerupi Aug 22, 2025
36efbae
Fix arbitrary feature (#377)
joaoantoniocardoso Aug 22, 2025
000529b
Add assert to check payload length during codegen (#381)
pv42 Aug 25, 2025
b98fe68
Implemented recv_raw for async and sync connections (#372)
joaofrf Aug 25, 2025
a33dac8
Expose inner buffer (#382)
joaoantoniocardoso Aug 26, 2025
e2d7d08
Resolve clippy warnings (#383)
pv42 Aug 26, 2025
e81b23b
Test all messages for all dialects: default and random (#378)
joaoantoniocardoso Aug 26, 2025
ff7fd94
fix doc ci formatting, doc rustfmt requirement
pv42 Aug 26, 2025
163961c
Fix `cargo doc` for stable rust (#384)
pv42 Aug 27, 2025
85f6788
Make generated order deterministic and add snapshot testing (#387)
azerupi Aug 27, 2025
e9ec14c
Use deprecation tags in message definition for code generation (#389)
pv42 Sep 2, 2025
fd83eae
Hide `bytes` and `bytes_mut` in doc (#392)
pv42 Sep 4, 2025
ae98fec
Semicolon consistency (#391)
pv42 Sep 4, 2025
2bf2ac2
Use version and dialect tags in code generation (#390)
pv42 Sep 6, 2025
cae26a9
Check field count (#395)
pv42 Sep 12, 2025
b27bbbc
switch non-blocking mode in tcp&udp sockets (#396)
onur-ozkan Sep 15, 2025
162a043
emit more documentation (#397)
onur-ozkan Sep 15, 2025
fb2b03d
Fix extension serialisation for MAVLink 1 (#399)
pv42 Sep 18, 2025
35b686a
Properly handle message ids over 255 for MAVLink 1 (#400)
pv42 Sep 19, 2025
3e4f23f
ci: test: disable fail-fast
patrickelectric Oct 2, 2025
46d4023
mavlink-bindgen: lib: Panic if format is being called without rustfmt
patrickelectric Oct 2, 2025
b0eccf7
ci: test: Add missing rustfmt
patrickelectric Oct 2, 2025
ef6871f
Avoid using doc_auto_cfg feature
patrickelectric Oct 2, 2025
39bc64a
ci: test: Do no build documentation for dependencies
patrickelectric Oct 2, 2025
070aa1d
mavlink tests: Add full json test
patrickelectric Oct 2, 2025
2303534
mavlink: Add typescript generation
patrickelectric Sep 22, 2025
21027b1
mavlink-bindgen: tests: snapshots: Update to include typescript gener…
patrickelectric Sep 23, 2025
104256a
Cargo: Update rust version to 1.78
patrickelectric Sep 23, 2025
b136324
mavlink-core: Use io::Error over io::ErrorKind
patrickelectric Sep 23, 2025
e8b84a6
gitignore: Add mavlink/bindings
patrickelectric Sep 24, 2025
e0cc8ae
Panic and error documentation (#407)
pv42 Oct 8, 2025
fcc7f2d
Enable formatting of generated code by default (#416)
azerupi Oct 9, 2025
91a6317
Improve string serde serialization/deserialization (#415)
patrickelectric Oct 9, 2025
a28838f
remove version locks from the bindgen crate (#417)
onur-ozkan Oct 11, 2025
1ff309f
chore(deps): update clap requirement from ~4.3.24 to ~4.5.48 (#418)
dependabot[bot] Oct 13, 2025
1dc53cc
Reintroduce read_raw_versioned_msg functions as deprecated (#419)
pv42 Oct 14, 2025
b33ce10
Add wrapper for char arrays to access str conveniently (#388)
azerupi Oct 14, 2025
7aee460
Commit new release 0.15.1
github-actions[bot] Oct 14, 2025
642a7a6
Commit new release 0.16.0
github-actions[bot] Oct 14, 2025
1e87125
post-release: bump the old mavlink version in README
onur-ozkan Oct 14, 2025
2e75158
mavlink-core: types: CharArray: Add From str
patrickelectric Oct 14, 2025
068e8b2
Commit new release 0.16.1
github-actions[bot] Oct 14, 2025
fba8da5
return error for invalid bitflags, change ParserError value fields to…
pv42 Oct 14, 2025
70b9767
fix PeekReader typo in doc
pv42 Oct 14, 2025
d2eb272
Minor doc fixes (#424)
pv42 Oct 16, 2025
6ba4c18
Support for MAV_BOOL (#423)
pv42 Oct 20, 2025
c05e756
refactor bytes module to be panic safe (#428)
onur-ozkan Oct 28, 2025
0e669dc
remove panic doc from MavFrame::deser
pv42 Oct 30, 2025
01cd003
Fix warnings in test and for certain dialects (#426)
pv42 Oct 30, 2025
10be585
read version once
onur-ozkan Nov 6, 2025
321c964
remove duplicate bounds check in bytes (#430)
pv42 Nov 6, 2025
5a65d96
mavlink-bindgen: parser: Create all_messages function
patrickelectric Nov 6, 2025
c227264
mavlink-bindgen: tests: snapshots: Update to have all_messages
patrickelectric Nov 6, 2025
fcc3b70
implement buffering on serial connection reads
onur-ozkan Nov 12, 2025
823214d
utilize BufReader in async_connection/direct_serial
onur-ozkan Nov 12, 2025
061184c
Commit new release 0.16.2
github-actions[bot] Nov 16, 2025
d613731
chore(deps): bump actions/checkout from 5 to 6 (#435)
dependabot[bot] Nov 21, 2025
b57971c
fix(427): arbitrary handles utf-8 bytes with truncation (#441)
bengtlofgren Dec 9, 2025
a1697e9
drop lazy_static from the dependency tree
onur-ozkan Nov 26, 2025
39bde18
bump MSRV to 1.80
onur-ozkan Nov 26, 2025
0886d9a
perf-impr: replace boxed connections with concrete enum (#440)
onur-ozkan Dec 13, 2025
bff1f83
bless clippy for the latest compiler (#444)
onur-ozkan Dec 13, 2025
a77270b
add more lints (#446)
danieleades Dec 21, 2025
db7a0f8
chore(ci): simplify MSRV check (#445)
danieleades Dec 21, 2025
70cad33
fix dialect description texts getting cut of at xml entities (#443)
pv42 Dec 21, 2025
e6501fe
bump embedded-io
onur-ozkan Jan 2, 2026
5536d5a
Commit new release 0.17.0
github-actions[bot] Jan 2, 2026
c4f6d91
refactor: remove i24 reading/writing (#451)
danieleades Jan 2, 2026
23a4faa
chore(deps): update quick-xml requirement from 0.38 to 0.39 (#452)
dependabot[bot] Jan 12, 2026
29fe39e
Documentation for MAV_CMD variants (#437)
pv42 Jan 16, 2026
3296cd6
use Option for MavDeprecation.replaced_by in parser
onur-ozkan Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: daily
ignore:
- dependency-name: "embedded-hal"
versions: ["^0.2"]
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
31 changes: 26 additions & 5 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,34 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ github.event.repository.default_branch }}
- uses: actions-rs/[email protected]
with:
toolchain: stable
override: true
- name: Build
run: cargo build
- uses: katyo/publish-crates@v1
with:
registry-token: ${{ secrets.CARGO }}
- name: Extract version from tag
id: get_version
run: echo "::set-output name=version::${GITHUB_REF/refs\/tags\//}"
- name: Commit version changes
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
- name: Set and publish workspace crates
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO }}
run: |
cargo install cargo-workspaces
cargo workspaces version custom ${{ steps.get_version.outputs.version }} \
--exact --yes --no-git-tag --no-git-push \
-m "Commit new release ${{ steps.get_version.outputs.version }}" --force "mavlink-*"
cargo publish -p mavlink-core --no-verify
cargo publish -p mavlink-bindgen --no-verify
cargo publish -p mavlink --no-verify
- name: Push commit
run: |
git push origin ${{ github.event.repository.default_branch }}
162 changes: 107 additions & 55 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,81 +3,133 @@ name: Test all targets
on: [push, pull_request]

jobs:
quick-tests:
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
with:
toolchain: stable
target: ${{ matrix.TARGET }}
override: true
- name: Check Type
run: cargo fmt -- --check
- name: Run internal tests
run: cargo test --verbose --features all-dialects -- --nocapture
- name: Build mavlink-dump
run: cargo build --verbose --bin mavlink-dump --features ardupilotmega
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run rustfmt
run: cargo fmt --all -- --check

linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
with:
components: clippy
- uses: actions-rs-plus/clippy-check@v2
with:
args: --all --all-targets --features format-generated-code --features signing --features tokio-1

internal-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dialect: ["ardupilotmega", "asluav", "matrixpilot", "minimal", "paparazzi", "python_array_test", "standard", "test", "ualberta", "uavionix", "icarous", "common", "storm32", "csairlink", "loweheiser"]
signing: ["", "--features signing"]
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run internal tests
run: cargo test --verbose --features arbitrary,${{ matrix.dialect }} ${{ matrix.signing }} -- --nocapture

mavlink-dump:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- name: Build mavlink-dump
run: cargo build --verbose --example mavlink-dump

msrv:
runs-on: ubuntu-latest
strategy:
matrix:
features: ["", "--features serde,tokio-1", "--features signing"]
steps:
- uses: actions/checkout@v6
- uses: taiki-e/install-action@cargo-hack
- run: cargo hack --no-dev-deps --rust-version check --package mavlink ${{ matrix.features }}

build:
needs: quick-tests
needs: [formatting, linting, internal-tests, mavlink-dump, msrv]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
TARGET: x86_64-apple-darwin
FEATURES: --features all-dialects
- os: macos-latest
TARGET: x86_64-apple-darwin
FEATURES: --features ardupilotmega

- os: ubuntu-latest
TARGET: arm-unknown-linux-musleabihf
FLAGS: --features ardupilotmega
- os: ubuntu-latest
TARGET: arm-unknown-linux-musleabihf
FLAGS: --features ardupilotmega

- os: ubuntu-latest
TARGET: armv7-unknown-linux-musleabihf
FLAGS: --features ardupilotmega
- os: ubuntu-latest
TARGET: armv7-unknown-linux-musleabihf
FLAGS: --features ardupilotmega

- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features all-dialects
- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features ardupilotmega

- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features all-dialects,emit-extensions
- os: ubuntu-latest
TARGET: x86_64-unknown-linux-musl
FLAGS: --features ardupilotmega,emit-extensions

- os: ubuntu-latest
TARGET: thumbv7m-none-eabi
FLAGS: --no-default-features --features embedded
- os: ubuntu-latest
TARGET: thumbv7m-none-eabi
FLAGS: --no-default-features --features embedded

- os: windows-latest
TARGET: x86_64-pc-windows-msvc
FLAGS: --features all-dialects
- os: windows-latest
TARGET: x86_64-pc-windows-msvc
FLAGS: --features ardupilotmega

steps:
- name: Building ${{ matrix.TARGET }}
run: echo "${{ matrix.TARGET }}"
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
with:
toolchain: stable
target: ${{ matrix.TARGET }}
override: true
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --verbose --release --target=${{ matrix.TARGET }} ${{ matrix.FLAGS }}
- name: Building ${{ matrix.TARGET }}
run: echo "${{ matrix.TARGET }}"
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.TARGET }}
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --verbose --release --package=mavlink --target=${{ matrix.TARGET }} ${{ matrix.FLAGS }}

test-embedded-size:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions-rs/[email protected]
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
with:
target: thumbv7em-none-eabihf
- name: Build
working-directory: ./mavlink/examples/embedded
run: cargo +nightly build --out-dir $PWD/../../.. --release -Z unstable-options

docs:
needs: internal-tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Build docs
run: RUSTDOCFLAGS=--cfg=docsrs cargo doc --no-deps --features "default all-dialects emit-extensions format-generated-code tokio-1 signing"
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.ref == 'refs/heads/master' }}
with:
toolchain: nightly
target: thumbv7em-none-eabihf
override: true
- name: Build
run: cargo +nightly build --target thumbv7em-none-eabihf --manifest-path examples/embedded/Cargo.toml --out-dir $PWD --release -Z unstable-options
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./target/doc
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,24 @@
## Editor
*.swp
*.swo
Session.vim
.cproject
.idea
*.iml
.vscode
.project
.vim/
.helix/
.zed/
.favorites.json
.settings/
.vs/
.dir-locals.el

## Rust
target
Cargo.lock


# Typescript message generation
mavlink/bindings
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "mavlink"]
path = mavlink
[submodule "mavlink/mavlink"]
path = mavlink/mavlink
url = https://github.com/mavlink/mavlink
98 changes: 20 additions & 78 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,82 +1,24 @@
[workspace]
members = ["mavlink", "mavlink-bindgen", "mavlink-core"]
resolver = "1"

[package]
name = "mavlink"
version = "0.10.1"
authors = ["Todd Stellanova", "Michal Podhradsky", "Kevin Mehall", "Tim Ryan", "Patrick José Pereira", "Ibiyemi Abiodun"]
build = "build/main.rs"
description = "Implements the MAVLink data interchange format for UAVs."
readme = "README.md"
license = "MIT/Apache-2.0"
repository = "https://github.com/mavlink/rust-mavlink"
edition = "2018"

[build-dependencies]
crc-any = "2.3.0"
bytes = { version = "1.0", default-features = false }
xml-rs = "0.2"
quote = "0.3"
lazy_static = "1.2.0"
serde = { version = "1.0.115", optional = true, features = ["derive"] }

[[bin]]
name = "mavlink-dump"
required-features = ["ardupilotmega"]

[dependencies]
crc-any = "2.3.5"
bytes = { version = "1.0", default-features = false }
[workspace.dependencies]
crc-any = { version = "2.3.5", default-features = false }
num-traits = { version = "0.2", default-features = false }
num-derive = "0.3.2"
bitflags = "1.2.1"
serial = { version = "0.4", optional = true }
serde = { version = "1.0.115", optional = true, features = ["derive"] }
num-derive = "0.4"
bitflags = { version = "2.9.1", default-features = false }
byteorder = { version = "1.3.4", default-features = false }
embedded-hal = { version = "0.2", optional = true }
nb = { version = "0.1", optional = true }

[features]
"ardupilotmega" = ["common", "icarous", "uavionix"]
"asluav" = ["common"]
"autoquad" = ["common"]
"matrixpilot" = ["common"]
"minimal" = []
"paparazzi" = ["common"]
"python_array_test" = ["common"]
"slugs" = ["common"]
"standard" = ["common"]
"test" = []
"ualberta" = ["common"]
"uavionix" = ["common"]
"icarous" = []
"common" = []

"all-dialects" = [
"ardupilotmega",
"asluav",
"autoquad",
"matrixpilot",
"minimal",
"paparazzi",
"python_array_test",
"slugs",
"standard",
"test",
"ualberta",
"uavionix",
"icarous",
"common",
]

"emit-description" = []
"emit-extensions" = []
"std" = ["byteorder/std"]
"udp" = []
"tcp" = []
"direct-serial" = []
"embedded" = ["embedded-hal", "nb"]
default= ["std", "tcp", "udp", "direct-serial", "serial", "serde", "common"]

# build with all features on docs.rs so that users viewing documentation
# can see everything
[package.metadata.docs.rs]
features = ["default", "all-dialects"]
[workspace.package]
edition = "2021"
rust-version = "1.80.0"
keywords = ["mavlink", "parser", "protocol", "embedded"]
categories = ["aerospace", "aerospace::protocols", "parsing", "embedded"]

[workspace.lints.clippy]
cargo = { level = "warn", priority = -1 }
multiple_crate_versions = "allow"
semicolon_if_nothing_returned = "warn"
unnecessary_semicolon = "warn"
uninlined_format_args = "warn"
use_self = "warn"
Loading