Skip to content

Releases: jamesgober/network-protocol

Network Protocol v1.1.0 – Enhanced and Reinforced

30 Jan 16:01

Choose a tag to compare

Network Protocol v1.1.0

The fastest - most efficient release yet!

Network Protocol library version 1.1.0. This performance-focused release delivers the fastest, most efficient version yet with measurable double-digit improvements across all key metrics. All changes are non-breaking and fully backward compatible with 1.0.1.

What's New

Performance Optimizations

  • Buffer pooling for small allocations (<4KB) reduces allocator contention by 3-5% under high load
  • Adaptive compression with Shannon entropy analysis automatically skips incompressible data, saving 10-15% CPU in mixed workloads
  • Zero-allocation error paths using static constants reduce error handling overhead by 5-10%
  • +26% encoding throughput for large payloads (1MB: 2.48 GiB/s)
  • +56% Zstd compression speed (1MB: 1.43 GiB/s)
  • +135% Zstd decompression speed (1MB: 1.06 GiB/s)
  • +24% LZ4 compression speed (1MB: 1.61 GiB/s)

New Features

  • Buffer Pool Module (src/utils/buffer_pool.rs): Thread-safe object pooling for efficient memory reuse
  • Adaptive Compression API: maybe_compress_adaptive() with configurable entropy threshold (4.0 bits/byte)
  • Error Constants Module: Centralized static error messages for zero-allocation error propagation
  • Enhanced Testing: 13 new tests for buffer pooling, entropy calculation, and adaptive compression

Code Quality

  • Removed legacy code: Deleted obsolete handshake_old.rs (782 lines) for cleaner codebase
  • Improved maintainability: All optimizations are well-tested and documented
  • Production-ready: 196+ tests passing, zero clippy warnings, comprehensive benchmarks

Installation

Add to your Cargo.toml:

[dependencies]
network-protocol = "1.1.0"

Measured Performance Gains

From v1.0.1 → v1.1.0 (Direct Comparison)

  • Encoding: +26% (1MB payloads: 2.48 GiB/s)
  • Zstd Compression: +56% (1MB: 1.43 GiB/s)
  • Zstd Decompression: +135% (1MB: 1.06 GiB/s)
  • LZ4 Compression: +24% (1MB: 1.61 GiB/s)
  • Latency: -3-5% (lower is better)
  • CPU Usage: -10-15% in mixed workloads
  • Error Overhead: -5-10%

Cumulative Historical Performance (v0.9.8 → v1.1.0)

  • Throughput: ~63% improvement compound
  • Latency: ~45% reduction compound
  • Memory efficiency: ~18% better sustained

Key Improvements

This release solidifies network-protocol as the fastest, most efficient Rust networking library through:

  • Zero breaking changes - fully compatible with existing 1.0.1 code
  • Measurable performance gains - empirically validated with comprehensive benchmarks
  • Transparent optimizations - no code changes required for existing applications
  • Production-grade quality - all optimizations tested, documented, and validated

Technical Details

Buffer Pooling Architecture

  • Thread-safe Arc<Mutex<Vec<Vec<u8>>>> implementation
  • Pre-allocates 50x 1KB buffers on initialization
  • Automatic return-to-pool via Drop trait
  • Size-based eviction (buffers >4KB not returned)

Adaptive Compression Logic

  • Shannon entropy formula: H = -Σ(p_i × log₂(p_i))
  • Samples first 512 bytes for fast analysis
  • Threshold: 4.0 bits/byte (high entropy = skip compression)
  • Validates compression benefit before use

Zero-Allocation Error Patterns

  • Static &'static str constants for all hot path errors
  • Lazy .into() conversion only when error is returned
  • Full Error trait compatibility maintained
  • Enhanced error::constants module with 16+ error constants

Documentation

Migration Guide

No migration required! All optimizations are transparent and backward compatible. Simply update your Cargo.toml dependency to 1.1.0 and rebuild. Performance improvements are automatic.

Quality Metrics

  • Tests: 196+ tests across 22 suites - ALL PASSED
  • Clippy: Strict mode (-D warnings) - ZERO WARNINGS
  • Format: All code properly formatted
  • Builds: Debug and release builds successful
  • Benchmarks: All benchmarks executed and documented
  • Code Quality: Zero unsafe code, comprehensive error handling

Known Limitations

  • bincode dependency: Unmaintained upstream (RUSTSEC-2025-0141). Migration to alternative planned for v1.2.0. Current usage is safe for our use case.
  • rustls-pemfile: Indirect dependency via rustls 0.21 (RUSTSEC-2025-0134). Will be resolved with future rustls upgrade.

Both advisories are tracked and have mitigation strategies in place. Neither poses an immediate security risk to production deployments.

Feedback & Issues

Found a bug? Have a suggestion? Please open an issue on our GitHub repository.

Acknowledgments

Thanks to the Rust community for excellent tooling (criterion, cargo-fuzz, cargo-clippy) that enabled rigorous performance validation and optimization.

