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

2020-11-04 指尖跳舞的Mikasoi

QTAV

https://github.com/wang-bin/QtAV

QtAV是基於Qt和FFmpeg的多媒體播放庫。它可以幫助您以比以往更少的精力編寫播放器。

  • 硬體解碼支持:DXVA2,VAAPI,VDA / VideoToolbox,CedarX,CUDA(第一個播放器在Linux上支持CUDA嗎?)
  • OpenGL和ES2支持幾乎所有格式,包括Hi10P視頻(ES2中的第1個播放器/庫支持10bit?VLC,XBMC,mplayer現在不支持)
  • 實時預覽
  • RGB和YUV格式的視頻捕獲
  • OSD和自定義過濾器
  • libavfilter中的濾鏡,例如stero3d,模糊
  • 字幕軌道選擇。動態更改FFmpeg和libass引擎
  • 逐幀播放
  • 播放速度控制
  • 各種流:區域設置文件,http,rtsp等以及您的自定義流
  • 音頻通道,軌道和外部音頻軌道
  • 播放時動態更改渲染引擎。
  • 動態更改視頻解碼器
  • 1個播放器的多個視頻輸出
  • 視頻均衡器(軟體和OpenGL):亮度,對比度,飽和度,色相
  • QML支持。大多數播放API與QtMultimedia模塊兼容
  • 兼容性:QtAV可以同時使用Qt4和Qt5,FFmpeg(> = 1.0)和Libav(> = 9.0)來構建。建議使用最新的FFmpeg版本。

使用QtAV編寫媒體播放器非常容易,代碼如下:

GLWidgetRenderer2 renderer;renderer.show();AVPlayer player;player.setRenderer(&renderer);player.play("test.avi");

PlantsVsZombies

https://github.com/ErLinErYi/PlantsVsZombies

高仿植物大戰殭屍遊戲,遊戲引擎基於版本 Cocos2d-X v3.16,遊戲全部使用c++開發。

2048

https://github.com/jvaelen/2048

又一個2048遊戲。遊戲邏輯用C ++編寫,GUI用Qt 5.2.1編寫。整個GUI是用代碼編寫的,沒有使用Qt Creator的UI設計器。使用觀察者模式將內核與GUI分離,因此很容易提取代碼,提取內核然後圍繞它構建新的GUI。

非常容易上手,直接QT打開pro文件,重新構建即可,下面是我自己編譯執行後試玩的動圖:

Matrix

https://github.com/Nheko-Reborn/nheko

該項目的動機是為Matrix提供本機桌面應用程式,感覺更像是主流聊天應用程式(Riot,Telegram等),而不像IRC客戶端。使用高版本Qt和VS開發。

  • 端到端加密。
  • 用戶註冊。
  • 創建,加入和離開房間。
  • 發送和接收邀請。
  • 發送和接收文件和表情符號(用於圖像,音頻和文件消息的嵌入式窗口小部件)。
  • 回復文本,圖像和其他媒體(並實際上將它們呈現為嵌入式控制項)。
  • 鍵入通知。
  • 用戶名自動完成。
  • 消息和提及通知。
  • 編輯消息。
  • 閱讀收據。
  • 基本社區的支持。
  • 房間切換器(ctrl-K)。
  • 淺色,深色和系統主題。
  • 創建單獨的配置文件(僅命令行,使用--profile=name)。

MQTT-C

https://github.com/LiamBindle/MQTT-C

MQTT-C是用C語言編寫的MQTT v3.1.1客戶端。MQTT是基於發布者-訂閱者的輕量級消息傳遞協議,通常用於需要高延遲和低數據速率連結的IoT和網絡應用程式中。MQTT-C的目的是為嵌入式系統和PC等提供用C編寫的可攜式MQTT客戶端。MQTT-C通過提供透明的平臺抽象層(PAL)來做到這一點,該平臺使移植到新平臺變得容易。MQTT-C完全是線程安全的,但也可以在單線程系統上完美運行,這使得MQTT-C非常適合嵌入式系統和微控制器。最後,MQTT-C很小,只有兩個源文件總計少於2000行。

spdlog

https://github.com/gabime/spdlog

非常快速的,僅頭文件/已編譯的C ++日誌記錄庫。

支持下列平臺:

  • Linux, FreeBSD, OpenBSD, Solaris, AIX
  • Windows (msvc 2013+, cygwin)
  • macOS (clang 3.5+)
  • Android

