天天看點

開源項目推薦:C++ Web/Http Server/Rest開發架構(請重點關注Oat++和搜狗workflow)

先看參考文獻

C++ Web Framework/C++ Web開發架構 - QTCN開發網 - Powered by phpwind

找了一些C++的Web開發架構,看樣子不少,有許多是基于Qt的,似乎第一個CppCMS這個名字比較大些。

1. CppCMS

CppCMS — High Performance C++ Web Framework

以高性能著稱,MVC,内容較全,包括資料庫、會話等管理,内置http server

2. TreeFrog(推薦)

TreeFrog Framework | High-speed C++ MVC Framework for Web Application https://github.com/treefrogframework/treefrog-framework

以Qt為基礎開發的,MVC,内容較全,包括資料庫、會話生管理,好像是個日本人寫的。内置http server。

TreeFrog Framework : High-speed C++ MVC Framework for Web Application

Treefrog架構是一個基于C++和Qt的高速全棧的網頁應用架構, 支援HTTP和WebSocket協定. 用它開發的網頁應用程式可以比用其它輕量級的程式設計語言運作得更快. 在程式開發過程中, 它提供了O/R映射系統和基于MVC體系的模版系統, 目标是通過慣例優于配置的原則實作快速開發.

3. wt

電動志趣享

号稱是 個Web GUI TookKit,即将HTML元件做成C++類元件,開發方式和Qt十分相似(就像以前的C#的WebForm),内置一個httpd,也可以與FastCGI/ISAPI方式運作

4. Tufao(源碼停止更新了)

https://github.com/vinipsmaker/tufao https://github.com/vinipsmaker/tufao-qtcreatorplugin

也是基于Qt開發的,還有QtCreator插件用了輔助開發,内置http server

5. Drogon

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

C++14/17 based http web application framework,跨平台的

6. Oat++(重點推薦)

https://oatpp.io https://github.com/oatpp/oatpp

Light, zero-dependency, performance oriented Web Framework,pure C++

7. CWF

https://github.com/HerikLyma/CPPWebFramework

這也是個基于Qt的Web開發架構,内置http server。

The C++ Web Framework (CWF) is a MVC web framework, Open Source, under MIT License, using C++ with Qt to be used in the development of web applications.

8. Cutelyst(推薦)

https://cutelyst.org https://github.com/cutelyst/cutelyst

一個Qt Web Framework,這麼直白。

A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.

9. Civetweb

https://github.com/civetweb/civetweb

一個嵌入式Web伺服器

10. QDjango(源碼停止更新了)

https://github.com/jlaine/qdjango

一個基于Qt的Web架構,和django的API類似

11. cinatra

https://github.com/qicosmos/cinatra

C++17的,隻包含頭檔案的http framework,簡單、高效、跨平台、支援面向切面程式設計,這個有點意思。這個是purecpp社群開發的(中國的),内置http server

12. crow

https://github.com/ipkn/crow

C++ micro web framework,使用起來隻包含個頭檔案就行了(類似Python Flask),内置http server

13. Silicon

http://siliconframework.org

一個用于建構C++ Web API的高性能的網絡庫 ,使用也比較簡單看樣子,但第一句,就說要求編譯器是clang++。。。。。。,而且它隻是個庫,需要安裝個http server配合

14. fastcgi++

這個就不用說了吧,就是一個C++庫,用于開發fastcgi程式

x. KnewCode,用C++寫的以Apache子產品方式運作的一個項目,網上搜尋不到官網在哪裡,像是國人寫的,隻能下載下傳編譯好的windows下的庫。

xx. 再加一個cppweb

cppweb 是一個基于C++開發的 WEB 伺服器,支援C/C++、Python、Java等多語言混合開發WEB應用。國人寫的。

開發文檔

cppweb首頁、文檔和下載下傳 - web 伺服器 - OSCHINA - 中文開源技術交流社群

xxx.ananas(推薦)

輕量級的C++網絡庫,僅Linux環境,有點仿照muduo的意思。

A C++11 RPC framework and toolbox for server-side development.

https://github.com/loveyacper/ananas

ananas: 鳳梨,Linux網絡庫 國内鏡像

https://github.com/chenshuo/muduo

大名鼎鼎的muduo

xxxx. Sogou C++ Workflow(重點推薦)

C++ Programming Paradigm with Asynchronous Networking。

Sogou C++ Workflow 是搜狗公司的 C++ 伺服器引擎,支撐搜狗幾乎所有後端 C++ 線上服務,包括所有搜尋服務、雲輸入法與線上廣告等,每日處理超百億請求。它是一個已經經過多年線上考驗的工業級架構,性能優異。workflow 屏蔽了所有的底層概念,例如IO線程,工作線程,任務隊列和逾時處理等等。為開發者提供了一個簡潔到極緻的開發方式,使用起來非常的簡單。

作為一個搜狗公司的通用的基礎設施, workflow 除了具備網絡架構的高性能封裝以外。還有其他很多特色。

1、友好的使用者體驗

workflow 給開發者使用者接觸到的是task(任務)和series(任務流)。這個高度的抽象使得開發可以聚集所有精力完成應用邏輯的開發,完全不需要考慮線程等底層概念。

2、通信與計算一體

大部分的 C++ 架構着重隻解決網絡 IO 的效率問題,而計算與任務排程架構需要使用者自己實作。workflow 架構則将二者融為一體,一并解決了。Workflow 自動對任務進行排程,并且打通了網絡、磁盤等等其他資源。

3、完善的文檔和 demo

不同于許多為了開源而開源的 kpi 項目,workflow 配備了完整的文檔和 demo。

https://github.com/sogou/workflow

sogou-cpp-workflow: Sogou C++ Workflow 是搜狗公司的 C++ 伺服器引擎,支撐搜狗幾乎所有後端 C++ 線上服務 國内鏡像

https://github.com/sogou/srpc

1412 - 知乎

xxxx.C++ REST SDK(依賴boost,囧)

C++ REST SDK(也寫作 cpprestsdk),一個支援 HTTP 協定 、主要用于 RESTful  接口開發的 C++ 庫。C++ REST SDK 是 Microsoft 的一個開源跨平台項目, 其使用大量現代異步 C++ API 實作了一個基于 HTTP / HTTPS 協定的 B/S 元件,使用該元件,可以友善地進行高性能RESTful、HTTP / HTTPS 伺服器、用戶端開發,且可以在Windows、Linux、OSX、iOS、Android各平台下使用。

https://github.com/microsoft/cpprestsdk

PPL(Parallel Patterns Library)

PPL是微軟開發的并行計算庫,它的功能和TBB是差不多的。PPL C++ 庫與 C# 并行庫TaskParallelLibrary的設計理念、基本架構以及接口使用上非常類似,熟悉C#并行庫的朋友上手C++版的PPL非常容易。PPL該庫是附在微軟的開源項目 cpprestsdk 中的。

https://github.com/microsoft/cpprestsdk/tree/master/Release/src/pplx

繼續閱讀