Full Changelog: v1.0.0...v1.1.0

Network Protocol v1.0.1 – Hardening and QA patch.

23 Jan 13:23

Choose a tag to compare

Network Protocol library version 1.0.1. This patch release focuses on quality assurance, security hardening, and production readiness. All changes are non-breaking and fully backward compatible with 1.0.0.

What's New

Security & Code Quality

  • TLS refactoring reduced load_client_config() from 143 lines to 6 focused helper functions, improving maintainability
  • Comprehensive Clippy enforcement with suspicious and correctness lints at deny level
  • Supply chain hardening with modernized cargo-deny configuration (0.18+ compatible)
  • 100% clean codebase with zero unsafe code in protocol core and all tests passing

Documentation & Transparency

  • ARCHITECTURE.md: 500+ line system design document with layer diagrams, data flow, and security model
  • THREAT_MODEL.md: 300+ line threat analysis covering attack scenarios and mitigations
  • Module-level documentation: Enhanced docs for core, protocol, service, and utils layers
  • Security Guarantees: Explicit documentation of cryptographic, DoS/memory, and implementation protections

Testing & CI/CD

  • 80 comprehensive tests across unit, integration, stress, edge-case, and doc tests
  • All tests passing with zero failures
  • Format compliance: Passes cargo fmt --check
  • Strict linting: Passes cargo clippy -D warnings across all targets
  • Release build: Optimized with LTO and single codegen unit
  • Enhanced CI pipeline: 7 automated quality gates (fmt, build, lint, docs, audit, supply-chain, fuzz)

Fixes & Improvements

  • Format fixes: Corrected whitespace/blank line issues in error.rs and tls.rs
  • Clippy compliance: Added appropriate #[allow] attributes to 13 test files and 3 benchmark files
  • Inner attribute ordering: Fixed attribute placement in timeouts.rs to comply with Rust syntax
  • Test linting: Resolved let_unit_value warnings in performance tests

Installation

Add to your Cargo.toml:

[dependencies]
network-protocol = "1.0.1"

Key Improvements

This release solidifies 1.0.0 as production-ready through:

  • Zero code breaking changes - fully compatible with existing 1.0.0 code
  • Enhanced security posture with hardened TLS and supply chain visibility
  • Production-grade documentation for architects and maintainers
  • Battle-tested quality gates ensuring reliability across platforms

Documentation

Known Limitations

  • cargo-audit/deny: Temporary parsing issue with advisory DB CVSS 4.0 entries (external tool limitation, not a security issue). Workaround: use pinned advisory DB or wait for tool updates.
  • Dependency maintenance: bincode and rustls-pemfile are unmaintained; migration path is tracked but not urgent for current use cases.

Feedback & Issues

Found a bug? Have a suggestion? Please open an issue on our GitHub repository.

Full Changelog: v1.0.0...v1.0.1

Release Notes - Network Protocol v1.0.0

19 Aug 10:31

Choose a tag to compare

Network Protocol library version 1.0.0. This release represents the culmination of extensive development and includes significant improvements to configuration, performance, and documentation.

What's New

Comprehensive Configuration System

  • Complete configuration framework with TOML file and environment variable support
  • Customizable settings for server, client, transport, and logging
  • Default configuration values for streamlined setup
  • Environment variable overrides for flexible deployment

Performance Optimizations

  • Improved compression utilities with better ergonomics
  • Enhanced dispatcher performance with 700ns average read time
  • Stable TLS shutdown handling with improved reliability
  • Backpressure mechanism performs reliably under high load tests

Documentation Enhancements

  • Comprehensive error documentation across all core modules
  • Detailed API reference with usage examples
  • Future roadmap outlined in PLANS.md
  • Release checklist for transparent process

Code Quality Improvements

  • Fixed Clippy warnings throughout the codebase
  • Improved TLS shutdown test stability
  • Enhanced error handling patterns across public API
  • Better docstrings for all public functions

Installation

Add to your Cargo.toml:

[dependencies]
network-protocol = "1.0.0"

Documentation

Feedback

This is a Release Candidate - we welcome your feedback and bug reports before the final 1.0.0 release!

Please submit any issues or feature requests to our GitHub repository.

Full Changelog: v0.9.9...v1.0.0

network-protocol v0.9.9-beta

18 Aug 03:28

Choose a tag to compare

Pre-release

A secure, high-performance Rust protocol core with an ECDH handshake and post-handshake encryption, first-class TLS/mTLS (with cert pinning & dev certs), a custom binary frame with optional LZ4/Zstd compression, and a plugin-friendly zero-copy dispatcher. Ships modular transports (TCP, Unix, TLS; cluster sync scaffolded), graceful shutdown, and Tokio examples—built for databases, daemons, and real-time services. ([GitHub]1)

“Secure, pluggable Rust protocol: TLS/mTLS, ECDH sessions, binary framing + compression, zero-copy dispatch, and graceful shutdown for services and databases.” ([GitHub]1)