功能:

  • 非常快。
  • 僅頭文件或已編譯。
  • 功能豐富的格式,使用優秀FMT庫。
  • 異步模式(可選)
  • 自定義格式。
  • 多/單線程記錄器。
  • 各種日誌目標:循環日誌文件。每日日誌文件。控制臺日誌記錄(支持顏色)。系統日誌。Windows調試器(OutputDebugString(..))使用自定義日誌目標可以輕鬆擴展(只需在接收器接口中實現單個功能)。
  • 日誌過濾-日誌級別可以在運行時以及編譯時進行修改。
  • 支持從argv或環境var加載日誌級別。
  • 回溯支持-在以後按需環形緩衝器和顯示存儲的調試消息。

基本用法:

#include "spdlog/spdlog.h"int main() { spdlog::info("Welcome to spdlog!"); spdlog::error("Some error message with arg: {}", 1); spdlog::warn("Easy padding in numbers like {:08d}", 12); spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42); spdlog::info("Support for floats {:03.2f}", 1.23456); spdlog::info("Positional args are {1} {0}..", "too", "supported"); spdlog::info("{:<30}", "left aligned"); spdlog::set_level(spdlog::level::debug); // Set global log level to debug spdlog::debug("This message should be displayed.."); // change log pattern spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v"); // Compile time log levels // define SPDLOG_ACTIVE_LEVEL to desired level SPDLOG_TRACE("Some trace message with param {}", 42); SPDLOG_DEBUG("Some debug message");}

design-patterns-cpp

https://github.com/JakubVojvoda/design-patterns-cpp

C++設計模式代碼實現。軟體設計模式是解決面向對象設計環境中反覆出現的問題的通用可重用解決方案。這不是可以直接轉換為原始碼的最終設計,而是解決問題的模板。我們可以按目的將它們分為創建性(抽象實例化過程),結構(如何將類和對象組成更大的結構)和行為模式(對象之間的職責分配)。

我之前也寫過23種設計模式的示例,但是看看別人的代碼還是能學習到很多東西的。

