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