From a8283eec47298ca926c882815cd0cfa3794677e3 Mon Sep 17 00:00:00 2001 From: kamal Date: Thu, 2 Apr 2026 20:50:08 +0000 Subject: [PATCH] Add C API --- C-API.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 C-API.md diff --git a/C-API.md b/C-API.md new file mode 100644 index 0000000..f4d2d6c --- /dev/null +++ b/C-API.md @@ -0,0 +1,35 @@ +# libsoliton_capi + +C ABI FFI layer for [libsoliton](https://git.lo.sh/lo/libsoliton) — a pure-Rust post-quantum cryptographic library. + +## API + +The complete API is defined in [`soliton.h`](soliton.h) (48 exported functions, cbindgen-generated). All functions return `int32_t` error codes; opaque handles are created/freed via matched `_new`/`_free` pairs. + +## Build + +```bash +cargo build --release -p libsoliton_capi +``` + +Produces: +- `target/release/libsoliton_capi.so` (Linux) / `.dylib` (macOS) / `.dll` (Windows) +- `target/release/libsoliton_capi.a` (static) + +## Link + +**pkg-config:** +```bash +gcc main.c $(pkg-config --cflags --libs libsoliton) -o main +``` + +**CMake:** +```cmake +find_package(Soliton REQUIRED) +target_link_libraries(myapp Soliton::Soliton) +``` + +**Direct:** +```bash +gcc main.c -I path/to/soliton_capi -L path/to/target/release -lsoliton_capi -o main +```