Merged
Conversation
…ptive variable names
…headers, and version
…_string()` for JSON body
…_string()` for JSON body
…nd add utility functions for JSON and chunked transfer encoding checks
…ontent-type and content-length validation
…nd content-length header handling
…rieval, and update route handling to utilize structured bindings for improved readability.
…runcation; initialize SSL socket with hostname.
…mory management and ensure proper connection handling.
…ode across client and server implementations
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR represents a major refactoring of the ratioNet library, migrating from Boost.Beast to Asio for networking. The changes include a complete rewrite of server and client architecture, introduction of middleware support, WebSocket session management, and comprehensive test coverage.
Key Changes:
- Migration from Boost.Beast to standalone Asio library
- Complete rewrite of server/client session management with async and sync variants
- Introduction of middleware system (CORS, logging)
- Unified request/response architecture with type-safe verb enums
Reviewed Changes
Copilot reviewed 44 out of 45 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/test_server.cpp | Updated test to use new server API with restructured route handlers |
| tests/test_client.cpp | Replaced Boost.Beast client tests with Asio-based client and async client tests |
| tests/test_ws.cpp | Removed legacy WebSocket client test file |
| tests/CMakeLists.txt | Updated build configuration to use new test structure |
| src/server/* | New server implementation with session management and WebSocket support |
| src/client/* | New client implementation with sync and async variants |
| src/middlewares/* | New middleware system for CORS and logging |
| include/common/* | New common types (verb, status_code, message, request, response, etc.) |
| include/server/* | New server headers with session and WebSocket session interfaces |
| include/client/* | New client headers with session-based architecture |
| include/middlewares/* | Middleware base class and implementations |
| CMakeLists.txt | Updated build system to fetch Asio and configure SSL support |
| README.md | Updated documentation to reflect new API |
Comments suppressed due to low confidence (1)
tests/test_client.cpp:1
- SERVER_HOST and SERVER_PORT are undefined macros/constants. These should either be defined in a header or replaced with literal values (e.g., "localhost", 8080).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.