unsafe for Fun and Profit
A guide to traversing the FFI boundary between Rust and other languages. A
rendered version is available here. This guide is centred around the
idea of building a REST client using
Qt (C++) for the GUI and
for the business logic.
Building and viewing the book locally is really easy. First you need to get the source code:
$ git clone https://github.com/Michael-F-Bryan/rust-ffi-guide
Make sure you have
$ cargo install mdbook
mdbook to build and serve the book:
$ mdbook serve --open
It should now be viewable at http://localhost:3000/ (if it didn't open up automatically).
To build the application itself you'll need the following installed:
- rust (install with rustup)
- mdbook (
cargo install mdbook)
In this application we're using
cmake as the build system. The
ci/test.sh script will make a
build/ directory and invoke
compile and test everything.
The final application should now be at
Alternatively, if you don't want to install all the dependencies I've created a docker image (michaelfbryan/ffi-guide) for compiling Rust and Qt.
$ docker run \ -v $(pwd):/code \ -v ~/.cargo:$HOME/.cargo \ -e CARGO_HOME=$HOME/.cargo \ --user $UID \ michaelfbryan/ffi-guide ci/test.sh
If there's anything you feel is missing or could be improved, please create an issue. Pull requests are welcome too!