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.
48 lines
1.2 KiB
TOML
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"
|