Linux|【IT中华行】drogon——国人开发的C++高性能Web框架
文章图片
文章图片
初识drogon
有一个给web框架做性能排名的网站 , 叫techempower , 它在前段时间公布了2020年度最新的测试结果——Round19 , 我看到了后特别激动 , 因为这次测试的综合成绩的前三名中 , 有两名都来自中国(以往测试中 , 前几名都是老外研发的web框架)
综合得分——物理机上的测试结果
综合得分——云服务器上的测试结果
注:techempower有两种测试环境 , 一个是物理机 , 一个是云服务器(上面第一张图是物理机的测试结果、第二张图是云服务器的测试结果)
可以看到 , 不管是跑在物理机还是云服务器 , 第一名都是drogon;另外前三名的may-minihttp , 也同样是来自中国 , 它基于Rust语言开发 。
drogon名称的由来
Drogon是其作者非常喜欢的美剧《权力的游戏》中的一条龙的名字(汉译作卓耿) , 和龙有关但并不是dragon的误写 , 为了不至于引起不必要的误会这里说明一下 。
drogon的特点
- 基于C++14/17 , 易用性特别好
- 跨平台 , 支持Linux , 也支持macOS、FreeBSD , 和Windows
- 配备超高性能的数据库客户端 , 且支持常用数据库如PostgreSql、MySql、Sqlite……
- 自研的高性能模板引擎CSP
- 网络层使用基于epoll(macOS/FreeBSD下是kqueue)的非阻塞IO框架 , 提供高并发、高性能的网络IO 。
- 全异步编程模式;
- 支持Http1.0/1.1(server端和client端);
- 基于template实现了简单的反射机制 , 使主程序框架、控制器(controller)和视图(view)完全解耦;
- 支持cookies和内建的session;
- 支持后端渲染 , 把控制器生成的数据交给视图生成Html页面 , 视图由CSP模板文件描述 , 通过CSP标签把C++代码嵌入到Html页面 , 由drogon的命令行工具在编译阶段自动生成C++代码并编译;
- 支持运行期的视图页面动态加载(动态编译和加载so文件);
- 非常方便灵活的路径(path)到控制器处理函数(handler)的映射方案;
- 支持过滤器(filter)链 , 方便在控制器之前执行统一的逻辑(如登录验证、Http Method约束验证等);
- 支持https(基于OpenSSL实现);
- 支持websocket(server端和client端);
- 支持Json格式请求和应答 对Restful API应用开发非常友好;
- 支持文件下载和上传支持sendfile系统调用;
- 支持gzip/brotli压缩传输;
- 支持pipelining;
- 提供一个轻量的命令行工具drogon_ctl , 帮助简化各种类的创建和视图代码的生成过程;
- 基于非阻塞IO实现的异步数据库读写 , 目前支持PostgreSQL和MySQL(MariaDB)数据库;
推荐阅读
- 草莓味的棉花糖|一旦成功,芯片、光刻机直接说拜拜,壮我中华!华为研制云手机
- 通天战队|没有之一,Linux:NVIDIA是我们接触过的最糟糕的公司
- 载风月|关闭终端,程序后台运行,我有5种方法你呢?,Linux运维之
- 小米科技|Linux系统下Java通过shell脚本监控重启服务
- 少年帮|Linux 版已上架统信 UOS 商店,迅雷下载
- 莫小帅|kernel同步机制(上篇),Linux
- 出行一客|罗兰贝格大中华区副总裁:无人驾驶出租车5年内别谈盈利
- Linux|Linux迎来29周年,我们一起看下Linux一路过来的发展(第一部)
- Linux|Linux 基金董事会:是时候改变 Linux 内核的贡献方式了
- 产业气象站|| Linux 中国,一次让字体看起来更像手写体的尝试