feat: Sprint 3 — C FFI bindings, WASM compilation, Python example, SDK docs
- Create quicproquo-ffi crate with 7 extern "C" functions: connect, login, send, receive, disconnect, last_error, free_string (produces libquicproquo_ffi.so and .a) - Feature-gate quicproquo-core for WASM: identity, hybrid_kem, safety_numbers, sealed_sender, app_message, padding, transcript all compile to wasm32-unknown-unknown - Add Python ctypes example (examples/python/qpq_client.py) with QpqClient wrapper class and CLI - Add SDK documentation: FFI reference, WASM guide, qpq-gen generators - Update Dockerfile for quicproquo-ffi workspace member
This commit is contained in:
@@ -23,6 +23,7 @@ COPY crates/quicproquo-kt/Cargo.toml crates/quicproquo-kt/Cargo.toml
|
||||
COPY crates/quicproquo-plugin-api/Cargo.toml crates/quicproquo-plugin-api/Cargo.toml
|
||||
COPY crates/quicproquo-gui/Cargo.toml crates/quicproquo-gui/Cargo.toml
|
||||
COPY crates/quicproquo-mobile/Cargo.toml crates/quicproquo-mobile/Cargo.toml
|
||||
COPY crates/quicproquo-ffi/Cargo.toml crates/quicproquo-ffi/Cargo.toml
|
||||
|
||||
# Create dummy source files so `cargo build` can resolve the dependency graph
|
||||
# and cache the compiled dependencies before copying real source.
|
||||
@@ -38,6 +39,7 @@ RUN mkdir -p \
|
||||
crates/quicproquo-plugin-api/src \
|
||||
crates/quicproquo-gui/src \
|
||||
crates/quicproquo-mobile/src \
|
||||
crates/quicproquo-ffi/src \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-server/src/main.rs \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-client/src/main.rs \
|
||||
&& echo 'fn main() {}' > crates/quicproquo-gen/src/main.rs \
|
||||
@@ -48,7 +50,8 @@ RUN mkdir -p \
|
||||
&& touch crates/quicproquo-kt/src/lib.rs \
|
||||
&& touch crates/quicproquo-plugin-api/src/lib.rs \
|
||||
&& touch crates/quicproquo-gui/src/lib.rs \
|
||||
&& touch crates/quicproquo-mobile/src/lib.rs
|
||||
&& touch crates/quicproquo-mobile/src/lib.rs \
|
||||
&& touch crates/quicproquo-ffi/src/lib.rs
|
||||
|
||||
# Schemas must exist before the proto crate's build.rs runs.
|
||||
COPY schemas/ schemas/
|
||||
|
||||
Reference in New Issue
Block a user