|
Csilk 0.2.1
A lightweight, high-performance C HTTP web framework
|
Full-featured example server using the low-level core API. More...
#include "csilk/core/internal.h"#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <unistd.h>#include "csilk/csilk.h"#include "csilk/reflection/reflect.h"
Data Structures | |
| struct | login_request_t |
| Login request body type for reflection. More... | |
| struct | login_response_t |
| Login response body type for reflection. More... | |
| struct | user_profile_t |
| User profile type for reflection. More... | |
Macros | |
| #define | LOGIN_REQUEST_MAP(_, ...) |
| #define | LOGIN_RESPONSE_MAP(_, ...) |
| #define | USER_PROFILE_MAP(_, ...) |
Functions | |
| void | openapi_spec_handler (csilk_ctx_t *c) |
| OpenAPI spec handler - serves the generated spec at runtime. | |
| int | mock_auth_validator (const char *token) |
| Mock authentication validator — accepts only "secret123". | |
| void | hello_handler (csilk_ctx_t *c) |
| Handler for GET / — returns welcome message. | |
| void | user_handler (csilk_ctx_t *c) |
| Handler for GET /user/:id — returns the user ID from the path param. | |
| void | login_handler (csilk_ctx_t *c) |
| Handler for POST /login — validates credentials and returns a token. | |
| void | protected_handler (csilk_ctx_t *c) |
| Handler for GET /protected — returns content only if authorized. | |
| void | api_data_handler (csilk_ctx_t *c) |
| Handler for GET /api/data — returns a JSON object with sample data. | |
| static void | sse_on_timer (csilk_ctx_t *c) |
| SSE timer callback — sends counter events. | |
| void | events_handler (csilk_ctx_t *c) |
| Handler for GET /events — SSE stream demo. | |
| void | upload_part_handler (csilk_multipart_part_t *part) |
| Multipart part handler — prints file/field info from uploads. | |
| void | upload_handler (csilk_ctx_t *c) |
| Handler for POST /upload — parses multipart form data. | |
| void | large_handler (csilk_ctx_t *c) |
| Handler for GET /large — returns a sizable response for gzip demo. | |
| void | cookie_handler (csilk_ctx_t *c) |
| Handler for GET/POST /cookie — set, read, or delete a demo cookie. | |
| void | request_id_middleware (csilk_ctx_t *c) |
| Custom middleware — logs a sequential request ID. | |
| void | request_timer_middleware (csilk_ctx_t *c) |
| Custom middleware — measures and logs request processing time. | |
| int | main (int argc, char *argv[]) |
Variables | |
| static csilk_router_t * | g_router = NULL |
| Global router reference for OpenAPI handler. | |
Full-featured example server using the low-level core API.
Demonstrates router, groups, middleware, WebSocket, SSE, multipart upload, cookie handling, gzip compression, and YAML config loading.
| struct login_request_t |
| struct login_response_t |
| struct user_profile_t |
| #define LOGIN_REQUEST_MAP | ( | _, | |
| ... | |||
| ) |
| #define LOGIN_RESPONSE_MAP | ( | _, | |
| ... | |||
| ) |
| #define USER_PROFILE_MAP | ( | _, | |
| ... | |||
| ) |
| void api_data_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET /api/data — returns a JSON object with sample data.
| void cookie_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET/POST /cookie — set, read, or delete a demo cookie.
| void events_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET /events — SSE stream demo.
| void hello_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET / — returns welcome message.
| void large_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET /large — returns a sizable response for gzip demo.
| void login_handler | ( | csilk_ctx_t * | c | ) |
Handler for POST /login — validates credentials and returns a token.
| int main | ( | int | argc, |
| char * | argv[] | ||
| ) |
| int mock_auth_validator | ( | const char * | token | ) |
Mock authentication validator — accepts only "secret123".
| void openapi_spec_handler | ( | csilk_ctx_t * | c | ) |
OpenAPI spec handler - serves the generated spec at runtime.
| void protected_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET /protected — returns content only if authorized.
| void request_id_middleware | ( | csilk_ctx_t * | c | ) |
Custom middleware — logs a sequential request ID.
| void request_timer_middleware | ( | csilk_ctx_t * | c | ) |
Custom middleware — measures and logs request processing time.
|
static |
SSE timer callback — sends counter events.
| void upload_handler | ( | csilk_ctx_t * | c | ) |
Handler for POST /upload — parses multipart form data.
| void upload_part_handler | ( | csilk_multipart_part_t * | part | ) |
Multipart part handler — prints file/field info from uploads.
| void user_handler | ( | csilk_ctx_t * | c | ) |
Handler for GET /user/:id — returns the user ID from the path param.
|
static |
Global router reference for OpenAPI handler.