Files
quicnprotochat-lang-clients/crates/quicnprotochat-bindings/Cargo.toml
Christian Nennemann f511903a5d feat: add Python (PyO3) and Ruby (Magnus) native bindings
Introduces three crates:
- quicnprotochat-bindings: shared Rust API returning structured data
  instead of printing to stdout; explicit per-call auth (no global
  OnceLock); QPCE state files fully interoperable with the CLI.
- quicnprotochat-python: PyO3 0.22 extension; GIL released during
  all blocking QUIC calls via py.allow_threads.
- quicnprotochat-ruby: Magnus 0.7 extension; Rakefile build task.

Core/proto crates referenced via git dep on the main repo.
2026-02-22 18:56:27 +01:00

48 lines
1.2 KiB
TOML

[package]
name = "quicnprotochat-bindings"
version = "0.1.0"
edition = "2021"
description = "Language-agnostic Rust library powering Python and Ruby native bindings."
license = "MIT"
[lib]
name = "quicnprotochat_bindings"
crate-type = ["rlib"]
[dependencies]
quicnprotochat-core = { git = "git@git.xorwell.de:c/quicnprotochat.git" }
quicnprotochat-proto = { git = "git@git.xorwell.de:c/quicnprotochat.git" }
openmls_rust_crypto = { workspace = true }
# Serialisation + RPC
capnp = { workspace = true }
capnp-rpc = { workspace = true }
# Async / networking
tokio = { workspace = true }
tokio-util = { workspace = true }
futures = { workspace = true }
quinn = { workspace = true }
quinn-proto = { workspace = true }
rustls = { workspace = true }
# Serialisation
serde = { workspace = true }
bincode = { workspace = true }
# Crypto — OPAQUE PAKE
opaque-ke = { workspace = true }
rand = { workspace = true }
# State encryption
argon2 = { workspace = true }
chacha20poly1305 = { workspace = true }
sha2 = { workspace = true }
# Error handling
anyhow = { workspace = true }
thiserror = { workspace = true }
# Hex encoding for public return values
hex = "0.4"