How ruarq/webserver works
RN-Praxis is a small C HTTP server backed by an HTTP message library. Its principal workflow accepts client requests, buffers and parses HTTP messages, dispatches supported methods, serves or modifies resources under a configured root, then serializes and sends responses. The HTTP library also provides request/response and message parsing and serialization. The README is empty, and excerpts omit parts of the server loop and handlers, so uncertain internal wiring is not shown.
Main entry points: webserver.c Request dispatch · response.c Response model · parser.c Request parser · request.c Request model
Components 17
Server runtime
- Server entry
server/src/main.c - Webserver loop
server/src/webserver.c - Client I/O
server/src/webserver.c - Request dispatch
server/src/webserver.c - Response queue
server/src/webserver.c
HTTP protocol
- Request parser
http/src/parser.c - Request model
http/src/request.c - Message model
http/src/message.c - Response model
http/src/response.c
Resource handling
- GET handler
server/src/webserver.c - PUT handler
server/src/webserver.c - DELETE handler
server/src/webserver.c - Path mapping
server/src/webserver.c - Resource loader
server/src/webserver.c - Root files
Other components
- HTTP client
- OS networking
Connections 27
- HTTP client → OS networking: sends requests
- OS networking → Client I/O: delivers bytes
- Server entry → Webserver loop: runs server
- Webserver loop → Client I/O: polls clients
- Client I/O → Request dispatch: buffers requests
- Request dispatch → Request parser: parses requests
- Request parser → Request model: populates
- Request model → Message model: uses message fields
- Request dispatch → GET handler: dispatches GET
- Request dispatch → PUT handler: dispatches PUT
- Request dispatch → DELETE handler: dispatches DELETE
- GET handler → Path mapping: maps path
- GET handler → Resource loader: loads resource
- PUT handler → Path mapping: maps path
- PUT handler → Root files: writes file
- DELETE handler → Path mapping: maps path
- DELETE handler → Root files: deletes file
- Resource loader → Root files: reads file
- GET handler → Response model: prepares response
- PUT handler → Response model: prepares response
- DELETE handler → Response model: prepares response
- Request dispatch → Response queue: queues responses
- Webserver loop → Response queue: pops responses
- Webserver loop → Response model: serializes response
- Webserver loop → Client I/O: sends response
- Client I/O → OS networking: writes bytes
- OS networking → HTTP client: returns response