Core
vixcpp/core – The core of the vix.cpp framework. Provides the HTTP server, router, JSON utilities, and middleware system. All other modules are built on top of it.
Install / Use
/learn @vixcpp/CoreREADME
Vix Core
Fast HTTP runtime • Router • Request/Response • JSON helpers • Production-ready primitives
core is the foundation of Vix.cpp.
It provides the HTTP runtime primitives used across the ecosystem:
vix::App— the main HTTP application- routing (
get/post/...) with path params Request/Responsewrappers- JSON helpers (
vix::json) for fast structured responses - query params, headers, body access
- predictable status codes + early return patterns
If Vix.cpp is a runtime, core is its execution engine for HTTP.
Quick start
Run the showcase example:
vix run examples/vix_routes_showcase.cpp
Then hit a few endpoints:
curl -i http://127.0.0.1:8080/
curl -i http://127.0.0.1:8080/health
curl -i http://127.0.0.1:8080/users/42
curl -i "http://127.0.0.1:8080/search?q=vix&page=2&limit=5"
curl -i http://127.0.0.1:8080/headers
curl -i http://127.0.0.1:8080/status/404
Minimal HTTP server
#include <vix.hpp>
using namespace vix;
int main()
{
App app;
app.get("/", [](Request&, Response& res) {
res.json({"message", "Hello, Vix!"});
});
app.run(8080);
}
Routing model
Vix routes are designed to be:
- simple to read
- copy/paste friendly for real projects
- explicit about status codes and early returns
Basic routes
app.get("/hello", [](const Request&, Response&) {
return vix::json::o("message", "Hello", "id", 20);
});
app.get("/txt", [](const Request&, Response&) {
return "Hello world";
});
Status codes
app.get("/status/{code}", [](Request& req, Response& res) {
const int code = /* parse */ 200;
res.status(code).json({
"status", code,
"ok", (code >= 200 && code < 300)
});
});
Path params
app.get("/users/{id}", [](Request& req, Response& res) {
const std::string id = req.param("id", "0");
if (id == "0") {
res.status(404).json({"error", "User not found", "id", id});
return;
}
res.json({"id", id, "vip", (id == "42")});
});
Query params
app.get("/search", [](Request& req, Response& res) {
const std::string q = req.query_value("q", "");
const std::string page = req.query_value("page", "1");
const std::string limit = req.query_value("limit", "10");
res.json({
"q", q,
"page", page,
"limit", limit
});
});
Headers
app.get("/headers", [](Request& req, Response& res) {
res.json({
"host", req.header("Host"),
"user_agent", req.header("User-Agent"),
"accept", req.header("Accept")
});
});
Request body + JSON parsing
Core exposes the raw body and JSON parsing helpers.
app.get("/echo/body", [](Request& req, Response& res) {
const std::string body = req.body();
res.json({"bytes", (long long)body.size(), "body", body});
});
app.get("/echo/json", [](Request& req, Response& res) {
const auto& j = req.json();
res.json(j);
});
For defensive field access, the showcase demonstrates patterns like:
- check
is_object() - check
contains()+ type - return defaults on missing fields
Mixed behaviors (send + return)
Vix supports both:
- explicit response (
res.send,res.json) - return-value auto-send (string or JSON object)
If you already sent a response explicitly, the returned value is ignored.
app.get("/mix", [](Request&, Response& res) {
res.status(201).send("Created");
return vix::json::o("ignored", true);
});
This makes it easy to write handlers in a style similar to Node/FastAPI:
- short happy path
- early return on errors
Showcase example
The recommended living reference for the public API style is:
examples/vix_routes_showcase.cpp
It includes:
- simple routes
- JSON responses (flat + nested)
- status codes
- path params (
/users/{id}) - query params (
?page=1&limit=20) - headers
- request body + JSON parsing
- mixed behaviors (send + return)
- many copy/paste route patterns
How core fits in the umbrella
corepowers the HTTP runtime (vix::App, routing, request/response)middlewareattaches on top of core (security, parsers, auth, cache)websocketcan run standalone or alongside HTTPp2p_httpuses core to expose P2P control endpoints
Directory layout
Typical layout:
modules/core/
│
├─ include/vix/
│ ├─ http/...
│ ├─ router/...
│ ├─ server/...
│ ├─ session/...
│ ├─ config/...
│ ├─ utils/...
│ └─ vix.hpp # umbrella include for HTTP runtime
│
└─ examples/
└─ vix_routes_showcase.cpp
License
MIT — same as Vix.cpp
Repository: https://github.com/vixcpp/vix
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
