da4qi4 是使用现代 C++ 语言的 Web Application Server 开发框架。
da4qi4 Web 框架优先使用成熟的、C/C++开源项目的搭建。其中:
- HTTP 基础协议解析: Node.JS / http-parser, 纯 C 语言 nodejs/http-parser
- HTTP multi-part : multipart-parsr multipart-parser-c
- 网络异步框架: C++ boost.asio boostorg/asio (预计进入 C++ 标准库)
- JSON : nlohmann-json JSON for Modern C++ (github 上搜索 JSON 出来的第一个)
- 日志: splogs 一个高性能的 C++ 日志库 (微软公司将它绑定到 Node.JS)
- 模板引擎: inja 是模板引擎 Jinja 的 C++ 实现版本,和 nlohmann-json 完美配合实现 C++ 内嵌的动态数据结构
- Redis 客户端: 基于 nekipelov/redisclient,为以类 node.js 访问 redis 进行专门优化(实现单线程异步访问,去锁)。 ,da4qi4默认使用redis缓存session等信息,以优先支持负载均衡下的节点无状态横向扩展。
- TLS/加密: OpenSSL
- 静态文件服务: da4qi4 自身支持静态文件(包括前端缓存支持)。实际项目部署建议与 nginx 配合。由 nginx 提供更高性能、更安全的接入及提从静态文件服务。
示例代码:
#include "daqi/da4qi4.hpp"
using namespace da4qi4;
int main()
{
auto svc = Server::Supply(4098);
svc->AddHandler(_GET_, "/", [](Context ctx)
{
ctx->Res().ReplyOk("Hello World!");
ctx->Pass();
});
svc->Run();
}