Full Changelog: v0.9.6...v0.9.9

network-protocol v0.9.6-beta

18 Aug 01:35

Choose a tag to compare

Pre-release

A secure, high-performance Rust protocol core with a custom binary frame (optional compression), a pluggable dispatcher, and modular transports (TCP, Unix, TLS; cluster sync path defined)—built for databases, daemons, and real-time services. ([GitHub]1)

What’s new in 0.9.6

  • TLS/mTLS transport, pinned and practical. First-class TLS transport with mutual-auth support, certificate pinning, and a built-in self-signed cert generator for dev flows. This lands alongside the existing ECDH handshake + post-handshake encryption story. ([GitHub]1)
  • Dispatcher tuned for zero-copy paths. The plugin-friendly message router now emphasizes zero-copy serialization/decoding in hot routes so services can scale without extra allocations or copies. ([GitHub]1)
  • Graceful shutdown across servers. All server variants expose a clean shutdown with configurable timeouts (examples show Ctrl-C integration). ([GitHub]1)
  • Concrete TLS examples. New sample TLS server/client flows (with mTLS knobs) show how to wire secure sessions quickly. ([GitHub]1)
  • Message set with heartbeat. Built-ins include HandshakeInit/HandshakeAck and Ping/Pong so you can keep connections healthy out of the box. ([GitHub]1)

Core capabilities (recap)

  • Secure handshake + encrypted application traffic (ECDH key exchange), plus TLS transport with optional mutual auth. ([GitHub]1)
  • Custom binary framing with optional compression (LZ4, Zstd) for low-latency messaging. ([GitHub]1)
  • Plugin-friendly dispatcher for clean message routing with zero-copy in hot paths. ([GitHub]1)
  • Modular transports: remote TCP, local Unix socket, TLS; cluster sync scaffolding is called out in the structure. ([GitHub]1)
  • Built for back-end services (databases, daemons, real-time systems); examples are Tokio-based. ([GitHub]1)

Quick start: the README includes minimal TCP and TLS server/client snippets you can paste into a #[tokio::main] app. ([GitHub]1)


Full Changelog: v0.9.3...v0.9.6

network-protocol v0.9.3 Beta

17 Aug 22:05

Choose a tag to compare

Pre-release

network-protocol is a modular Rust networking layer that gives you a secure handshake with post-handshake encryption, a custom binary packet format (with compression), and a plugin-friendly dispatcher for message routing. It ships with remote TCP and local Unix socket transports (with cluster sync planned), and is designed for microservices, databases, daemons, and system protocols. Examples default to Tokio for async execution. ([GitHub]1)

Key Capabilities

  • Secure session setup with a handshake and encrypted application traffic thereafter. ([GitHub]1)
  • Custom binary framing + compression for efficient, low-latency messaging. ([GitHub]1)
  • Pluggable dispatcher so you can register handlers and route messages cleanly. ([GitHub]1)
  • Modular transports: TCP and Unix sockets today; cluster sync is planned. ([GitHub]1)
  • Built for service backends like databases/daemons/real-time systems; Tokio-based examples included. ([GitHub]1)

Tip: the README shows the feature list and quick server/client examples with #[tokio::main]; keep that in the release page so folks can try it instantly. ([GitHub]1)

Full Changelog: 0.9.0...v0.9.3

Stable Pre-Release

30 Jul 07:26

Choose a tag to compare

Stable Pre-Release Pre-release
Pre-release

Project Summary — network‑protocol v0.9.0

Network‑Protocol is a secure, high‑performance Rust protocol core designed for production‑grade applications, services, and daemons. This modular crate offers TCP and Unix socket transport, encrypted messaging, plugin‑based opcode routing, and built‑in benchmarks.

Snapshot

  • Post‑handshake encryption using XChaCha20‑Poly1305
  • Custom binary framing with optional compression support
  • Dynamic dispatcher for plugin‑style message routing
  • Modular transports: remote TCP, local UDS, early cluster sync
  • Tested and benchmarked: integration and performance tests included

Use Cases

  • Deploy secure daemon/client pipelines
  • Built-in routing core for message dispatch
    I- deal for microservices, internal RPC, inter-service communication
  • Extensible to clustered communication protocols (RAFT‑lite, Gossip)

Release Highlights | v0.9.0 (Stable Pre‑Release)

  • Stable Transport + Secure Connection APIs
  • Fully operational daemon and client with encrypted messaging
  • Dispatcher handles PING, PONG, ECHO, and custom user messages
  • Benchmark suite shows reliable latency and throughput in real testing

Community Standing

Docs.rs shows network‑protocol at version v0.9.0 with ~35% documentation coverage and solid metadata coverage.
Dependencies include Tokio, bincode, chacha20poly1305, LZ4/Zstd compression, and tracing.

The project’s design aligns with best practices in high‑speed protocol engineering—error‑safe framing, pluggable codec layers, and clean message handling.

Full Changelog: https://github.com/jamesgober/network-protocol/commits/0.9.0