[Libguestfs] [PATCH v2 2/3] rust: create basic Rust bindings
Eric Blake
eblake at redhat.com
Wed Jul 12 13:36:55 UTC 2023
On Mon, Jun 26, 2023 at 08:02:08AM +0000, Tage Johansson wrote:
> From: Tage Johansson <frans.tage at gmail.com>
>
> This commit creates basic Rust bindings in the rust directory.
> The bindings are generated by generator/Rust.ml and generator/Rust.mli.
>
> No tests are created so far.
>
> In rust/libnbd-sys, [rust-bindgen](https://github.com/rust-lang/rust-bindgen)
> is used to generate low level Rust bindings to libnbd.h. This requires Clang,
> see [this link](https://rust-lang.github.io/rust-bindgen/requirements.html#clang).
> Ultimately, we shall generate the low level bindings without rust-bindgen in
> the future so that Clang would not be required.
>
> Apart from Clang, you would need Cargo with Rustdoc and Rustfmt to build
> the Rust bindings. See [here](https://www.rust-lang.org/tools/install)
> for installation instructions.
> ---
> Makefile.am | 1 +
> configure.ac | 28 ++
> generator/Makefile.am | 2 +
> generator/Rust.ml | 529 +++++++++++++++++++++++++++++++++++++
> generator/Rust.mli | 20 ++
> generator/generator.ml | 2 +
> generator/utils.ml | 9 +-
> generator/utils.mli | 3 +-
> rust/.gitignore | 3 +
> rust/Cargo.toml | 48 ++++
> rust/Makefile.am | 60 +++++
> rust/cargo_test/.gitignore | 2 +
Do we need the separate .gitignore files? I tend to prefer everything
in the top-level .gitignore (just one file to edit when amending the
list of ignored files, instead of a recursive hunt for which
.gitignore is most applicable).
Also, have a look at scripts/git.orderfile; it includes a trick for
making your diffs display in an order more logical for reviewers than
just alphabetical by filename.
I haven't reviewed the patch itself at this time (I'm letting Rich
have first crack at it).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list