-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restructure project to enable custom mavlink bindings generation #223
Restructure project to enable custom mavlink bindings generation #223
Conversation
Split the project into three crates: * mavlink-core: core MAVLink types including TCP, UDP and serial connections * mavlink-bindgen: a library & CLI for generating Rust bindings for MAVLink dialects * mavlink: generated MAVLink bindings for the MAVLink dialects in the mavlink/mavlink repo
The mavlink-bindgen crate does not itself need to run on embedded hardware
This now passes all checks in my fork, so is ready for review @patrickelectric . The biggest change here is refactoring the crate into 3 crates in a single cargo workspace (which I think is required to supporting custom dialects). I'm happy to discuss alternative approaches or structures of a cargo workspace. Thanks! |
That looks awesome, thanks @GrahamDennis. I'll review asap. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a mavlink-embedded binary lost in the PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've also removed the accidentally-commited mavlink-embedded binary in the root directory.
This change broke two links in the main README to the examples. |
The goal of this PR is to enable generating Rust MAVLink bindings from custom MAVLink dialects in new crates. This is done by splitting the project into three crates:
mavlink-bindgen can be used to create MAVLink bindings for Rust, and this is used from
build.rs
in themavlink
crate to create bindings from the standard MAVLink dialects in https://github.com/mavlink/mavlink.The
mavlink
crate is intended to remain API-compatible with the previous structure.