da4qi4 - C++ Web Server 开发框架


MIT
跨平台
C/C++

软件简介

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();
}