Github上優秀開源C++項目推薦第二彈

Github上優秀開源C++項目推薦第二彈

Sogou C++ Workflow

https://github.com/sogou/workflow

搜狗公司C++服務器引擎,支撐搜狗幾乎所有後端C++在線服務,包括所有搜索服務,雲輸入法,在線廣告等,每日處理超百億請求。這是一個設計輕盈優雅的企業級程序引擎,可以滿足大多數C++後端開發需求。

  • 快速搭建http服務器:
<code>#include 
#include "workflow/WFHttpServer.h"

int main()
{
    WFHttpServer server([](WFHttpTask *task) {
        task->get_resp()->append_output_body("Hello World!");
    });

    if (server.start(8888) == 0) {  // start server on port 8888
        getchar(); // press "Enter" to end.
        server.stop();
    }

    return 0;
}/<code>
  • 作為萬能異步客戶端。目前支持http,redis,mysql和kafka協議。
  • 實現自定義協議client/server,構建自己的RPC系統。srpc就是以它為基礎,作為獨立項目開源。支持srpc,brpc和thrift等協議。
  • 構建異步任務流,支持常用的串並聯,也支持更加複雜的DAG結構。
  • 作為並行編程工具使用。除了網絡任務,我們也包含計算任務的調度。所有類型的任務都可以放入同一個流中。
  • 在Linux系統下作為文件異步IO工具使用,性能超過任何標準調用。磁盤IO也是一種任務。
  • 實現任何計算與通訊關係非常複雜的高性能高併發的後端服務。
  • 構建服務網格(service mesh)系統。項目內置服務治理與負載均衡等功能。

編譯和運行環境

  • 項目支持Linux,macOS,Windows等操作系統。Windows版以windows分支發佈,使用iocp實現異步網絡。用戶接口與Linux版一致。
  • 支持所有CPU平臺,包括32或64位x86處理器,大端或小端arm處理器。
  • 需要依賴於OpenSSL,推薦OpenSSL 1.1及以上版本。不喜歡SSL的用戶可以使用nossl分支或study分支(無upstream),代碼更簡潔。但仍需鏈接crypto。
  • 項目使用了C++11標準,需要用支持C++11的編譯器編譯。但不依賴boost或asio。
  • 項目無其它依賴。如需使用kafka協議,需自行安裝lz4,zstd和snappy幾個壓縮庫。

RedisDesktopManager

https://github.com/uglide/RedisDesktopManager

基於Qt5的開源跨平臺Redis桌面管理器。

Github上優秀開源C++項目推薦第二彈

2048.cpp

https://github.com/plibither8/2048.cpp

一個C++ 寫的終端 2048 遊戲。

Github上優秀開源C++項目推薦第二彈

MyTinySTL

https://github.com/Alinshans/MyTinySTL

基於 C++11 的 tinySTL,代碼結構清晰規範、包含中文文檔與註釋,並且自帶一個簡單的測試框架,適合新手學習與參考。現在已經發布了 2.x.x 版本,實現了大部分 STL 中的容器與函數 。項目已經處於長期維護的階段,即基本不會增加新的內容,只修復發現的 bug。

示例代碼如下:

<code>// 彈出尾部元素
template 
void deque::pop_back()
{
  MYSTL_DEBUG(!empty());
  if (end_.cur != end_.first)
  {
    --end_.cur;
    data_allocator::destroy(end_.cur);
  }
  else
  {
    --end_;
    data_allocator::destroy(end_.cur);
    destroy_buffer(end_.node + 1, end_.node + 1);
  }
}/<code>

TrafficMonitor

https://github.com/zhongyang219/TrafficMonitor

Traffic Monitor是一款用於Windows平臺的網速監控懸浮窗軟件,可以顯示當前網速、CPU及內存利用率,支持嵌入到任務欄顯示,支持更換皮膚、歷史流量統計等功能。

  • 顯示當前實現網絡傳輸速率、CPU和內存佔用率
  • 如果電腦有多個網卡,支持自動和手動選擇網絡連接
  • 查看網絡詳細信息
  • 支持嵌入到任務欄顯示
  • 支持更換皮膚和自定義皮膚
  • 歷史流量統計
Github上優秀開源C++項目推薦第二彈

OpenCC

https://github.com/BYVoid/OpenCC

中文簡繁轉換開源項目,支持詞彙級別的轉換、異體字轉換和地區習慣用詞轉換(中國大陸、臺灣、香港、日本新字體)。不提供普通話與粵語的轉換。

在線體驗:https://opencc.byvoid.com/

Github上優秀開源C++項目推薦第二彈

SimpleNES

https://github.com/amhndu/SimpleNES

用C ++編寫的NES模擬器,大約40%至50%的遊戲可以正常運行(即不使用任何映射器或使用映射器1、2或3的遊戲)。

Github上優秀開源C++項目推薦第二彈

Github上優秀開源C++項目推薦第二彈


分享到:


相關文章: