How les-s-nik/polonium works
Polonium is a studying-oriented C++ HTTP/JSON API framework. Its main workflow accepts TCP connections, parses HTTP requests, dispatches by method and URI to registered router handlers, and serializes API responses back to clients. Routing also supports URI-template parameters; JSON helpers and configurable logging, sockets, and worker threads provide supporting capabilities. Relationships are limited to those shown in the README, excerpts, and SOURCE INDEX; several implementation details are unsampled.
Main entry points: connection_handler.cpp Connection Handler · polonium.cpp Polonium App · uri_parser.cpp URI Templates · dispatcher.cpp Route Dispatcher
Components 18
Server Runtime
- Polonium App
src/app/polonium.cpp - Connection Handler
src/sockets/connection_handler.cpp - TCP Socket
src/sockets/tcp_socket.cpp - Thread Pool
src/thread_pool.cpp
HTTP and JSON
- HTTP Request Parser
src/http/request_parser.cpp - HTTP Actions
src/http/http_actions.cpp - Response Serializer
src/http/response_serializer.cpp - JSON Helpers
src/json_parser.cpp
Routing
- Route Dispatcher
src/routing/dispatcher.cpp - Router API
src/routing/polonium_router.cpp - URI Templates
src/routing/uri_parser.cpp - Parameter Parser
src/routing/params_parser.cpp - URI Parameters
src/routing/uri_params.cpp - API Responses
src/routing/api_responses.cpp - Users Router
examples/users_example/src/users_router.cpp
Configuration and Support
- App Settings
src/app/polonium_config.cpp - Logger
src/app/polonium_logger.cpp
Other components
- API Client
Connections 18
- API Client → Connection Handler: sends requests
README.md - Polonium App → Router API: includes router
README.md - Polonium App → Connection Handler: starts server
README.md - Connection Handler → TCP Socket: accepts and transfers
src/sockets/connection_handler.cpp - Connection Handler → Thread Pool: queues connections
src/sockets/connection_handler.cpp - Connection Handler → HTTP Request Parser: feeds request bytes
src/sockets/connection_handler.cpp - Connection Handler → Route Dispatcher: checks route
src/sockets/connection_handler.cpp - Connection Handler → API Responses: invokes handler
src/sockets/connection_handler.cpp - Connection Handler → HTTP Actions: builds HTTP response
src/sockets/connection_handler.cpp - Connection Handler → Response Serializer: serializes response
src/sockets/connection_handler.cpp - HTTP Request Parser → HTTP Actions: fills request
- Route Dispatcher → URI Templates: matches templates
src/routing/dispatcher.cpp - Router API → Route Dispatcher: registers routes
src/routing/polonium_router.cpp - URI Templates → Parameter Parser: parses parameters
src/routing/uri_parser.cpp - URI Templates → URI Parameters: builds parameter values
src/routing/uri_parser.cpp - Users Router → Router API: defines routes
README.md - API Responses → JSON Helpers: serializes JSON content
src/routing/api_responses.cpp - Polonium App → App Settings: uses settings
README.md