开源项目推荐: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
總結
以上是生活随笔為你收集整理的开源项目推荐:C++ Web/Http Server/Rest开发框架(请重点关注Oat++和搜狗workflow)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一分钟,制作一个centos镜像
- 下一篇: Word文档学习