Add C API
parent
5266151cc5
commit
a8283eec47
1 changed files with 35 additions and 0 deletions
35
C-API.md
Normal file
35
C-API.md
Normal file
|
|
@ -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
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue