基于C ++ 14/17的HTTP应用程序框架drogon,Drogon可用于使用C ++轻松构建各种类型的Web应用程序服务器程序。 Drogon是一个跨平台框架,它支持Linux,macOS,FreeBSD和Windows。其主要特点如下:
*使用基于epoll的非阻塞I / O网络库(macOS / FreeBSD下的kqueue)提供高并发,高性能的网络IO,请访问[TFB测试结果](https://www.techempower。 com / benchmarks /#section = data-r19&hw = ph&test = composite)以获取更多详细信息;
*提供完全异步的编程模式;
*支持Http1.0 / 1.1(服务器端和客户端);
*基于模板,实现了一种简单的反射机制,以完全解耦主程序框架,控制器和视图。
*支持cookie和内置会话;
*支持后端渲染,控制器将数据生成到视图以生成Html页面。视图由CSP模板文件描述,C ++代码通过CSP标记嵌入到HTML页面中。 drogon命令行工具会自动生成C ++代码文件进行编译;
*支持视图页面动态加载(运行时动态编译和加载);
*提供从路径到控制器处理程序的便捷灵活的路由解决方案;
*支持过滤器链,以方便在处理HTTP请求之前执行统一的逻辑(例如登录验证,Http方法约束验证等);
*支持https(基于OpenSSL);
*支持WebSocket(服务器端和客户端);
*支持JSON格式的请求和响应,对Restful API应用程序开发非常友好;
*支持文件下载和上传;
*支持gzip,brotli压缩传输;
*支持流水线;
*提供轻量级的命令行工具drogon_ctl,以简化Drogon中各种类的创建以及视图代码的生成;
*支持基于非阻塞I / O的异步读写数据库(PostgreSQL和MySQL(MariaDB)数据库);
*支持基于线程池的异步读写sqlite3数据库;
*支持ARM体系结构;
*提供方便的轻量级ORM实现,支持常规的对象到数据库双向映射;
*支持可在加载时由配置文件安装的插件;
*通过内置连接点支持AOP。