Releases: jamesgober/network-protocol
Network Protocol v1.1.0 – Enhanced and Reinforced
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 strconstants for all hot path errors - Lazy
.into()conversion only when error is returned - Full Error trait compatibility maintained
- Enhanced
error::constantsmodule with 16+ error constants
Documentation
- API Documentation
- Performance Metrics - Updated with v1.1.0 benchmarks
- Architecture Overview
- Changelog - Complete release history
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.
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
suspiciousandcorrectnesslints at deny level - Supply chain hardening with modernized
cargo-denyconfiguration (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 warningsacross 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_valuewarnings 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
- API Documentation
- Architecture Overview
- Threat Model & Security Analysis
- Release Notes
- Contributing Guide
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:
bincodeandrustls-pemfileare 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
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
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
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/HandshakeAckandPing/Pongso 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
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
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