Drogon跨平臺(tái) Http 應(yīng)用框架
**Drogon**是一個(gè)基于C++14/17的 Http 應(yīng)用框架,使用 Drogon 可以方便的使用 C++ 構(gòu)建各種類型的 Web 應(yīng)用服務(wù)端程序。
本版本庫(kù)是github上[Drogon工程](https://github.com/an-tao/drogon)的鏡像庫(kù)。**Drogon**是作者非常喜歡的美劇《權(quán)力的游戲》中的一條龍的名字(漢譯作卓耿),和龍有關(guān)但并不是dragon的誤寫,為了不至于引起不必要的誤會(huì)這里說(shuō)明一下。
Drogon是一個(gè)跨平臺(tái)框架,它支持Linux,也支持macOS、FreeBSD,OpenBSD,HaikuOS,和Windows。
它的主要特點(diǎn)如下:
- * 網(wǎng)絡(luò)層使用基于epoll(macOS/FreeBSD下是kqueue)的非阻塞IO框架,提供高并發(fā)、高性能的網(wǎng)絡(luò)IO。詳細(xì)請(qǐng)見[TFB Tests Results];
- * 全異步編程模式;
- * 支持Http1.0/1.1(server端和client端);
- * 基于template實(shí)現(xiàn)了簡(jiǎn)單的反射機(jī)制,使主程序框架、控制器(controller)和視圖(view)完全解耦;
- * 支持cookies和內(nèi)建的session;
- * 支持后端渲染,把控制器生成的數(shù)據(jù)交給視圖生成Html頁(yè)面,視圖由CSP模板文件描述,通過(guò)CSP標(biāo)簽把C++代碼嵌入到Html頁(yè)面,由drogon的命令行工具在編譯階段自動(dòng)生成C++代碼并編譯;
- * 支持運(yùn)行期的視圖頁(yè)面動(dòng)態(tài)加載(動(dòng)態(tài)編譯和加載so文件);
- * 非常方便靈活的路徑(path)到控制器處理函數(shù)(handler)的映射方案;
- * 支持過(guò)濾器(filter)鏈,方便在控制器之前執(zhí)行統(tǒng)一的邏輯(如登錄驗(yàn)證、Http Method約束驗(yàn)證等);
- * 支持https(基于OpenSSL實(shí)現(xiàn));
- * 支持websocket(server端和client端);
- * 支持Json格式請(qǐng)求和應(yīng)答, 對(duì)Restful API應(yīng)用開發(fā)非常友好;
- * 支持文件下載和上傳,支持sendfile系統(tǒng)調(diào)用;
- * 支持gzip/brotli壓縮傳輸;
- * 支持pipelining;
- * 提供一個(gè)輕量的命令行工具drogon_ctl,幫助簡(jiǎn)化各種類的創(chuàng)建和視圖代碼的生成過(guò)程;
- * 基于非阻塞IO實(shí)現(xiàn)的異步數(shù)據(jù)庫(kù)讀寫,目前支持PostgreSQL和MySQL(MariaDB)數(shù)據(jù)庫(kù);
- * 基于線程池實(shí)現(xiàn)sqlite3數(shù)據(jù)庫(kù)的異步讀寫,提供與上文數(shù)據(jù)庫(kù)相同的接口;
- * 支持 Redis 異步讀寫;
- * 支持ARM架構(gòu);
- * 方便的輕量級(jí)ORM實(shí)現(xiàn),支持常規(guī)的對(duì)象到數(shù)據(jù)庫(kù)的雙向映射操作;
- * 支持插件,可通過(guò)配置文件在加載期動(dòng)態(tài)拆裝;
- * 支持內(nèi)建插入點(diǎn)的AOP
- * 支持C++協(xié)程
評(píng)論
圖片
表情
