Skip to content

libntirpc-sys 0.3.4

Latest

Choose a tag to compare

@vmingchen vmingchen released this 25 Oct 23:06
  • Add reusable client::Client configuration and a safe RpcCodec trait, with
    the built-in WrapString<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 XdrString that
    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