1、概述

Drogon是一個基於C++11的Http應用框架(基於MIT協議開源,github地址:https://github.com/an-tao/drogon),使用Drogon可以方便的使用C++構建各種類型的Web應用服務端程序。Drogon的主要應用平臺是Linux,爲了調試方便,也支持Mac OS,目前還沒有支持Windows的計劃。它的主要特點如下:

網絡層使用基於epoll(MacOS下是poll)的NIO框架,提供高併發、高性能的網絡IO;全異步編程模式;支持Http1.0/1.1(server端和client端);基於template實現了簡單的反射機制,使主程序框架、控制器(controller)和視圖(view)完全解耦;支持cookies和內建的session;支持後端渲染,把控制器生成的數據交給視圖生成Html頁面,視圖由類似JSP的CSP文件描述,通過CSP標籤把C++代碼嵌入到Html頁面,由drogon的命令行工具在編譯階段自動生成C++代碼並編譯;支持運行期的視圖頁面動態加載(動態編譯和加載so文件);非常方便靈活的路徑(path)到控制器處理函數(handler)的映射方案;支持過濾器(filter)鏈,方便在控制器之前執行統一的邏輯(如登錄驗證、Http Method約束驗證等);支持https(基於OpenSSL實現);支持websocket(server端);支持Json格式請求和應答;支持文件下載和上傳;支持gzip壓縮傳輸;提供一個輕量的命令行工具drogon_ctl,幫助簡化各種類的創建和視圖代碼的生成過程;

2、安裝

本節以Linux爲例,簡介安裝過程,Mac系統,大同小異;

2.1、安裝環境

Linux內核應不低於2.6.9,64位版本;gcc版本不低於4.8.5;構建工具是cmake,cmake版本應不低於3.2;git版本管理工具;

2.2、第三方庫依賴

trantor,NIO C++網絡庫,也是作者開發,已作爲git倉庫submodule,無需提前安裝;jsoncpp,json的c++庫,版本不低於1.7;libuuid,生成uuid的c庫;OpenSSL;zlib,用於支持壓縮傳輸;boost庫,C++準標準庫,boost庫並非必須,只是爲了支持“any”,如果你的gcc支持c++17(gcc版本7.1.0以上),則無需安裝boost庫,否則boost庫是必需的;

2.3、安裝過程

假設上述環境和庫依賴都已經準備好,安裝過程是非常簡單的;

安裝結束後,將有如下文件被安裝在系統中:

drogon的頭文件被安裝到/usr/local/include/drogon中;drogon的庫文件libdrogon.a被安裝到/usr/local/lib中;drogon的命令行工具drogon_ctl被安裝到/usr/local/bin中;trantor的頭文件被安裝到/usr/local/include/trantor中;trantor的庫文件libtrantor.a被安裝到/usr/local/lib中;

當你使用drogon時,如下的鏈接選項時必須的:

下一篇我們開始講述drogon的使用;

github地址 :https://github.com/an-tao/drogon

查看原文 >>
相關文章