Add simple README about our C bindings generation stuff 2021-02-bindings-rust-bump
authorMatt Corallo <git@bluematt.me>
Fri, 19 Feb 2021 22:56:15 +0000 (17:56 -0500)
committerMatt Corallo <git@bluematt.me>
Mon, 1 Mar 2021 23:07:29 +0000 (18:07 -0500)
c-bindings-gen/README.md [new file with mode: 0644]

diff --git a/c-bindings-gen/README.md b/c-bindings-gen/README.md
new file mode 100644 (file)
index 0000000..8377adc
--- /dev/null
@@ -0,0 +1,14 @@
+LDK C Bindings Generator
+========================
+
+This program parses a Rust crate's AST from a single lib.rs passed in on stdin and generates a
+second crate which is C-callable (and carries appropriate annotations for cbindgen). It is usually
+invoked via the `genbindings.sh` script in the top-level directory, which converts the lightning
+crate into a single file with a call to
+`RUSTC_BOOTSTRAP=1 cargo rustc --profile=check -- -Zunstable-options --pretty=expanded`.
+
+`genbindings.sh` requires that you have a rustc installed with the `wasm32-wasi` target available
+(eg via the `libstd-rust-dev-wasm32` package on Debian or `rustup target add wasm32-wasi` for those
+using rustup), cbindgen installed via `cargo install cbindgen` and in your `PATH`, and `clang`,
+`clang++`, `gcc`, and `g++` available in your `PATH`. It uses `valgrind` if it is available to test
+the generated bindings thoroughly for memory management issues.