Repository navigation
-
Add reusable
client::Clientconfiguration and a safeRpcCodectrait, with
the built-inWrapString<N>codec and borrowed network/memory XDR stream views.
Encode directly without extra buffers or input copies; contain codec panics
at the C boundary and reject nested RPC calls from codecs. -
Add a safe synchronous string RPC client with managed initialization and
result ownership; remove unsafe code from the hello client and README example. -
Keep synchronous RPC request state alive until active and queued reply
callbacks finish, including across retries, errors, and timeouts. -
Fix an IPv4 broadcast address overread and initialize broadcast address
storage, with native IPv4/IPv6 regression coverage. -
Select stable Rust explicitly in the main CI job.
-
Remove deleted vendored sources from incremental native builds using a source
manifest, preserving generated files and unchanged source timestamps. -
Add separate allocation and throughput benchmarks, native/Rust allocation
accounting, and state-machine fuzzing with native/Rust ASan coverage and leak
detection. Gate allocation invariants and bounded fuzz campaigns in CI. -
Borrow encoded XDR output without copying, reuse encoder/decoder allocations
through reset/rewind/refill, and copy each fuzz input once for all decoders. -
Add safe memory XDR string encoders/decoders and an owning
XdrStringthat
frees with ntirpc's allocator; reuse them in fuzzing and hello examples. -
Enforce unsafe block comments and unsafe function contracts, with generated
binding exceptions confined to their own module. -
Keep fuzzing XDR stream self-pointers stable, avoid raw byte-slice casts and
shared mutable free streams, and document FFI ownership and lifetime rules. -
Use Rust-owned request allocations and safe UDP socket setup in the examples;
install server callbacks before enabling event dispatch and free decoded
strings through ntirpc's allocator.
Published crate: libntirpc-sys 0.3.4