Page:
CHN 01 概述
Pages
CHN 01 概述
CHN 02 安装
CHN 03 快速开始
CHN 04 0 控制器 简介
CHN 04 1 控制器 HttpSimpleController
CHN 04 2 控制器 HttpController
CHN 04 3 控制器 WebSocketController
CHN 05 中间件和过滤器
CHN 06 视图
CHN 07 会话
CHN 08 0 数据库 概述
CHN 08 1 数据库 DbClient
CHN 08 2 数据库 事务
CHN 08 3 数据库 ORM
CHN 08 4 数据库 FastDbClient
CHN 08 5 数据库 自动批处理
CHN 09 插件
CHN 10 配置文件
CHN 11 drogon_ctl命令
CHN 12 AOP面向切面编程
CHN 13 性能测试
CHN 14 Coz分析
CHN 15 Brotli压缩
CHN 16 协程
CHN 17 Redis
CHN 18 测试框架
CHN FAQ 1 线程模型
CHN FAQ
ENG 01 Overview
ENG 02 Installation
ENG 03 Quick Start
ENG 04 0 Controller Introduction
ENG 04 1 Controller HttpSimpleController
ENG 04 2 Controller HttpController
ENG 04 3 Controller WebSocketController
ENG 05 Middleware and Filter
ENG 06 View
ENG 07 Session
ENG 08 0 Database General
ENG 08 1 Database DbClient
ENG 08 2 Database Transaction
ENG 08 3 Database ORM
ENG 08 4 Database FastDbClient
ENG 08 5 Database auto_batch
ENG 09 0 References request
ENG 09 1 File Handler
ENG 10 Plugins
ENG 11 Configuration File
ENG 12 drogon_ctl Command
ENG 13 AOP Aspect Oriented Programming
ENG 14 Benchmarks
ENG 15 Coz
ENG 16 Brotli
ENG 17 Coroutines
ENG 18 Redis
ENG 19 Testing Framework
ENG FAQ 1 Understanding drogon threading model
ENG FAQ
Home
Home.zh CN
README
_Cover
Table of Contents
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Drogon是一个基于C++17/20的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序。
Drogon的主要应用平台是Linux,也支持Mac OS、FreeBSD和Windows。
它的主要特点如下:
- 网络层使用基于epoll(macOS/FreeBSD下是kqueue)的非阻塞IO框架,提供高并发、高性能的网络IO。详细请见TFB Tests Results;
- 全异步编程模式;
- 支持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)数据库;
- 基于线程池实现sqlite3数据库的异步读写,提供与上文数据库相同的接口;
- 支持ARM架构;
- 方便的轻量级ORM实现,支持常规的对象到数据库的双向映射操作;
- 支持插件,可通过配置文件在加载期动态拆装;
- 支持内建插入点的AOP
02 安装drogon
Document
Tutorial
- Overview
- Install drogon
- Quick Start
- Controller
- Middleware and Filter
- View
- Session
- Database
- References
- Plugins
- Configuration File
- drogon_ctl Command
- AOP
- Benchmarks
- Coz profiling
- Brotli info
- Coroutines
- Redis
- Testing Framework
- FAQ