相關焦點

  • Github上優秀開源C++項目推薦第四彈
    個人覺得比下面推薦的QtMusic質量要高,相應的難度也要大一些。其實這個項目我早就發現了,而且之前還在裡面提取了左側那個自定義的tab窗口控制項用在了我自己的項目中。/Armour/Magic-Tower-Qt一個用Qt實現的打怪、升級、爬塔的小遊戲,是男人就上20層。
  • Github上優秀開源C++項目推薦第二彈
    srpc就是以它為基礎,作為獨立項目開源。支持srpc,brpc和thrift等協議。構建異步任務流,支持常用的串並聯,也支持更加複雜的DAG結構。作為並行編程工具使用。除了網絡任務,我們也包含計算任務的調度。所有類型的任務都可以放入同一個流中。在Linux系統下作為文件異步IO工具使用,性能超過任何標準調用。磁碟IO也是一種任務。
  • Github上優秀C++開源項目推薦
    /CoatiSoftware/Sourcetrail一個免費開源、跨平臺的可視化源碼探索項目。程式設計師在它的幫助下可以快速熟悉陌生項目、學習開源項目、框架等,此等利器趕快去試試吧。該項目結構清晰、使用簡單,代碼量少適合使用和「把玩」。
  • 國產開源c/c++網絡庫libhv為何能上github 趨勢
    2020年11月15日,libhv上了github trending c語言榜第一名。特作此文以紀念。詳細介紹見項目README項目地址:https://github.com/ithewei/libhv.gitlibhv發展歷程libhv自2018年8月28日
  • 專家推薦,github上值得看完的12個C語言自學練習項目
    C語言是計算機學科編程能力的基礎,老K在這裡給大家準備了12個C語言自學練習項目。地址: http s:// github.com/dotnet/csharplangstar: 5.9kfork: 650
  • GitHub 上能挖礦的神仙技巧 - 如何發現優秀的開源項目
    GitHub 是一個寶藏庫,可沒有藏寶圖,GitHub 這個億計的優秀的開源項目也和你沒有關係。一般人沒事的時候刷刷朋友圈、微博、電視劇、知乎,而有些人是沒事的時候刷刷 GitHub ,看看最近有哪些流行的項目,久而久之,這差距就越來越大,那麼如何發現優秀的開源項目呢 ?
  • 如何在 Github 上發現優秀的開源項目?
    問到點子上了,GitHub 其中一個最重要的作用就是發現全世界最優秀的開源項目,你沒事的時候刷刷微博、知乎,人家沒事的時候刷刷 GitHub ,看看最近有哪些流行的項目,久而久之,這差距就越來越大,那麼如何發現優秀的開源項目呢?這篇文章我就來給大家介紹下。1.
  • 2月份Github上熱門的開源項目
    2月份GitHub上最熱門的開源項目排行已經出爐啦,一起來看看上榜詳情:1. wuhan2020https://github.com/wuhan2020/wuhan2020Star 6123
  • 推薦一些 GitHub 上值得前端學習的開源實戰項目,進階必看!
    最近好多同學問我了解找一些學習的實戰項目;看一個別人寫的優秀的項目,從中可以學到很多;比如代碼的規範,項目的結構;從項目作者每次提交記錄,去學習一些別人的開發思維以及開發整個項目的流程;下面我主要找了一些比較火的一些框架以及 node 項目。
  • GitHub乾貨:c++資源整理(含Java、安卓、PH)
    2019BAT網際網路企業工作崗位(含職位內容、崗位技術要求、工作位置等) 0voice/enterprise_job_recommendgithub.com 2019年最新總結,阿里,騰訊,百度,美團,頭條等技術面試題目,以及答案,專家出題人分析匯總。
  • 1月份Github上熱門Python開源項目!
    1月份GitHub上最熱門的Python開源項目排行已經出爐啦,一起來看看上榜詳情:1. fastapihttps://github.com/tiangolo/fastapiStar 9051FastAPI 是一個 Rails 庫用來快速查詢相互依存的數據集合併返回時候人類閱讀的
  • 昨日Github開源Nvidia的C++標準庫Libcu++
    https://nvidia.github.io/libcudacxx/api.html許可證NVIDIA C ++標準庫是在GitHub上開發的一個開源項目。它是NVIDIA基於LLVM libc ++的變更版本。
  • 優秀開源C++項目推薦第五彈
    今天Github有點問題,嘗試很多次,頁面總是顯示不全,可能是伺服器出問題了,所以今天推薦的開源項目全部來自_from=gitee_searchWeather 是使用 C++ & Qt Quick 開發的一款天氣 App,理論上可以在 Windows、Mac OS、Linux、Android、iOS 等平臺上運行。
  • 3月份Github上熱門的Java開源項目
    3月份GitHub上熱門的Java開源項目排行已經出爐啦,一起來看看上榜詳情吧!1.mall項目是一套電商系統,包括前臺商城系統及後臺管理系統,基於SpringBoot+MyBatis實現。前臺商城系統包含首頁門戶、商品推薦、商品搜索、商品展示、購物車、訂單流程、會員中心、客戶服務、幫助中心等模塊。
  • 12月份GitHub上熱門的開源項目
    12月份GitHub上最熱門的開源項目排行已經出爐啦,這個月Java相關的開源項目上榜有點多哦,一起來看看上榜詳情:1. coding-interview-universityhttps://github.com/jwasham/coding-interview-university
  • 12月份GitHub上熱門的Java開源項目
    12月份GitHub上最熱門的開源項目排行已經出爐啦,這個月Java相關的開源項目上榜有點多哦,一起來看看上榜詳情:是一站式開源持續測試平臺,涵蓋測試跟蹤、接口測試、性能測試、團隊協作等功能,全面兼容 JMeter、Postman 等開源、主流標準。
  • GitHub 上適合新手的開源項目(Python 篇)
    篇本期是 Python 篇,下面我將從 HG 推薦過的 197 個 Python 開源項目中,精心篩選出 7 個最適合 Python 新手學習和把玩的開源項目。聲明:不糾結項目是 Python2 還是 3我最怕推薦的項目過多讓讀者「挑花眼」導致都沒學好,所以就選了 7 個項目歡迎吐槽和反饋,不定期更新。
  • github熱門項目推薦
    .com/fogleman/Craftcraft是Mojang工作室在github上的開源項目,craft完全採用c語言實現的(多人模式的網絡模塊是python開發的)。/nem0/LumixEngineLumixEngine是一個免費的開源3D遊戲引擎,這款引擎支持windows和linux版本,太良心了!
  • 8月份GitHub上熱門的Java開源項目
    8月份GitHub上最熱門的Java開源項目排行已經出爐啦,一起來看看上榜詳情吧:5834tsunami-security-scanner是谷歌專門為大型企業網絡開源的一個漏洞掃描神器,主要用於數千個甚至數百萬個物聯網組成的企業系統。
  • 盤點:2017年GitHub上30個優秀的機器學習項目
    我們比較了過去一年近8,800個開源的機器學習項目,從中選擇了30個表現優秀的,分享給讀者。這是一份非常精彩的名單,它仔細挑選了2017年1月至12月之間發布的最佳開源機器學習庫、數據集和應用程式。我們綜合考慮項目的受歡迎程度,參與度和進展程度來評估項目質量。為了給讀者更直觀的感受,使用GitHub上的關注量(星星數量)來表示項目熱度。