All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Unify vcpkg manifest mode across all CI platforms (Linux, macOS, Windows) replacing per-platform manual ecosystem dependency builds (#885)
- Parallelize connection pool initialization with
std::async(#870)
- Mark
no_tlspolicy as deprecated with warning to use TLS-enabled policies in production (#871)
- Increase unit test coverage from 21% to 40% target (#873)
- Add
network_system_testcoveringnetwork_managerlifecycle, connection, and disconnection - Add
message_validator_extended_testfor extended message validation edge cases - Add
sliding_histogram_testforsliding_histogramstatistics and percentile calculations - Update Codecov configuration to track unit and integration coverage separately
- Add
- Extend
rate_limiterto support composite session-based identification keys (#872) - Migration guide for transitioning from adapters to NetworkSystemBridge pattern
- Comprehensive step-by-step migration instructions
- API comparison tables for old vs new patterns
- Common migration patterns and examples
- Troubleshooting section
-
thread_system_pool_adapterclass- Replaced by
ThreadPoolBridgefromnetwork_system_bridge.h - Will be removed in v3.0.0
- See migration guide
- Replaced by
-
common_thread_pool_adapterclass- Replaced by
ThreadPoolBridgefromnetwork_system_bridge.h - Will be removed in v3.0.0
- See migration guide
- Replaced by
-
common_logger_adapterclass- Replaced by
ObservabilityBridgefromnetwork_system_bridge.h - Will be removed in v3.0.0
- See migration guide
- Replaced by
-
common_monitoring_adapterclass- Replaced by
ObservabilityBridgefromnetwork_system_bridge.h - Will be removed in v3.0.0
- See migration guide
- Replaced by
-
bind_thread_system_pool_into_manager()function- Replaced by
NetworkSystemBridge::with_thread_system() - Will be removed in v3.0.0
- See migration guide
- Replaced by
- v2.1.0 (current): Deprecated adapters marked with
[[deprecated]]attribute - v2.2.0 (Q2 2026): Migration strongly encouraged
- v3.0.0 (Q3 2026): Deprecated adapters will be removed
Users are encouraged to migrate to the new NetworkSystemBridge facade as soon as possible.
See the migration guide for detailed instructions.
- Added: New features
- Changed: Changes in existing functionality
- Deprecated: Features that will be removed in future versions
- Removed: Removed features
- Fixed: Bug fixes
- Security: Security fixes
For migration assistance, please refer to the migration guides in the docs/migration/ directory.
Note: Starting from v0.1.0 (2026-03-10), network_system adopted semantic versioning aligned with vcpkg packaging. Earlier versions (v0.2.0 – v2.0.0) reflect the pre-vcpkg release history and are retained for reference.
- Unified architecture with Type Erasure infrastructure for
session_manager(#525, #526) - Unified core interfaces for all protocols (Phase 1) (#523)
- Unified messaging client/server templates for TCP protocol (#511, #512)
- Unified UDP messaging templates (#518)
- Unified type aliases for WebSocket and QUIC protocols (#519)
- TLS policy interfaces and protocol tags (#510)
- Unified socket abstraction using C++20 concepts (#501)
startable_baselifecycle pattern extraction (#500)- TCP, UDP, WebSocket, and QUIC protocol factory functions (Phase 2) (#528, #534, #535, #537)
- Backward compatibility aliases and migration guide (#536)
- OpenTelemetry-compatible distributed tracing (#460)
- TCP, HTTP/2, QUIC, and gRPC protocol instrumentation (#468, #469, #471, #476)
- OTLP HTTP exporter and sampling support (#470)
- Comprehensive unit and integration tests (#472, #477)
- Histogram metrics support for latency distributions (#453)
- Unified
SessionManager<T>template with comprehensive tests (#465, #466) - Circuit breaker pattern for resilient network clients (#420)
- QUIC enhancements:
- 0-RTT session ticket storage and restoration (#419)
- ECN feedback integration into congestion control (#421)
- Connection ID storage and rotation management (#415)
- Path MTU Discovery (PMTUD) per RFC 8899 (#439)
- HTTP/2 server with TLS and h2c support (#438)
- Interface classes and utility infrastructure (Phase 1.2) (#427)
- Migrated all protocol classes from CRTP to composition pattern:
- TCP classes (#445)
- UDP classes (#446)
- WebSocket classes (#447, #431)
- QUIC classes (#448, #432)
- Secure classes (#452)
- Reorganized protocol implementations into layered modules (#520)
- Replaced magic callback indices with named enum types (#502)
- Consolidated Result type aliases and added internal namespace (#496)
- Renamed
_KO.mddocumentation files to.kr.mdfor naming consistency
compatibility.handnetwork_modulenamespace aliases (#488)- Deprecated WebSocket API methods (#487)
- Deprecated UDP API methods (#490)
- Deprecated
generate_session_id()method (#489)
io_contextlifecycle management issues (#400, #410)- Thread pool API compatibility for
thread_systemintegration (#493, #495) - PTO timeout loss detection handling for QUIC (#414, #418)
- OpenSSL 3.x only: Dropped OpenSSL 1.1.1 support; OpenSSL 3.x is now required (#491)
- Namespace aliases removed:
network_modulenamespace no longer available (#488) - Deprecated APIs removed: WebSocket, UDP, and session manager deprecated methods removed (#487, #489, #490)
- CRTP base classes for messaging clients and servers (#386)
- C++20 module files for
kcenon.network(#396) - Official gRPC library integration:
- Infrastructure and dependency configuration (#366, #367)
- Wrapper layer for official gRPC library (#368)
- Service registration mechanism (#369)
- Testing and documentation (#370)
- Session idle timeout cleanup (#359)
- Send-side backpressure mechanism (#358)
- vcpkg ecosystem dependencies and standardized manifest (#373, #374)
- Migrated messaging classes to CRTP common base pattern:
messaging_clienttomessaging_client_base(#387)messaging_servertomessaging_server_base(#390)- Secure messaging classes (#391)
- UDP and WebSocket classes (#393)
- QUIC classes (#394)
- Consolidated build directories into CMake options (#388)
- Removed unused pipeline compression/encryption code (#389)
- Removed
/network_system/namespace compatibility layer (#379) - Created adapter between local
thread_pool_interfaceand commonIThreadPool(#351) - Decoupled monitoring integration via EventBus pattern (#348)
- CMake compile definition propagation for
KCENON_WITH_COMMON_SYSTEM(#341) - Thread-safe
localtime_r/localtime_susage inget_timestamp(#340) log_entryAPI compatibility for common_system v3.0.0 (#337)- Session cleanup order to prevent heap corruption (#334)
- TCP receive dispatch benchmark comparing
std::spanvsstd::vector(#325) - OpenSSL 3.x migration support (#312)
common_systemResult<T>adoption for unified error handling (#311)
- Unified namespace from
network_systemtokcenon::network(#331)- Added backward compatibility namespace aliases
- Added backward compatibility aliases to
forward.h
- Migrated TCP receive path to
std::spanfor zero-copy performance:tcp_socketstd::span receive callback (#321)secure_tcp_socketstd::span receive callback (#322)- WebSocket TCP receive path migration (#323)
- Internal messaging consumption of std::span callback (#324)
- Switched integration flags to
KCENON_WITH_*macros (#336)
- Intentional Leak pattern applied to
basic_thread_pool(#313)
- C++20 Concepts integration from updated common_system (#295)
- Comprehensive C++20 Concepts documentation (#297)
io_context_thread_managerfor unified thread management (#286)
- Complete
std::threadmigration tothread_system(#290):- Memory profiler migrated to thread_pool (#288)
- Logging migrated to common_system
ILoggerinterface (#287) - gRPC client async calls migrated to thread_pool (#284)
- Health monitor integrated with thread_system (#283)
send_coroutinefallback migrated to thread_pool (#282)- Replaced
basic_thread_poolwiththread_system::thread_pool(#280)
- Eliminated
scheduler_threadfromthread_system_adapter(#291) - Replaced
sleep_forwith synchronization primitives in tests (#293) - Updated version format to 0.x.x.x for pre-release documentation
- Replaced
std::thread().detach()with scheduler insubmit_delayed(#281)
- QUIC protocol implementation (RFC 9000, RFC 9001, RFC 9002):
- Variable-length integer encoding (#259)
- Frame types and parsing (#260)
- Packet header encoding/decoding (#261)
- QUIC-TLS integration (#262)
- QUIC socket with packet protection (#263)
- Stream management (#264)
- Connection state machine (#265)
- Loss detection and congestion control (#266)
messaging_quic_client(#267) andmessaging_quic_server(#268)- Integration tests and documentation (#269, #270)
- Removed
fmtlibrary dependency; now uses C++20std::formatexclusively (#258)
- Build: resolved
-Werrorwarnings for clean compilation - OpenSSL linkage made PUBLIC for dependent targets (#123)
- HTTP/2 client support with TLS 1.3 and ALPN (#109)
- gRPC support:
- Unary RPC using HTTP/2 transport (#111)
- Streaming RPC support (#113)
- DTLS support for secure UDP communication (#107)
- Network input validation (TICKET-006, P1 High) (#103)
- Network context service registration for dependency injection (#118)
- Automated SBOM generation workflow (#115)
- Version 1.0.0 designation for unified_system integration (#119)
- Migrated HTTP parsing functions to
Resulttype (#117) - Migrated
initialize/shutdowntoVoidResult(#116) - Standardized C++20 compiler requirements documentation (#120)
- Enforced TLS 1.3 as minimum version (#102)
- WebSocket E2E test failures (#101)
- HTTP/2 protocol foundation: frame layer and HPACK compression (#98)
- HTTP/2 protocol support design (NET-301) (#99)
- gRPC integration prototype (NET-304) (#100)
- HTTP benchmarks and WebSocket E2E tests (#95)
- Namespace refactoring, memory profiling, and static analysis (#96)
- Documentation and testing improvements (NET-306, NET-303, NET-305) (#97)
- Monitoring, error handling, and test improvements (#94)
- Kanban board documentation for work tracking
- Enhanced CI workflows with comprehensive dependency management and sanitizer testing (#87, #88)
- Enhanced dependency detection and test target naming (#89)
- Added forward declarations and modernized network components (#90)
- Applied consistent code formatting to source files (#91)
- Updated namespace and disabled warning suppressions (#93)
- Namespace inconsistency in integration headers (#92)
- HTTP Cookie and Multipart/form-data support (#83)
- HTTP advanced features (Phase 4) (#85)
- HTTP request buffering and connection management (#82)
- ZLIB support for HTTP compression (#81)
- Monitoring system and configuration framework integration (#80)
- thread_system integration with messaging_server and messaging_client (#78, #79)
- Migrated container_system tests to new API (Phase 7) (#86)
- Consolidated build scripts into
scripts/directory (#77) - Standardized BSD 3-Clause license (#76)
- Critical concurrency and thread safety issues (#84)
- Namespace compatibility with common_system (#75)
- HTTP/1.1 server and client implementation (#70)
- HTTP Phase 1 remediation for server/client (#71)
- HTTP Phase 2 core fixes and enhancements
- Chunked transfer encoding support
- Automatic response compression (gzip/deflate)
- Cookie and multipart/form-data parsing infrastructure
- Callback infrastructure for messaging
- TCP graceful shutdown on peer disconnects
- Use-after-move bug in PartialMessageRecovery test
- HTTP integration test timeout from incorrect executor type check
- Circular reference in messaging_server session callbacks
- Thread safety issue in
http_url::parse() - Memory leak from circular reference in
messaging_session - HTTP request buffering and synchronous response transmission
- zlib added to vcpkg dependencies for Windows builds
- WebSocket protocol implementation (RFC 6455):
- Phase 1: Frame layer (#53)
- Phase 2: Handshake layer (#54)
- Phase 3: Protocol layer (#55)
- Phase 4: Socket layer (#56)
- Phase 5: High-level client/server API (#57)
- Phase 6: Session management (#58)
- Network load testing framework (Phase 7) (#59)
- Performance optimization (Phase 8) (#60)
- TLS/SSL support for secure communication (#61)
- TLS 1.3 support (#62)
- Stability and reliability features (#63)
- Monitoring system integration (#64)
- Performance optimizations (#65)
- UDP reliability layer (#66)
- Callback mechanism for TCP and Secure TCP protocols (#67)
- Build warnings for parent project integration with strict settings (#68)
- UDP protocol support:
- UDP socket foundation
- UDP server and client implementation
- UDP build configuration option
- UDP documentation and examples
- UDP always available like TCP (#51)
- Samples and integration tests enabled (#69)
- Moved UDP example to samples directory
- Deprecated warning suppression from external headers
verify_buildand integration tests made optional
- Session timeout mechanism for idle connection management (#44)
- TLS/SSL configuration infrastructure (#43)
- Thread-safe session manager with backpressure (#41)
- Integration testing suite (Phase 5) (#38)
- Comprehensive documentation:
- Korean translations for all system documentation
- Architecture documentation with comprehensive technical details
- Phase documentation consolidated into permanent guides
- Optimized move semantics and added comprehensive thread safety docs (#40)
- Removed embedded dependencies; uses centralized Sources directory (#46)
- Async send pipeline lifetime issues and coroutine safety (#39)
- Messaging_client destructor safety (#42)
- Global
BUILD_INTEGRATION_TESTSflag respected (#45)
- Comprehensive performance benchmarking infrastructure (#23)
- Sanitizer CI/CD pipeline (TSAN/ASAN/UBSAN) (#24)
- Baseline performance metrics documentation (#25)
- Thread safety tests (#27)
- Phase 3 error handling preparation (#30)
- API documentation configuration (Doxygen) (#18)
- Simplified CMake configuration from 837 to 215 lines (#16)
- Enabled common_system integration by default (#17)
- Renamed
USE_COMMON_SYSTEMtoBUILD_WITH_COMMON_SYSTEM(#14) - Added monitoring integration support (#15)
- Thread safety in session and socket management (#26)
- Re-enabled tests and samples in CMakeLists.txt (#29)
- CI badge and removed redundant workflow files (#22)
- Doxygen workflow configuration (#34)
- common_system integration adapter (#10)
- common_system integration support (#11)
- Thread system integration and external project updates (#9)
- logger_system integration for structured logging (#6)
- Aligned dependency versions with unified configuration (#12)
- Comprehensive documentation reorganization and standardization (#7)
- Removed all hardcoded version information from codebase (#8)
- Namespace consistency and removed duplicate headers (#13)
- Build errors from version removal
- Core Infrastructure
- Complete separation from messaging_system (Phase 1-5) (#1, #2, #3, #4, #5)
- New namespace structure:
network_system::{core,session,internal,integration} - ASIO-based asynchronous networking with C++20 coroutines
- Messaging bridge for backward compatibility
- Build System
- CMake configuration with vcpkg support
- Flexible dependency detection (ASIO/Boost.ASIO)
- Cross-platform support (Linux, macOS, Windows)
- CI/CD Pipeline
- GitHub Actions workflows for Ubuntu (GCC/Clang) and Windows (Visual Studio/MSYS2)
- Dependency security scanning with Trivy
- License compatibility checks
- Container Integration
- Full integration with container_system
- Value container support in messaging bridge
- Documentation
- Doxygen configuration for API documentation
- Comprehensive README with build instructions
- Architecture documentation
- Samples
- Comprehensive sample programs for network system
- Initial extraction of network_system as independent component from messaging_system
- Basic TCP client/server functionality
- Session management foundation
- Message pipeline processing
- High-performance asynchronous messaging infrastructure