開源 C++ 程式庫列表
出自 cppreference.com
本頁面的目標是建立一份全面的開源 C++ 程式庫列表,以便在需要特定功能實作時,無需浪費時間在網路上(DuckDuckGo、Google、Bing 等)搜尋。
如果您知道對他人有用的程式庫,請在此新增連結。除了程式庫的原始碼必須可以輕易取得並下載之外,沒有其他限制。
本頁面「依現狀」提供,旨在發揮其用途,但不提供任何擔保。頁面上可能會出現過時、誤導或錯誤的連結。如果您發現了這類問題,歡迎修正錯誤。
| 程式庫:目錄 |
|---|
|
程式庫 |
[編輯] 套件管理員
| 套件管理員 | 描述 |
|---|---|
| build2 | 一個開源 (MIT)、跨平台的建置工具鏈,旨在為開發與封裝 C/C++ 專案提供接近 Rust Cargo 的便利性,同時在建置系統方面提供更大的深度與彈性。 |
| cget | Cmake 套件檢索器。可用於下載並安裝 cmake 套件。 |
| cmodule | 非侵入式的 cmake 相依性管理。 |
| conan | 去中心化、開源 (MIT) 的 C/C++ 套件管理員。 |
| CPM.cmake | 一個為 cmake 新增相依性管理功能的 cmake 腳本。它是基於 cmake 的 FetchContent 模組所建立的輕量級封裝,增加了版本控制、快取、簡易 API 等功能。 |
| hunter | 一個由 cmake 驅動的跨平台 C/C++ 專案套件管理員。 |
| spack | 用於超級電腦、Linux 和 macOS 的套件管理員。它讓科學軟體的安裝變得容易,並不綁定於特定語言。 |
| teaport | 一個受 cocoapods 啟發的相依性管理員。 |
| vcpkg | 適用於 Windows、Linux 和 macOS 的 C/C++ 套件管理員。 |
| xmake | 一個基於 Lua 的跨平台 C/C++ 建置工具與套件管理員。 |
[編輯] 程式庫
[編輯] 音訊
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Amplitude Audio SDK | 一款專為遊戲需求設計的跨平台音訊引擎。(原始碼) | Apache-2.0 | cmake, vcpkg |
| Aquila | 一個用於 C++11 的開源且跨平台 DSP 程式庫。 | MIT | cmake |
| Aubio | 一個用於音訊與音樂分析的 C/Python 程式庫。(原始碼) | GPL-3.0 | make |
| audioFlux | 一個用於音訊與音樂分析、特徵提取的 C 程式庫。 | MIT | |
| Essentia | 一個用於音訊與音樂分析、描述與合成 (MIR) 的開源程式庫與工具。(原始碼) | Affero GPLv3 | |
| FFTW | 一個用於計算 DFT 的程式庫 (SSE/SSE2/AVX/Altivec/ARM Neon)。(原始碼) | GPL-2.0 | cmake |
| FMOD | 一個易於使用的跨平台音訊引擎與遊戲音訊內容創作工具。 | 非商業/商業用途免費 | cmake |
| KFR | 一個快速、現代、C++17、開源、跨平台的 DSP/DFT 框架,支援音訊重採樣、FIR/IIR 濾波器、雙二階濾波器 (Biquad),(SSE, AVX, AVX-512, ARM NEON)。(原始碼) | GPL-2.0 | cmake |
| libsoundio | 一個用於跨平台即時音訊輸入與輸出的 C 程式庫。(原始碼) | MIT | cmake |
| Maximilian | C++ 音訊與音樂 DSP 程式庫。 | MIT | cmake |
| Miniaudio | 一個音訊播放與錄製的 C 程式庫。(原始碼) | Unlicense | 單一原始檔 |
| ni-media | 用於讀取與寫入音訊檔案的 C++ 程式庫。 | MIT | cmake, vcpkg |
| OpenAL | 一個跨平台的音訊 API。 | BSD/LGPL/私有軟體 | cmake |
| PortAudio | PortAudio 是一個免費、跨平台、開源的音訊 I/O 程式庫。(原始碼) | MIT | cmake, vcpkg |
| rnnoise | 用於音訊降噪的循環神經網路。 | BSD-3-Clause | make |
| SELA | SimplE Lossless Audio (簡易無損音訊)。 | MIT | cmake |
| SoLoud | 適用於遊戲的簡易、可攜式音訊引擎。 | zlib | |
| Soundtouch | SoundTouch 是一個開源的跨平台音訊處理程式庫,用於改變音訊串流或音訊檔案的節奏 (Tempo)、音高 (Pitch) 與播放速率。(原始碼) | LGPL-2.1 | make |
| Tonic | C++ 中簡易且高效的音訊合成。 | Unlicense | |
| Verovio | 一個快速且輕量級的樂譜排版程式庫。(原始碼) | LGPL | cmake, qmake |
| Wav2Letter++ | 一個完全以 C++ 編寫的快速語音辨識工具套件,並使用 ArrayFire 張量程式庫與 flashlight 機器學習程式庫以達到最高效率。 | Unlicense | cmake |
- CD
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| libkcompactdisc | 一個用於與 CD 介接的程式庫。 | GPL v2.0 | cmake |
- 數位指紋
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| chromaprint | Chromaprint 是一個音訊指紋程式庫,旨在識別近乎相同的音訊。它以精確度與強健性換取搜尋效能。Chromaprint 可以使用多種 FFT 程式庫 - FFmpeg, FFTW3, KissFFT 或 vDSP。(原始碼) | MIT, LGPL 2.1 | cmake |
| libmusicbrainz | MusicBrainz 用戶端程式庫 (libmusicbrainz),也稱為 mb_client,是一個開發程式庫,專為希望在應用程式中加入 MusicBrainz 查詢功能的開發者所設計。該程式庫支援 Windows, Linux 和 Mac OS X。(原始碼) | LGPL-2.1 | cmake |
| libofa | 由 MusicIP 開發的開源音訊指紋技術。 | APL | make |
- 格式
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| AudioFile | 一個用於讀取與寫入音訊檔案的簡單 C++ 程式庫。 | MIT | cmake |
| audio_file | 一個處理多種常見格式音訊檔案讀寫的程式庫。(原始碼) | LGPL-2.1 | make |
| dr_libs | 用於 C 與 C++ 的單一檔案音訊解碼程式庫 (FLAC, MP3, WAV)。 | Unlicense | |
| flac | FLAC 代表 Free Lossless Audio Codec (自由無損音訊編解碼器),意味著以 FLAC 壓縮的音訊不會有任何品質損失。FLAC 是最快速且最被廣泛支援的無損音訊編解碼器,非私有且無專利阻礙。 | 開源, BSD, GPL | |
| LAME | LAME 是一款高品質的 MPEG 音訊層 III (MP3) 編碼器。 | LGPL | |
| libsndfile | 一個 C 程式庫,附帶 C++ 封裝,用於透過標準程式庫介面讀取與寫入包含取樣音訊的檔案 (例如 WAV, AIFF)。(原始碼) | LGPL-2.1 | cmake, make, vcpkg |
| minimp3 | 極簡的 MP3 解碼器。 | CC0-1.0 | 僅標頭檔 (header-only) |
| Opus | 一種完全開放、免版稅、用途廣泛的音訊編解碼器。 | BSD | cmake |
| Vorbis | Ogg Vorbis 是一種完全開放、非私有、無專利且免版稅的通用壓縮音訊格式。 | BSD | cmake |
- 標籤
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| id3lib | 一個開源、跨平台的程式庫,用於讀取、寫入與處理 ID3v1 與 ID3v2 標籤,並取得基本的 mp3 標頭資訊如位元率。不過,我們現在建議改用 taglib :) | LGPL v2 | |
| taglib | TagLib 音訊元資料程式庫,用於讀取與編輯多種熱門音訊格式的元資料:ID3v1, MP3 檔案的 ID3v2, Ogg Vorbis 註解,以及 FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 與 ASF 檔案中的 ID3 標籤與 Vorbis 註解。(原始碼) | LGPL 與 MPL v1.1 |
[編輯] 效能測試
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| benchmark | 一個用於對程式碼片段進行基準測試的程式庫,類似單元測試。 | Apache 2.0 | cmake |
| Celero | 一個功能豐富的 C++ 基準測試撰寫程式庫/框架。使用 C++11 支援 Windows, Linux 與 OSX。 | Apache | cmake |
| Criterion | 一個現代 C++ 的微基準測試程式庫。 | MIT | 僅標頭檔;cmake |
| gperftools | 「Google 效能工具」包含高效能、多執行緒的 malloc 實作,以及用於基準測試堆積分配與 CPU 利用率的工具。 | BSD 3-Clause "New" 或 "Revised" | configure |
| nanobench | 一個針對 C++11/14/17/20 簡單、快速、準確的單一標頭檔微基準測試功能。(原始碼) | MIT | 僅標頭檔;cmake |
| picobench | 一個極小的微基準測試程式庫。 | MIT | 僅標頭檔;cmake |
| plf::nanotimer | 一個最低開銷、跨平台、用於基準測試的簡易計時器類別。 | zlib | 僅標頭檔 (header-only) |
[編輯] 通訊
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| ACE | 非同步網路、事件多工解多工、訊息傳遞。(原始碼)(文件) | 自訂 | make |
| Apache Thrift | Apache Thrift 軟體框架,用於可擴充的跨語言服務開發,結合了軟體堆疊與程式碼產生引擎,以建立在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi 與其他語言之間高效且無縫運作的服務。(原始碼) | Apache-2.0 | cmake, vcpkg |
| Boost.Asio | 非同步與同步網路、計時器、序列 I/O。 | BSL-1.0 | |
| Boost.Beast | 建立在 Boost.Asio 之上的 HTTP 與 WebSocket 程式庫。 | BSL-1.0 | |
| Breep | 一個基於事件、高階、點對點 (P2P) 的程式庫,允許使用者直接傳送與接收物件。 | 歐盟公共授權條款 1.1 (EUPL 1.1) | cmake |
| brpc | 百度內部使用的工業級 RPC 框架,擁有 1,000,000+ 個實例與數千種服務。(原始碼)(文件) | Apache 2.0 | cmake |
| C++ REST SDK | 一個非同步 HTTP 用戶端與監聽器,非同步串流、URI、JSON。 | MIT | cmake |
| cpp-httplib | 一個 C++11 單一檔案、僅標頭檔、跨平台的 HTTP/HTTPS 程式庫。 | MIT | 僅標頭檔;cmake |
| cpp-netlib | 一個 C++ 網路程式庫。 | BSL-1.0 | cmake |
| cppsimpleuri | 一個現代 C++ URI 與查詢剖析器。 | MIT | cmake |
| cpr | 一個現代 C++ HTTP 請求程式庫。 | MIT | cmake |
| Crow | 一個 C++ 微型 Web 框架(受 Python Flask 啟發)。 | BSD-3-Clause | 僅標頭檔;cmake |
| curlpp | libcURL (CURL 程式庫) 的 C++ 封裝。(原始碼) | cmake, vcpkg | |
| DumaisLib | 各種工具程式,例如 WebServer, JSON, WebSocket 伺服器,REST 框架(用於在 C++ 應用程式中建立 REST API 的程式庫)。 | MIT | make |
| EasyHttp | 一個專注於易用性與速度的跨平台 HTTP 用戶端程式庫,支援 HTTP 回應快取等功能。 | MIT | cmake |
| eCAL | 一個高效能的處理程序間通訊 (IPC) 程式庫。 | Apache 2.0 | cmake |
| fineftp-server | 一個適用於 Windows 與 Unix 的 FTP 伺服器程式庫。 | MIT | cmake |
| FPNN | Fast Programmable Nexus Network。高效能完全非同步 RPC 服務框架。同時支援 HTTP, WebSocket, TCP 與可靠的 UDP。支援超高負載伺服器開發,並提供對應的用戶端 SDK。 | 未知 | make |
| gRPC | 一個可以在任何環境中執行的現代開源高效能 RPC 框架。(原始碼)(文件) | Apache-2.0 | bazel, cmake, vcpkg |
| gsoap | 用於 XML 資料綁定、快速 WSDL/SOAP/XML Web 服務、WS-Security、JSON/XML-RPC RESTful 服務的 C/C++ 開發工具組。 | GPLv2 | |
| hmbdc | 一個輕量級且高效能的 C++17 訊息發布/訂閱 (Pub/Sub) 中介軟體框架/程式庫。 | 僅標頭檔 (header-only) | |
| HTTPP | 一個簡單、C++14、已可投入生產的 HTTP 伺服器(建構於 Boost 之上)與用戶端(建構於 libcurl 之上)。 | BSD 2-Clause "Simplified" | cmake, make |
| IXWebSocket | 一個無相依性的開源 WebSocket + HTTP 程式庫,支援 SSL 與 per-message deflate WebSocket 擴充。 | BSD 3-Clause "New" 或 "Revised" | cmake, make |
| KCP | 一種快速且可靠的 ARQ 通訊協定,有助於應用程式降低網路延遲。 | MIT | cmake |
| libashttp | 一個非同步 HTTP 用戶端程式庫。 | GNU Lesser General Public v3.0 | |
| libjson-rpc-cpp |
一個為 C++ 提供跨平台 JSON-RPC (遠端程序呼叫) 支援的框架,完全相容於 JSON-RPC 2.0 & 1.0。 |
MIT | cmake, conan |
| libnavajo | 一個 C++ 框架,包含快速多執行緒 HTTP 伺服器、HTML5 Websockets, SSL, X509 與 HTTP 驗證、壓縮、Cookie 與進階工作階段管理、IPv4 與 IPv6 (CeCILL-C)。 | CeCILL-C 自由軟體授權合約 | cmake |
| libtins | 一個網路封包製作與嗅探程式庫。(原始碼)(文件) | BSD-2 | cmake, vcpkg |
| LiteNetLibPP | 一個適用於遊戲的輕量級可靠 UDP 程式庫。 | MIT | cmake |
| mailio | MIME 與電子郵件程式庫。 | BSD 2-Clause "Simplified" | cmake |
| nanomsg | 一個快速訊息佇列,zeromq 的後繼者。 | ||
| netif | 一個用於在 Windows, Linux, macOS 與 FreeBSD 上取得網路位址的 C++14 程式庫。 | BSD 3-Clause "New" 或 "Revised" | 僅標頭檔;cmake |
| nghttp2 | HTTP/2 C 程式庫與工具(伺服器、用戶端、代理伺服器與基準測試工具)。 | MIT | cmake, configure |
| ngrest | 一個快速且易於使用的 JSON RESTful Web 服務框架。 | Apache 2.0 | cmake |
| nng | 一個快速訊息佇列,nanomsg 的後繼者。 | ||
| Oat++ | 一個 Web 框架:REST-API 與請求實作。(原始碼)(文件) | Apache 2.0 | cmake |
| omniORB | C++ 中最快速、完整且可移植的 CORBA ORB 實作。 | ||
| OpenDDS | DDS (資料分發服務) 實作。 | ||
| Paho MQTT | 一個由 Eclipse 提供的現代 C++ MQTT 用戶端。 | cmake | |
| paozhu | 一個 C++20 Web 框架,支援 HTTP/2, ORM, WebSocket。 | MIT | cmake |
| PcapPlusPlus | 多平台 C++ 網路嗅探與封包剖析、製作框架。為許多熱門封包處理引擎(如 libpcap, Npcap, WinPcap, DPDK, AF_XDP 與 PF_RING)提供 C++ 封裝。(原始碼) | Unlicense | conan, homebrew, cmake, vcpkg |
| POCO | 網路:加密、HTTP;Zip 檔案。(文件) | ||
| rest_rpc | 一個 C++11、高效能、跨平台、易於使用的 RPC 框架。 | MIT | cmake |
| restbed | 一個跨平台、功能豐富的框架,為 C++14 應用程式帶來非同步 RESTful 功能(透過 HTTP 的安全通訊)。 | 授權 | cmake |
| restc-cpp | 在 C++ 中存取 JSON API。HTTP 用戶端,原生 C++ 類別轉 JSON 序列化,透過 boost::asio 協程進行非同步 I/O。C++14。 | MIT | cmake |
| restful_mapper | 用於在 C++ 中消費 RESTful JSON API 的 ORM。 | cmake, make | |
| seastar | 一個高效能伺服器端應用程式框架,基於 C++14/C++17。 | Apache 2.0 | cmake, etc. |
| Silicon | Silicon C++14 Web 框架:快速且強健的 Web API。 | MIT | cmake |
| sockpp | 一個簡單、現代的 C++ Socket 程式庫。 | BSD 3-Clause "New" 或 "Revised" | cmake |
| stream-client | 一個基於 Boost 的輕量級用戶端 Socket/連接器/Socket 池/解析器。 | Apache 2.0 | 僅標頭檔;cmake |
| tacopie | 一個 C++11 TCP 程式庫。 | MIT | cmake |
| TAO | CORBA | ||
| taox11 | 一個基於 C++11 的 CORBA 實作。 | MIT | |
| Unicomm | 非同步網路,高階 TCP 通訊框架。 | ||
| uvw | 一個 libuv (跨平台非同步 I/O) 的 C++17 封裝。(原始碼) | MIT | 僅標頭檔;cmake |
| WNetWrap | 一個 WinInet 的 C++ 封裝。 | MIT | |
| wvstreams | 一個 C++ 網路程式庫,包含 UniConf 與便利的 D-Bus API。 | GPL | |
| zeromq | 一個快速訊息佇列。 |
[編輯] 並發性
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| AdaptiveCpp | 提供適用於來自 NVIDIA, AMD, Intel 的 CPU 與 GPU 的 SYCL 與 C++ 並行 STL 卸載編譯器與執行時期系統。 | BSD-2-Clause | cmake |
| Asyncpp | 一個非同步 C++ 程式庫,提供各種並行操作。 | MIT | cmake |
| BlockingCollection | C++11 執行緒安全、多生產者、多消費者阻隔佇列、堆疊與優先佇列類別。 | GPL-3.0 | 僅標頭檔 (header-only) |
| Boost.Atomic | 提供原子資料類型與針對這些類型的操作,以及透過原子變數協調多執行緒所需的記憶體順序約束。 | BSL-1.0 | |
| Boost.Compute | 一個基於 OpenCL 的 C++ GPU/並行計算程式庫。 | BSL-1.0 | cmake |
| Boost.Context | 一個 C++11 程式庫,在單一執行緒上提供協同式多工處理抽象。 | BSL-1.0 | |
| Boost.Interprocess | 簡化處理程序間通訊與同步機制的使用,並提供多種機制:共享記憶體、記憶體映射檔案、信號量、互斥鎖、條件變數、可升級互斥鎖類型、具名同步物件、檔案鎖定、訊息佇列。 | BSL-1.0 | |
| Boost.Lockfree | 提供非阻隔 (即無鎖) 並行資料結構:佇列、堆疊與環狀緩衝區 (spsc_queue)。 | BSL-1.0 | |
| Boost.MPI | 一個對 C++ 友善的標準 訊息傳遞介面 (Message Passing Interface) 介面。 | BSL-1.0 | |
| Boost.Thread | 支援使用多個共享資料的執行執行緒,以及執行緒間資料同步的方法。 | BSL-1.0 | |
| concurrencpp | 現代 C++ 並發性。工作 (Tasks)、執行器 (Executors)、計時器與 C++20 協程。 | MIT | cmake |
| dispenso | C++ 的高效能並發性。parallel_for, Futures, 管線, 計時器, 定時/週期性工作與並行資料結構。 | MIT | cmake |
| Highway | 提供效能可移植、長度無關的 SIMD/向量內建函式。支援:SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER。(文件) | Apache-2.0 | cmake |
| HPX | 一個通用的 C++ 執行時期系統,適用於各種規模的並行與分散式應用程式。(文件) | BSL-1.0 | cmake, vcpkg |
| Intel TBB | Intel® TBB 是一個用於共享記憶體並行程式設計與異質運算的跨平台 C++ 程式庫。該程式庫提供:通用並行演算法、並行容器、可擴充記憶體分配器、工作竊取任務排程器與低階同步原語。(原始碼)(文件) | Apache-2.0 或商業授權 | cmake, make |
| KOKKOS | 一種用於編寫高效能可移植 HPC 應用程式的程式設計模型,使用 CUDA, HIP, SYCL, HPX, OpenMP 與 C++ 執行緒作為後端。(文件) | 自訂 | cmake, make |
| libopenmpi | Open MPI 專案是一個開源的訊息傳遞介面 (Message Passing Interface) 實作。 | 3-clause BSD | |
| libsimdpp | 一個可移植、零開銷的 C++ 低階 SIMD 程式庫。 | Boost | 僅標頭檔;cmake |
| MPL | 一個對 C++17 友善的標準 訊息傳遞介面 (Message Passing Interface) 介面。 | BSD 3-Clause "New" 或 "Revised" | 僅標頭檔;cmake |
| MutexGear | 一個僅使用互斥鎖同步(輪詢、讀寫鎖、工作佇列)的 C/C++11 程式庫。 | The MutexGear Library | configure, msvc, make |
| OpenMP | 用於並行程式設計的 OpenMP API 規範。 | ||
| PoCL | 一個可移植、可重定向、開源 (基於 LLVM) 的 OpenCL 標準實作。(原始碼)(文件) | MIT | cmake |
| RaftLib | 一個 C++17 串流般的並行 Actor,能進行並行資料流計算。 | Apache-2.0 | cmake |
| SObjectizer | 一個小型跨平台框架,用於在 C++ 中透過 Actor 與發布-訂閱模型進行並行與事件驅動應用程式開發。 | BSD-3-Clause | cmake, vcpkg, conan |
| stdgpu | GPU 上高效的類 STL 資料結構。 | Apache 2.0 | cmake |
| subprocess | 用於執行子處理程序的 C++17/20 跨平台程式庫。 | MIT | cmake, teaport |
| Taskflow | 現代 C++ 中的並行任務程式設計。 | TASKFLOW MIT | cmake |
| task-thread-pool | 適用於 C++11 及更新版本的快速輕量級執行緒池。 | BSD-2-Clause 或 MIT 或 BSL-1.0 | cmake, vcpkg, 單一標頭檔 |
| ThreadPool | 一個簡單的輕量級執行緒池。 | BSD-3-Clause | 僅標頭檔;cmake, make |
| thread_pool | 一個現代、快速、輕量級的執行緒池。 | MIT | cmake |
| Thrust | 基於 CUDA, TBB 或 OpenMP 的類 STL 並行演算法與資料結構。 | Apache v2.0, Boost v1.0. | cmake |
| TimerAlarm | 基於執行緒的計時器與警報。 | BSD-3-Clause | 僅標頭檔;cmake, make |
| VexCL | 一個用於 OpenCL, CUDA, OpenMP 的 C++ 向量表達式範本程式庫。 | MIT | cmake |
| ViennaCL | 具備 OpenMP, CUDA 與 OpenCL 後端的線性代數與演算法。(原始碼)(文件) | 自訂 | cmake |
| Xenium | 一個提供各種並行資料結構與回收機制的 C++17 程式庫。 | MIT | 僅標頭檔;cmake |
[編輯] 配置
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.Program_options | 該程式庫允許透過傳統方法(如命令列、配置檔案與環境變數)從使用者取得程式選項,即 (名稱, 數值) 配對。 | BSL-1.0 | |
| figcone | 透過宣告結構體 (struct) 來讀取 JSON, YAML, TOML, XML 或 INI 配置。 | MS-PL | cmake |
| gconfmm | 一個熱門 GUI 程式庫 GTK 的跨平台(官方)C++ 介面,包含型別安全的回呼,以及一組可透過繼承輕易擴充的綜合性小工具 (Widgets)。gtkmm 使用 STL,包含 string、容器與迭代器。支援 UTF8。(原始碼)(文件) | LGPLv2.1 | autotools, meson, make |
| libconfig | 一個用於處理結構化配置檔案 ("*.cfg") 的簡單跨平台 C/C++ 程式庫。(原始碼)(文件) | LGPL 2.1 | autotools, cmake, make |
| libconfini | 一個以 C 語言編寫的跨平台 INI 剖析器。(文件) | GPL-3.0 | autotools, make |
| uconfig | 一個輕量級 C++17 配置程式庫。 | Apache 2.0 | 僅標頭檔;cmake |
- 命令列
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Argh! | 一個極簡的參數處理器。 | BSD 3-Clause | 僅標頭檔;cmake, vcpkg |
| argparse (hbristow) | 一個用於剖析命令列參數的精簡 C++ 類別,其介面類似 Python 同名類別。 | BSD | |
| argparse (morrisfranken) | 一個以優雅方式剖析命令列參數的輕量級程式庫。 | Apache 2 | 僅標頭檔;cmake |
| argparse (p-ranav) | 一個適用於 C++17 的命令列參數剖析器。 | MIT | 僅標頭檔;cmake, vcpkg |
| args | 一個簡單的 C++ 參數剖析程式庫。 | MIT | 僅標頭檔;cmake, conan, meson, vcpkg |
| Boost.Program_options | 該程式庫允許透過傳統方法(如命令列、配置檔案與環境變數)從使用者取得程式選項,即 (名稱, 數值) 配對。 | BSL-1.0 | |
| CLI11 | 一個 C++11 命令列剖析器,以簡單直觀的介面提供豐富的功能集。 | BSD-3-Clause | 僅標頭檔;cmake, meson, vcpkg |
| clipp | 用於現代 C++ 的強大且具表達力的參數剖析。 | MIT | 僅標頭檔;cmake, vcpkg |
| cmd_line_parser | C++17 的命令列剖析器。 | MIT | 僅標頭檔;cmake |
| cmdlime | 一個 C++17 命令列剖析程式庫,提供簡潔、宣告式的介面,支援子命令、驗證器,並可選擇 GNU, POSIX 或 X11 命令列選項格式。 | MS-PL | cmake |
| cxxopts | 一個輕量級 C++11/C++17 命令列參數剖析器,支援標準 GNU 風格的選項語法。 | MIT | 僅標頭檔;bazel, cmake |
| fire-hpp | 使用函式簽章建立功能完整的 CLI。 | BSL-1.0 | 僅標頭檔;cmake |
| flags | 簡單、可擴充的 C++17 參數剖析器。 | Unlicense | 僅標頭檔;cmake |
| gflags | 一個實作命令列旗標 (flags) 處理的程式庫。它內建對標準類型(如 string)的支援,並具有在原始檔案中定義其所使用旗標的能力。 | BSD | cmake |
| structopt | 透過定義結構體 (struct) 來剖析命令列參數。 | MIT | 僅標頭檔;cmake |
| tclap | 一個用於剖析命令列參數的簡單 C++ 範本程式庫。該程式庫提供了一個簡單、靈活的物件導向介面。 | MIT | cmake |
- CSS
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| mycss | CSS 剖析器。 |
- HOCON
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| cpp-hocon | 由 Pupplet 開發的 HOCON 格式的 C++ 實作。 |
- JSON
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| ArduinoJson | 適用於 Arduino, IoT 與嵌入式 C++ 的 C++98/11/14/17 JSON 程式庫。 | MIT | cmake |
| Boost.JSON | C++11/17 中的 JSON 剖析、序列化與 DOM。 | BSL-1.0 | |
| cajun-jsonapi | 一個 C++ JSON API,強調直觀、簡潔的介面,盡可能模仿標準 C++。 | make | |
| DAW JSON Link | 一個 C++17 程式庫,提供帶有型別檢查的靜態 C++ 綁定,允許直接剖析到使用者資料結構,無需程式庫分配,推/拉模式,分配器支援,constexpr。 | BSL 1.0 | cmake |
| Glaze | 最快速的 JSON 程式庫之一 (C++23),具有直接記憶體序列化功能。亦支援 BEVE 與 CSV。 | MIT | cmake, conan, build2, vcpkg |
| jansson | 一個用於編碼、解碼與操作 JSON 資料的 C 程式庫,支援 UTF-8。 | MIT | cmake, make |
| jeayeson | 一個非常合理的 C++14 JSON 程式庫。 | BSD-3 | 僅標頭檔 (header-only) |
| jios | JSON 輸入輸出串流。 | MIT | cmake |
| JOST | |||
| json | Niels Lohmann 針對 C++11 的 JSON 實作,具有直觀的語法。 | MIT | 僅標頭檔;bazel, cmake, meson |
| Jsonifier | 一些用於極速 JSON 剖析/序列化的 C++20 類別。 | MIT | cmake |
| JSON Voorhees | Killer JSON for C++11。(文件) | Apache-2.0 | cmake |
| JSON++ | |||
| json11 | 一個適用於 C++11 的微型 JSON 程式庫,提供 JSON 剖析與序列化。 | MIT | cmake |
| JsonBox | 一個用於輕鬆且快速讀寫 JSON 的 C++ 程式庫。 | MIT | cmake |
| jsoncons | 一個用於 JSON 與類 JSON 資料格式的程式庫,具有 JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON 等功能。 | 自訂 | 僅標頭檔 (header-only) |
| jsoncpp | 一個允許操作 JSON 值的程式庫,包括序列化與反序列化,同時保留註解。 | MIT | cmake, conan, vcpkg |
| libjson | |||
| minijson | 一個 C++ 無 DOM 且無分配的 JSON 剖析與序列化程式庫。 | 自訂 | cmake |
| Neyson | 輕量級 C++11 JSON 程式庫。 | BSD-3-Clause | cmake |
| nosjob | 一個用於產生與消費 JSON 資料的 C++98 程式庫。 | MIT | make |
| qjson | |||
| rapidjson | 一個 C++ 快速 JSON 剖析器/產生器,具備 SAX/DOM 風格 API,支援 UTF-8/16/32,可選擇性使用 SIMD。(文件) | 自訂 | 僅標頭檔;cmake, vcpkg |
| simdjson | 利用現代微架構並透過 SIMD 進行並行處理,每秒可剖析數 GB 的 JSON。(文件)(Kino) | Apache-2.0 | cmake, vcpkg |
| struct_mapping | 將 JSON 與 C++ 結構進行互相對應。 | MIT | cmake |
| swxJson | 目前使用中最方便的 C++ JSON 程式庫。只需一個函式呼叫即可在任何層級讀寫複雜結構。效能約為 RapidJSON 的一半。 | MIT | make |
| ThorsSerializer | JSON/BSON/YAML 輸入輸出串流。 | MIT | make |
| ujson | µjson 是一個小型、C++11、UTF-8、JSON 程式庫。 | cmake | |
| yyjson | 一個以 ANSI C 編寫的高效能 JSON 程式庫。 | MIT | cmake |
- TOML
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| toml++ | 適用於 C++17 及更新版本的 TOML 剖析器與序列化器。 | ||
| toml11 | 基於 C++11 的 TOML 剖析程式庫。 |
- XML
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| ai-xml | 透過為類別加入單一且極小的函式,實現物件與 XML 之間的序列化。底層使用 libxml++。 | AGPL-3.0 | make |
| GPDS | 一個通用資料序列化程式庫,用於物件與 XML 之間的序列化。底層使用 TinyXML。 | ||
| gSOAP | XML 資料綁定。 | ||
| libxml++ | libxml++ 是 libxml XML 剖析器 C 程式庫的 C++ 封裝。(文件) | LGPL-2 | |
| pugixml | 一個輕量級、簡單且快速的 C++ XML 剖析器,支援 XPath。 | MIT | cmake, conan |
| tinyxml | |||
| tinyxml2 | TinyXML 的另一個開發中版本。 | ||
| Xerces |
- YAML
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| yaml-cpp | 一個 C++ YAML 剖析器與發送器。 | MIT | cmake |
[編輯] 容器
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.Bimap | 一個雙向對映程式庫,提供關聯容器如 bimap<X,Y>,其中 X 與 Y 皆可作為鍵值。(原始碼) |
BSL-1.0 | |
| Boost.Container | 一個實作多種知名容器的程式庫,包括類 STL 容器、遞迴容器,以及新的實用容器:flat_map, flat_set, flat_multimap, flat_multiset, stable_vector, static_vector, small_vector, devector。(原始碼) |
BSL-1.0 | 僅標頭檔 (header-only) |
| Boost.Fusion | 一個用於處理異質 Tuple 集合的程式庫。提供一組容器 (vector, list, set 與 map),以及其底層資料的轉換呈現 (亦稱 views)。(原始碼) |
BSL-1.0 | |
| Boost.Heap | 一個具有比 STL 更多功能與不同效能特性的 優先佇列 實作。(原始碼) | BSL-1.0 | |
| Boost.Pointer Container | 提供用於以異常安全方式持有 堆積分配物件 且開銷最小的容器。(原始碼) | BSL-1.0 | |
| Boost.Tuple | 實作 C++11 之前的 n-tuple(固定大小的元素集合)。(原始碼) |
BSL-1.0 | |
| Boost.Variant | 實作 C++17 之前的 variant(一個安全的、通用的、基於堆疊的識別 union 容器)。(原始碼) |
BSL-1.0 | |
| C++ Allocators | 符合 STL 標準的分配器,適用於固定大小靜態與堆疊基礎記憶體 + 另一個允許自訂邊界分配的分配器。 | BSD-3-Clause | cmake, make |
| cpp-btree | B-tree 容器能更好地利用 CPU 快取:btree_map, btree_set, btree_multimap, btree_multiset。(原始碼) |
Apache-2.0 | 僅標頭檔;cmake |
| DataFrame | C++ 資料框,用於統計、金融與 ML 分析 -- 使用現代 C++ 原生類型與連續記憶體儲存。 | BSD-3-Clause | cmake, make, conan, vcpkg |
| eggs::variant | Eggs.Variant 是一個 C++11/14/17 通用的、型別安全的、識別聯合 (discriminated union)。它特別值得一提的是具備非常好的 constexpr 支援。 | BSL-1.0 | cmake |
| Frozen | C++14 constexpr 基於完美雜湊 (perfect-hashing) 的不可變集合、對映與演算法。 | Apache-2.0 | 僅標頭檔;cmake |
| Immer | 一個持續且不可變的資料結構程式庫。 | Boost | cmake |
| plf::colony | 無序的「袋裝 (bag-like)」容器,在高修改情境下效能優於 std:: 容器,同時無論插入與移除,皆能為未移除的元素保留有效指標。C++98/11/14 等相容。參閱 P0447 (std::hive)。(原始碼) |
zlib | conan build2 |
| plf::list | 一個 std::list 的實作,它犧牲了範圍拼接 (range-splicing) 以換取快取友善性,進而實現更快的插入、刪除與迭代。相容於 C++98/03/11/14/17/20/23/26 等。(原始碼)(文件) | zlib | — |
| plf::reorderase | 針對隨機存取容器的「交換並彈出」(swap-and-pop) / 「移動並彈出」(move-and-pop) 慣用語進行擴展與優化,旨在提升隨機存取容器在刪除元素後的效能(適用於不需保留刪除後順序的場景)。涵蓋單一元素刪除、範圍刪除以及 std::erase_if 風格的刪除操作。相容於 C++98/11/14 等標準。 (原始碼) |
zlib | |
| plf::queue | 作為 std::queue 容器轉接器的直接替代品,在佇列操作情境下具有比 std::deque 和 std::list 更優異的效能。相容於 C++98/11/14 等標準。 (原始碼) | zlib | |
| plf::stack | 作為 std::stack 容器轉接器的直接替代品,在堆疊操作情境下具有比 std::vector 和 std::deque 更優異的效能。相容於 C++98/11/14 等標準。 (原始碼) | zlib | |
| ring_span | Arthur O'Dwyer 之 ring_span(又稱環形緩衝區檢視)的輕量化實作。相容於 C++98。 |
BSL-1.0 | 僅標頭檔;cmake |
| strict_variant | 針對即時/嵌入式系統設計(例如相容於 -fno-exceptions/-fno-rtti),且永不為空的 C++11 variant。速度快,能防止許多不理想的隱式型別轉換。 |
BSL-1.0 | cmake |
| Ygg | 高效能容器與資料結構的侵入式 C++11 實作,例如紅黑樹、區間樹 (Interval tree) 和區間映射 (Interval Map)。 | MIT | cmake |
[編輯] 密碼學
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Botan | 密碼學工具箱。 (原始碼) | BSD 2-Clause "Simplified" | make |
| crypto++ | 免費的 C++ 密碼學方案類別庫。 (原始碼) | Boost | make |
| gnutls | 實現 SSL、TLS 和 DTLS 協定及其相關技術的安全通訊函式庫。 (原始碼) | LGPL-2.1 | make |
| openssl | 穩健、商用級、功能全面的通用密碼學與安全通訊工具箱。 (原始碼) | Apache-2.0 | make |
| TomCrypt | 相當全面、模組化且可移植的密碼學工具箱,為開發者提供豐富的已知區塊加密法、單向雜湊函式、鏈結模式、虛擬亂數產生器、公開金鑰密碼學及其他多種例程。 (原始碼) | 公有領域 (public domain) | cmake, make |
[編輯] 資料庫
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost::MySQL | MySQL 用戶端函式庫 | BSL-1.0 | |
| cpp-redis | 輕量級 C++11 Redis 用戶端:支援非同步、執行緒安全、無相依性、管道傳輸 (pipelining)、跨平台。 (文件) | MIT | cmake |
| DTL | 讓 ODBC 記錄集看起來就像 STL 容器一樣 (原始碼) (文件) | ||
| EasyQtSql | 輕量級 C++11(基於 Qt)函式庫,用於快速且簡便的 SQL 查詢 | MIT | 僅標頭檔;qmake |
| Galera | Galera Cluster 是一個同步多主複製函式庫 (Galera),並為 MySQL/MariaDB 提供寫入集複製 (WSREP) API (原始碼) | GPLv2 | cmake, scons |
| LevelDB | 由 Google 開發的 C++ 函式庫,處理十億級鍵值 (Key-Value) 資料持久化儲存。 (文件) | BSD-3 | cmake |
| libpqxx | PostgreSQL 的 C++ 連接器 (原始碼) | BSD-3 | cmake, make |
| lmdb++ | 用於 LMDB 嵌入式 B+ 樹資料庫函式庫的 C++11 包裝器。 | Unlicense | make |
| mongocxx | 官方 C++11 MongoDB 驅動程式函式庫 (文件)。它為 CRUD 操作、索引和聚合提供優化的 API。支援 BSON 並具備連線池與認證機制,為建構利用 MongoDB 的 C++ 應用程式提供高效能與可擴充的解決方案。 | Apache 2.0 | cmake |
| mysql++ | MySQL 資料庫與工具 | ||
| nanodbc | 小型、跨平台、用於原生 C ODBC API 的 C++14 包裝器 | MIT | cmake |
| ODB | 開源、跨平台且支援多種資料庫的 C++ 物件關聯對映 (ORM) 系統。ODB 支援 MySQL、SQLite、PostgreSQL、Oracle 與 Microsoft SQL Server 關聯式資料庫,並支援 C++98/03 及 C++11 語言標準。 | GPL2 和/或 NCUEL | |
| OTL | 基於 C++ 樣板的資料庫函式庫,適用於 Oracle DB、ODBC 和 DB2-CLI。 (原始碼) | ||
| Pgfe | 現代 C++ 的 PostgreSQL 用戶端 (FrontEnd) API | Zlib | cmake |
| QTL | 適用於 MySQL、SQLite 和 ODBC 的親和且輕量級的 C++ 資料庫函式庫。 | Apache-2.0 | make |
| QUINCE | QUeries IN C++ Expressions (ORM+EDSL) | Boost | |
| QxOrm | 用於 C++/Qt 的物件關聯對映 (ORM) 資料庫函式庫,支援大多數常見資料庫、序列化(JSON、二進位、XML);獨立的多執行緒 HTTP 網頁伺服器 | GPLv3 或專有授權 | |
| redis-cpp | 用於執行 Redis 指令的輕量級 C++17 用戶端函式庫。 | MIT | 僅標頭檔;cmake |
| redis-plus-plus | 以 C++11 編寫的 Redis 用戶端,支援 Redis Sentinel、Redis Cluster、管道、事務、pubsub、連線池和 STL 風格的介面 | Apache-2.0 | cmake |
| SOCI | 基於外掛的資料庫函式庫,將 SQL 查詢嵌入常規 C++ 程式碼中;支援的後端包括:DB2、Firebird、MySQL、ODBC (通用後端)、Oracle、PostgreSQL、SQLite3。 (原始碼) (文件) | Boost | cmake |
| SQLAPI++ | 中介軟體 C++ 資料庫函式庫,支援多種 SQL 資料庫系統:Oracle、SQL Server、DB2、Sybase、MySQL、PostgreSQL、SQLite、Informix、InterBase / Firebird、SQLBase、SQL Anywhere、ODBC、MariaDB。 (原始碼) (文件) | 自訂 | make |
| SQLiteCPP | 精簡且易於使用的 C++ SQLite3 包裝器。 | MIT | cmake, meson, vcpkg |
| SQLite ORM | 針對現代 C++、由 SQLite 理解的 SQL 嵌入式領域特定語言 (EDSL)。 | AGPL-3.0, MIT | 僅標頭檔;cmake, vcpkg |
| sqlpp11 | 用於 C++ 中 SQL 查詢與結果的型別安全嵌入式領域特定語言。 | BSD-2 | cmake |
| taoPQ | 輕量級 C++17 PostgreSQL 用戶端函式庫 | Boost | cmake |
[編輯] 嵌入式語言繫結
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| AngelScript | 類似 C++ 的腳本語言。 | ZLib | |
| ChaiScript | 易於使用的 C++ 嵌入式腳本語言。 | BSD-3-Clause | |
| cling | 互動式 C++ 直譯器,建構於 Clang 和 LLVM 之上,以利於 RAD、指令稿建立、可嵌入指令稿與執行階段程式碼產生。 (原始碼) | 自訂 (Custom) / LGPL | cmake |
| ExprTk | 易於使用、易於整合且極度高效的執行階段數學表達式剖析器與評估引擎。ExprTk 支援多種函式、邏輯與向量處理語意,且非常容易擴充。 | ||
| Jinx | 為電子遊戲設計的腳本語言。 | MIT | cmake |
| spidermonkey.dev | Mozilla 的 JavaScript 與 WebAssembly 引擎。 | ||
| muparser | 以 C++ 編寫、可擴充的高效能數學表達式剖析函式庫。 | BSD-2-Clause | cmake |
| PythonQt | 用於 Qt 框架的動態 Python 繫結。它提供了一種將 Python 腳本語言嵌入 C++ Qt 應用程式的簡單方法。 | LGPL 2.1 | |
| lua | 輕量級、多範式腳本語言,主要設計用於嵌入式。C 函式庫。 | MIT | make |
| sol2 | 現代 C++ Lua 繫結函式庫。 | MIT | 僅標頭檔;cmake |
| v8pp | 將 C++ 函式與類別繫結至 V8 JavaScript 引擎。 | BSL-1.0 | 僅標頭檔;cmake |
[編輯] 嵌入式/即時 (Realtime)
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| distortos | 用於微控制器(ARM, STM32)的物件導向 C++11 RTOS (原始碼) (文件) | MPL-2.0 | cmake |
| ETL | Embedded Template Library - C++03,專為低資源(嵌入式)平台量身打造的可移植樣板函式庫 (原始碼) | MIT | |
| QP/C++ | RTOS 核心:基於主動物件 (Active Objects) 與狀態機的即時嵌入式框架 | GPLv3 | |
| µcuREST | 用於微控制器的 C++11 REST/JSON 伺服器框架 |
[編輯] 檔案詮釋資料 (Metadata)
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| exempi | |||
| exiv2 | |||
| libkexiv2 | |||
| rarian |
[編輯] 金融計算
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| DataFrame | 用於統計、金融與機器學習分析的 C++ DataFrame -- 使用現代 C++、原生型別與連續記憶體儲存 | BSD-3-Clause | cmake, make, conan |
| QuantLib | 定量金融函式庫 - 用於定量金融的免費/開源函式庫 | modified BSD |
[編輯] 遊戲引擎架構
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Anax | 開源 C++ 實體系統 | MIT | cmake |
| Anura | 完整功能的遊戲引擎,也是 Frogatto & Friends 背後的技術。 | 自訂 (Custom) 開源 | make, vcpkg |
| BOX2D | 物理引擎 | MIT | cmake |
| EntityPlus | C++17 實體組件系統 (ECS) | BSD-1.0 | cmake |
| EntityX | 快速、型別安全的 C++ 實體組件系統 | MIT | cmake |
| EnTT | 以現代 C++ 編寫,適用於遊戲開發等用途的小型函式庫 | MIT | 僅標頭檔;cmake, bazel, conan, vcpkg, brew, cppget |
[編輯] 一般多媒體
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Kigs-framework | 模組化、多用途的跨平台框架 | MIT | |
| openFrameworks | MIT | ||
| SDL | Simple DirectMedia Layer:跨平台(Windows, macOS, Linux, iOS, Android 等),透過各平台的圖形 API (OpenGL/Direct3D/Metal/Vulkan) 提供對音訊、鍵盤、滑鼠、搖桿及圖形硬體的底層存取 (文件) (原始碼) | zlib | cmake |
| SFML | Simple and Fast Multimedia Library;多平台(Windows, Linux, macOS,即將支援 Android & iOS);提供簡單介面以簡化遊戲與多媒體應用程式的開發。它包含五個模組:系統、視窗、圖形(基於 OpenGL)、音訊與網路。 | zlib/png | cmake |
| SIGIL | Sound, Input, and Graphics Integration Library;一個簡單、跨平台、極簡的函式庫,用於文字、形狀、輸入、音訊與 2D 影像。支援平台:Windows, Linux 與 Raspberry Pi | 授權 | cmake |
[編輯] 通用
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Abseil | 由 Google 提供的開源 C++ 函式庫集合,旨在增強 C++ 標準函式庫。 (文件) (原始碼) | Apache-2.0 | cmake |
| Abstract Intrusive Containers | 比 Boost.Intrusive 更靈活,但不相容於 STL。 | ||
| Au | 相容於 C++14 的物理單位函式庫,無相依性,強調安全性、易用性與效能。 (文件) | Apache 2.0 | 僅標頭檔 (header-only) |
| BDE | Bloomberg L.P. 的 Bloomberg Development Environment 核心函式庫。 | Apache | |
| Better Enums | 具備反射能力的列舉 (Enum)(如列舉轉字串、迭代等),支援 constexpr。 | BSD-2 | 僅標頭檔, cmake, make |
| bitfield.h | 位元欄位結構工具,比基礎語言功能更具移植性與靈活性。 | ||
| Boost | 大型通用函式庫集合 | BSL-1.0 | |
| CAF | C++ Actor Framework (CAF) 是一個開源的 C++11 Actor 模型實作,具有輕量且快速的 Actor 實作、訊息模式比對、網路透明傳訊等功能 | BSD | |
| Cinder | 社群開發、免費且開源的函式庫,用於 C++ 的專業品質創意編碼。 (文件) (原始碼) | Modified BSD | cmake |
| CommonPP | 多用途函式庫,特別強調從專案中獲取度量資料。 | BSD | |
| composite_op.h | 基礎類別資料成員自省,雖然繁瑣且通常不可重入,但有時很有用。 | ||
| cpp-mmf | 一個封裝 POSIX 或 Windows 記憶體對映檔案 (memory-mapped-files) 的 C++98 函式庫 | ||
| cxxomfort | C++ 功能的向後移植(將 C++11 移植到 C++03,將 C++1y 提案移植到 C++11/C++03)。 | ||
| Dlib | 網路、執行緒、圖形介面、資料結構、線性代數、機器學習、XML 與文字剖析、數值最佳化、貝氏網路及其他眾多任務 | Boost | |
| eventpp | 用於回呼、事件分發器與事件佇列的 C++ 事件函式庫。透過 eventpp,您可以輕鬆實作訊號與插槽機制 (signal and slot)、發布者與訂閱者模式,或觀察者模式。 | Apache 2.0 | |
| fcppt | Freundlich's C++ Toolkit (fcppt) 是一組函式庫集合,專注於透過提供更好的型別並運用函式編程來改進通用 C++ 程式碼。 | ||
| Folly | Facebook 開源函式庫。這是一個跨平台的 C++14 元件庫,設計時充分考慮了實用性與效率。 (文件) | Apache-2.0 | cmake, vcpkg |
| GSL | C++ Core Guidelines Support Library 實作,由 Bjarne Stroustrup, Herb Sutter 等人在 C++ Core Guidelines 中推薦 | MIT | cmake, vcpkg |
| gsl-lite | 適用於 C++98, C++11 及更高版本的 ISO C++ Guideline Support Library (GSL) 版本 | MIT | 僅標頭檔 (header-only) |
| GUL14 | 來自 DESY 的 C++14 通用工具函式庫:常用工具函式與型別,包括字串工具、統計與數值函式、容器、除錯工具等。 (原始碼) | LGPL-2.1 | meson, vcpkg |
| History | 現代 C++17 復原/重做 (Undo/Redo) 框架 | Unlicense | |
| hspp | 一個實驗性函式庫,將 Haskell 風格的程式編寫帶入 C++。 | Apache-2.0 | 僅標頭檔 (header-only) |
| IP-DOS (tm) | IdeaFarm (tm) Piggyback 分散式作業系統:適用於 C++ 語言的通用程式開發環境。 | 專有開源 | Open Watcom 2.0 |
| JUCE | 廣泛、成熟的跨平台 C++ 工具箱 | GPL | |
| Kangaru | 適用於 C++11 與 C++14 的依賴注入 (Dependency Injection) 容器 | MIT | |
| Kerbal | 將現代 STL 功能向後移植至先前標準。更多功能!更多 constexpr! | LGPL-3.0 | 僅標頭檔;cmake |
| libsourcey | 用於高速網路與媒體編碼的跨平台 C++14 函式庫。支援 HTTP, WebSockets, TURN, STUN, Symple 等。 | LGPL-2.1 | cmake |
| LLNL/units | 用於處理測量單位、單位轉換以及單位與測量結果字串表示的執行階段 C++ 函式庫 | BSD 3-Clause "New" 或 "Revised" | cmake |
| Loki | 包含常見設計模式與慣用語靈活實作的 C++ 設計函式庫。 | MIT | make |
| match(it) | 適用於 C++17 的輕量級模式比對 (pattern-matching) 函式庫,採用無巨集 API。 | Apache-2.0 | 僅標頭檔 (header-only) |
| nonstd-lite | 包含許多 *-lite 儲存庫(如 span-lite, scope-lite, expected-lite),提供一些已提議或已標準化之 C++17/20/23 函式庫型別(如 std::span, std::expected 等)的 C++98/11 實作。 | BSL-1.0 | 僅標頭檔 (header-only) |
| nytl | 通用 C++17 工具樣板函式庫。 | BSL-1.0 | 僅標頭檔 (header-only) |
| OnPosix | 在 POSIX 平台上提供多種抽象(例如執行緒、網路、日誌記錄、IPC 等)的 C++ 函式庫。 | ||
| Reason | XML, xpath, regex, 執行緒, sockets, HTTP, SQL, 日期時間, 串流, 編解碼, 檔案系統, 壓縮 | GPL | |
| SaferCPlusPlus | 不安全 C++ 原語(包括指標、int 和 std::vector)的安全相容替代方案。 | Boost | |
| Smart Enum | 為您的列舉提供 to_string、from_string 等功能。 |
BSL-1.0 | cmake |
| units | 基於 C++14、無相依性的編譯時期維度分析與單位轉換函式庫 | MIT | 僅標頭檔 (header-only) |
| yaal | Yet Another Abstraction Layer - 演算法、集合、任意精度計算、通用 DSL 語法驅動的剖析器等 | CC BY-ND-NC 4.0 | cmake |
| Yato | 現代 C++(14/17) 跨平台 STL 風格且相容 STL 的函式庫,實作了容器、範圍 (ranges)、迭代器、型別特性與其他工具;Actor 系統;型別安全的設定介面。 | Apache-2.0 | cmake |
| yomm2 | 適用於 C++17 的開放多方法 (open multi-methods) | Boost | |
| zoolib | ZooLib 是一個功能豐富的 C++ 工具箱。 | MIT |
[編輯] GPS
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| gpsd | 一套開源、跨平台(Linux/Unix/BSD 風格,含 Android 和 OS X)的 GPS 感知工具,例如用於 GPS 裝置、AIS 收音機與其他導航感測器的轉換與複製常駐程式 (daemon)。gpsd 主要以 C 和 Python 編寫,但也有 C++ 包裝器。gpsd 廣泛應用於行動嵌入式系統中。每個定位感知 Android App 間接地都是 gpsd 的用戶端。 (文件) (原始碼) | BSD 2-clause | scons |
[編輯] 圖形使用者介面
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Brisk | 跨平台 C++20 模組化 GUI 框架,具備反應式能力以及可擴充、GPU 加速的渲染功能。 (原始碼), (文件) | GPL2+/專有授權 | cmake, vcpkg |
| Dear ImGui | 用於 C++ 的輕量級 GUI 函式庫,相依性極低、可移植、渲染無關 (render-agnostic),針對已啟用 3D 管線的應用程式進行了最佳化。 | MIT | vcpkg |
| FLTK | 跨平台 C++ GUI 工具箱(Linux, Windows, MacOS),提供現代 GUI 功能,並透過 OpenGL/GLUT 支援 3D 圖形。設計輕量且模組化。包含 UI 建構器。 | LGPL ver.2 | |
| nana | 現代 C++ 風格的跨平台 GUI 程式設計。 (原始碼), (文件) | BSL-1.0 | cmake, vcpkg |
| nanogui | 適用於 OpenGL 3.x 或更高版本的極簡跨平台視窗工具函式庫 (文件) | ||
| OWLNext | OWL 的現代化更新,用於在 Windows 上以標準 C++ 編寫 GUI 應用程式 | ||
| Slint | 宣告式 GUI 工具箱,用於為桌面、嵌入式與微控制器建構原生使用者介面。 (原始碼), (文件) | GPL 3, 免版稅, 或商業授權 | cmake |
| tiny file dialogs | 一套 C/C++ 跨平台檔案對話框(無需初始化、無主迴圈、6 個模態函式呼叫) | 僅標頭檔 (header-only) | |
| U++ | 具備整合式 IDE 的跨平台(Windows, GNU/Linux, macOS)快速應用程式開發框架。C++17 相容。 (文件) (原始碼) | BSD-3-Clause | make |
| WxWidgets | 免費且開源的跨平台(Windows, GNU/Linux, macOS)C++ 框架,用於使用原生控制項編寫進階 GUI 應用程式。 (文件) | Modified LGPL | cmake, make |
| xtd | 現代 C++17/20 框架,用於在 Windows, macOS, Linux, iOS 和 Android 上建立主控台、GUI 和單元測試應用程式。 (原始碼) (文件) | MIT | cmake |
- CopperSpice
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| CopperSpice | 用於開發跨平台軟體應用程式的 C++ 函式庫集合。它使用現代慣用語 C++,並與 STL 無縫整合。CopperSpice 衍生自 Qt 框架。 (文件) (原始碼) | LGPL-2.1 | cmake |
| CsSignal | 獨立的 C++ 執行緒感知訊號/插槽函式庫 | LGPL-2.1 | cmake |
| CsString | 獨立的 C++ Unicode 感知字串函式庫 | LGPL-2.1 | cmake |
| libGuarded | 獨立的 C++ 多執行緒函式庫,用於管理對共享資料的存取 | LGPL-2.1 | cmake |
- GTK+
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| evince | |||
| flowcanvas | |||
| glibmm | |||
| goocanvasmm | |||
| gtkmm | 用於 GTK+ GUI 函式庫的跨平台 C++ 介面。 | LGPL | |
| libglademm | |||
| libgnomecanvasmm | |||
| webkitgtk |
- Qt
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| libdbusmenu-qt | 小型函式庫,設計用於簡化透過 DBus 共享與顯示選單結構。它適用於 QT 與 GTK+,並使選單建構變得簡單。 | ||
| Qt | (文件) (原始碼) | ||
| QuickQanava | C++14 網路/圖形視覺化函式庫 / Qt 節點編輯器。 | BSD 2.0 | cmake |
| qwt5 | 用於技術應用程式的 Qt 元件 (Widgets) | ||
| qwtplot3d |
- U++
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| U++ | 專注於程式設計師生產力的 C++ 跨平台快速應用程式開發框架。它包括一組函式庫(GUI, SQL 等)以及整合開發環境。 (原始碼/二進位) | BSD | |
| upp-components | U++ 的第三方套件集合,例如 TerminalCtrl, MessageCtrl 等。 |
BSD-3-Clause |
[編輯] 圖形
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| bgfx | 強大的跨平台(Windows, Mac, Linux, iOS, Android, Web)2D/3D 圖形渲染著色器函式庫,具備多種渲染後端:DX, OpenGL, Metal, WebGL, Vulkan 等。 (文件) | BSD-2 | make |
| cairomm | cairo 圖形函式庫的 C++ 包裝器,這是一個支援多種輸出裝置的 2D 函式庫:X Window, Quartz, Win32, 影像緩衝區, PostScript, PDF, SVG, OpenGL(實驗性)。 | LGPL | |
| dfpsr | 具有桌面 GUI 工具箱的 2D、3D 與等距軟體渲染器,相依性極簡,專為長期維護而設計,可在沒有任何 3D 加速驅動程式的情況下執行 | zlib | |
| gegl | Generic Graphics Library (GEGL) 是一個基於資料流的影像處理框架,提供浮點處理與非破壞性影像處理能力。 (原始碼) | LGPL | |
| io2d | ISO C++ 2D 圖形 API 提案 P0267 的參考實作 | BSL-1.0 | cmake |
| nanovg | 基於 OpenGL 之上的 C 語言 2D 反鋸齒向量繪圖函式庫,適用於 UI 與視覺化,並已移植至 DX11/Metal/bgfx。 | zlib | |
| nux | OpenGL 工具函式庫 | LGPL v3 | |
| pangomm | Pango 字型排版函式庫的官方 C++ 介面。 (原始碼) | LGPL v2.1 | make |
| Skia | 以 C++ 編寫的開源 2D 圖形函式庫。Skia Graphics Engine 被用於 Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter 等。Skia 擁有多種後端:軟體光柵化、(PDF) 輸出、OpenGL, SVG 等。 | New BSD | |
| TXLib | TX Library 是一個以 C++ 編寫的微型 Win32 2D 圖形函式庫。 | ||
| ULIS | 跨平台 C++14 函式庫,用於通用數位影像處理、2D 軟體光柵器、無限影像格式 (u8, u16, u32, float, double)、自訂位元順序記憶體佈局、所有 Photoshop 像素混合模式 + 11 種額外模式、色彩模型 (RGB, HSL, HSV, CMYK, ...)、色彩管理管線、色彩空間支援 (icm 設定檔與裝置無關)、多執行緒最佳化演算法、SIMD 延伸集 (SSE2) 最佳化演算法、影像池與快取最佳化、動畫影像序列記憶體儲存。 |
自訂(僅限非商業用途免費) | cmake |
[編輯] 圖形 (3D)
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| assimp | 3D 模型載入 | BSD-3 | cmake, vcpkg |
| bgfx | 跨平台、與圖形 API 無關的「自備引擎/框架 (Bring Your Own Engine/Framework)」風格渲染函式庫。 | BSD-2 | make, vcpkg |
| Diligent Engine | 現代跨平台底層 3D 圖形函式庫。 | Apache-2.0 | cmake |
| Epoxy | GLEW 的現代繼任者。抽象化某些 GL 環境之間的差異,使其有時比 GLEW 更易於使用。自 2015 年起被 GTK+ 專案採用。 | MIT | meson, vcpkg |
| G3D | G3D Innovation Engine 是一個功能齊全、開源、跨平台(Windows, Linux, Mac OS)的 C/C++ 3D 遊戲引擎。G3D 用於商業遊戲、研究論文、模擬器與大學課程。它支援即時與離線硬體渲染、光線追蹤、模型載入、線性代數以及 GPU 上的 GP 計算。支援 3DS, OBJ, MP4, PNG, JPG, MD3 等多種格式,包含原生的 OpenGL 可換皮 GUI。 (原始碼) (文件) | BSD-2 | |
| GLAD | 用於載入 OpenGL 函式的可自訂、輕量級函式庫 | ||
| GLEW | OpenGL 函式載入器 (原始碼) | EXTGL/BSD/MIT | make, vcpkg |
| GLFW | OpenGL 視窗管理器 (原始碼) (文件) | zlib/libpng | cmake, vcpkg |
| GLM | OpenGL Mathematics (GLM) 是一個基於 GLSL 規範的圖形軟體數學函式庫。 | The Happy Bunny / MIT |
僅標頭檔;cmake, vcpkg |
| Godot | 以 C++17 編寫的完整功能多平台 2D 與 3D 遊戲引擎,具備自身編寫的 GUI 編輯器以及 Python 風格的腳本語言。 | MIT | scons |
| hlsl++ | 使用 HLSL 語法進行渲染的 C++ 數學函式庫。支援 SSE 與 NEON | MIT | 僅標頭檔 (header-only) |
| Horde3D | 小型開源 3D 渲染引擎。其致力於建立一個渲染引擎,在保持輕量與簡潔的同時,提供次世代遊戲所期望的驚人視覺效果。 | EPL | |
| Irrlicht | Irrlicht 引擎是一個以 C++ 編寫的開源即時 3D 引擎。它具備跨平台特性,使用 D3D, OpenGL 與其自身的軟體渲染器。 | zlib/libpng | make, vcpkg |
| klein | 適用於圖形與動畫的 C++11/14/17 SSE 優化投射幾何代數 (Projective Geometric Algebra) 函式庫 | MIT | cmake, vcpkg |
| Magnum | 適用於遊戲與資料視覺化的輕量級模組化 C++11/C++14 圖形中介軟體 (原始碼) | 自訂 | cmake |
| O3DE | Open-source 3D Engine(前身為 Amazon 的 Lumberyard)是一個跨平台 C++ 3D 引擎,用於建構 AAA 遊戲、電影級 3D 世界與高擬真模擬。包含物理模擬、腳本引擎、網路與 更多功能。 (文件) | Apache 2.0 | cmake |
| Ogre3D | OGRE 是一個物件導向圖形渲染引擎,是一個多用途視覺化函式庫,適用於科學視覺化、遊戲、模擬、虛擬實境與其他圖形專案。它跨平台且非常穩健,擁有良好的文件。 | MIT | cmake, vcpkg |
| Open CASCADE | 用於 3D CAD/CAM/CAE 應用程式的 SDK (原始碼) | LGPL-2.1 | cmake |
| OpenGL | 用於開發 3D 應用程式的 3D 語言、圖形與 SDK。 | Khronos (MIT) | |
| OpenSceneGraph | OpenSceneGraph 是一個開源高效能 3D 圖形工具箱,被視覺模擬、遊戲、虛擬實境、科學視覺化與建模等領域的應用程式開發者所使用。 (原始碼) (文件) | 自訂 (Custom), GNU LGPL |
cmake, vcpkg |
| Visionaray | C++ 光線追蹤樣板函式庫。 | MIT | cmake |
| VTK | Visualization Toolkit (VTK) 是用於處理與顯示科學資料的開源軟體。它配備了最先進的 3D 渲染工具、一系列 3D 互動小工具以及廣泛的 2D 繪圖能力。 | BSD-3 | cmake, vcpkg |
| Vulkan | 底層 API,移除了先前一代圖形 API 中的許多抽象。這非常有利於提供極致效能,但副作用是增加了開發者的複雜度。幸運的是,現有許多優秀的教學課程可幫助克服此障礙並快速上手。 | Khronos (MIT) | make, vcpkg |
[編輯] 影像
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Adobe/boost GIL | 高層級通用函式庫,專注於運算 2D 影像的演算法。I/O 選項非常有限。 | BSL-1.0 | |
| agge | Anti-Grain Evolution。用於 C++ 的速度與品質 2D 圖形引擎 | MIT | cmake |
| FreeImage | 開源函式庫專案,為希望支援 PNG, BMP, JPEG, TIFF 等流行圖形影像格式的開發者提供服務 | GPLv2, GPLv3, FIPL | |
| FreeImageRe | 開源函式庫 FreeImage v3.18 的分支,用於支援影像轉碼器更新並調整以利舒適使用。保留了所有原始格式與外掛程式。 | GPLv2, GPLv3, FIPL | cmake |
| GraphicsMagick | 讀取、寫入與處理超過 88 種主要格式的影像。於 2002 年從 ImageMagick 分支出來 | 版權 (Copyright) | Mercurial |
| SAIL | 讀取與寫入靜態、動畫、多頁影像及其詮釋資料與 ICC 設定檔。轉換能力。以簡潔與速度為目標。 | MIT | cmake |
| stb | 一組遊戲開發導向的 C/C++ 函式庫,特色包含影像載入器/寫入器/調整器、字型文字光柵器、型別安全容器、ogg vorbis 解碼器、即時 DXT 壓縮器、Perlin 雜訊產生器、pet DSL 的詞法分析器、快速 sprintf 等。 | MIT, 自訂 (Custom) | 僅標頭檔 (header-only) |
- 格式
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| djvulibre | |||
| imagemagick | |||
| Kaitai Struct C++ runtime | |||
| libraw | |||
| openexr | |||
| poppler | |||
| qimageblitz | |||
| SVG++ |
- 繪圖
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Matplot++ | 基於 gnuplot 的 C++ 資料視覺化圖形函式庫。Matplot++ 可利用以下函式庫:OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3。 (文件) | MIT | cmake |
| plotutils | GNU plotutils 套件包含 libplot,這是一個用於匯出多種格式(向量與點陣)之 2D 向量圖形的 C/C++ 函式庫。libplot 可以製作 2D 向量圖形動畫,並使用類 Postscript API 進行檔案匯出與圖形動畫製作。 | GPL | |
| sciplot | 由 gnuplot 驅動的現代 C++ 科學繪圖函式庫,支援匯出至 PDF, SVG, PNG, EPS 等。 | MIT | 僅標頭檔;cmake, vcpkg |
[編輯] 影像處理
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| dlib | |||
| Halide | 用於影像與張量高效能處理的 C++ 嵌入式 DSL。 | MIT | cmake, vcpkg |
| ITK - Insight Toolkit | ITK 是一個開源、跨平台函式庫,為開發者提供用於影像分析的廣泛軟體工具套件。透過極限程式設計 (extreme programming) 方法開發,ITK 建構於一個空間導向的成熟架構之上,用於二維、三維或更高維度科學影像的處理、分割與配準。 | Apache 2.0 | cmake |
| opencv | |||
| OTB |
[編輯] 國際化 (Internationalization)
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| gettext | GNU 國際化函式庫。 | GPL | make |
| ICU | International Components for Unicode 是一套成熟、廣泛使用的 C/C++ 函式庫,為軟體應用程式提供 Unicode 與全球化支援。 (原始碼) | icu4c/LICENSE | make |
| spirit-po | 小型函式庫,用於剖析 po 檔案並提供類似 GNU libintl 的介面。基於 boost::spirit。 | BSL-1.0 | 僅標頭檔 (header-only) |
| uni-algo | 適用於 C/C++ 的 Unicode 演算法實作 | MIT/Unlicense | cmake, conan, vcpkg |
[編輯] 日誌記錄 (Logging)
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Backward | 列印精美的 Python 風格堆疊追蹤 (stack traces),包含顏色與程式碼片段,特別適用於當機情況。 | MIT | 僅標頭檔;cmake, conan |
| Boost.Log | 易於使用、可擴充且高效能的跨平台日誌函式庫。 | BSL-1.0 | |
| clutchlog | 單一標頭檔的日誌記錄系統,旨在進行多功能除錯 (DEBUGGING),而非用於服務事件儲存。 | BSD | cmake |
| glog | 基於 C++ 風格串流的 C++98 Google 日誌記錄函式庫 | 授權 | bazel, cmake, vcpkg |
| Log4cplus | 跨平台、C++17 日誌記錄 API(仿照 Java log4j API),提供對日誌管理與設定的執行緒安全、靈活且細緻的控制。 | BSD (雙條款) 或 Apache 2.0 | Autotools, cmake, Visual Studio |
| Log4cpp | 用於靈活記錄日誌至檔案、syslog、IDSA 等目的地的 C++ 類別函式庫。 | LGPL | |
| log4cxx | Apache log4cxx 是一個模仿 Apache log4j 的 C++ 日誌記錄框架。 (原始碼) | Apache | cmake |
| lwlog | 極其快速的同步與非同步 C++17 日誌記錄函式庫 | MIT | cmake |
| Pantheios | 診斷日誌記錄 API 函式庫,兼具型別安全、效率、通用性與可擴充性 | BSD 風格 | |
| plog | 便攜且簡單的 C++ 日誌記錄器,少於 1000 行程式碼 | MPL-2.0 | |
| Quill | 跨平台、C++14 非同步低延遲日誌記錄函式庫 | MIT | cmake |
| spdlog | 超快速的 C++ 日誌記錄函式庫 | MIT | 僅標頭檔;cmake, conan |
[編輯] 錯誤處理
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.LEAF | 用於 C++11 的輕量級錯誤處理函式庫:單一標頭檔格式、無相依性、無動態記憶體分配、可在有或無例外處理 (exception handling) 的情況下使用,支援多執行緒。 (原始碼) | BSL-1.0 | 僅標頭檔, cmake |
[編輯] 數學
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| alglib | ALGLIB 是一個跨平台(Windows/POSIX/Linux)的數值分析與資料處理函式庫。ALGLIB 功能包括:資料分析、最佳化與非線性求解器、插值、線性代數與線性求解器、FFT 及其他許多功能。 | 免費(GPL/個人/學術)與商業授權 | |
| ArrayFire | 用於平行運算的跨平台(Windows/OSX/Linux)通用 HPC (CPU/GPU/OpenCL/CUDA/GPGPU) 函式庫。ArrayFire 領域包含:向量演算法、影像處理、電腦視覺、訊號處理、線性代數、統計等。 (原始碼) | 自訂 | |
| Boost.Math | 包含數學領域的多項貢獻:浮點數工具、數學常數、統計分佈與函數、統計學、向量泛函 - 範數、特殊函數、求根與最小化演算法、多項式與有理函數、插值、求積與微分、濾波器、複數函數、四元數、八元數、整數工具(最大公因數與最小公倍數)、級數、有理數與連分數。 | BSL-1.0 | |
| Boost.Random | 提供各種產生器與分佈,用以產生具有實用屬性(例如均勻分佈)的隨機數。 | BSL-1.0 | |
| Boost.SafeNumerics | C++14,保證正確的整數算術,可直接替代內建整數型別。 | BSL-1.0 | 僅標頭檔 (header-only) |
| cpp-measures | 用於處理物理量測的 C++11 函式庫 | MPL-2.0 | 僅標頭檔 (header-only) |
| G+Smo | 用於等幾何分析(Isogeometric Analysis)的跨平台函式庫 (文件) | MPL-2.0 | cmake |
| GNU MP bignum C++ 介面 | 提供多載函數與運算子的 C++ 便利類別介面。GMP 是一個免費的 C 語言函式庫,用於任意精度的算術運算,適用於有號整數、有理數與浮點數。 | GNU LGPL v3 與 GNU GPL v2 | |
| libmpdec++ | 一個用於正確捨入、任意精度十進制浮點算術的跨平台 C 函式庫(包含 C++ 包裝器)。 | BSD-2-Clause | make, nmake |
| NTL | 用於數論計算的函式庫。NTL 是一個高效能、可移植的 C++ 函式庫,提供用於處理有號、任意長度整數,以及處理整數域與有限域上的向量、矩陣與多項式的資料結構與演算法。 | LGPLv2.1+ | |
| PCGrand | PCG 是一系列簡單、快速、空間效率高且統計品質優良的隨機數生成演算法。與許多通用隨機數生成器(RNG)不同,它們也難以預測。 | Apache | |
| stats++ | 先進且全面的統計軟體:資料收集與預處理、統計、機器學習與最佳化,提供開放的 C++ 原始碼。 | ||
| StatsLib | 統計分佈函數的模板函式庫。 | Apache-2.0 | 僅標頭檔 (header-only) |
- 自動機理論
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| yasmine | C++11 UML 狀態機框架 (文件) (原始碼) | 授權 |
- 數值類別庫
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| BigNumber | 一個用於建立與計算任意長度整數的 C++ 類別 | Apache 2.0 | cmake |
| Boost.Multiprecision | 多精度函式庫(Multiprecision Library)在 C++ 中提供整數、有理數、浮點數與複數型別,這些型別具有比 C++ 普通基礎(內建)型別更廣的範圍與精度。 | BSL-1.0 | |
| cln | CLN 是一個用於各類數字進行高效率、任意精度計算的函式庫。 | GPL | |
| CNL | Compositional Numeric Library(組合數值函式庫) - 定點精度數值型別 | BSL-1.0 | cmake, conan |
| fpm | C++11 fixed-point math(定點數學)函式庫,在整數上提供標準函式庫的浮點功能。若目標平台缺乏浮點運算單元(FPU)或需要確定性計算,此庫非常實用。 | MIT | 僅標頭檔;cmake |
| Universal Numbers | 一個 C++17/20 模板函式庫,提供原生算術型別的插入式替換(整數/十進制/定點/浮點/Posit/對數/區間) | MIT | cmake, vcpkg, conan |
- 計算幾何
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.Geometry | Boost.Geometry(又稱 Generic Geometry Library, GGL)定義了用於解決幾何問題的概念、基元與演算法。Boost.Geometry 包含一個基於概念、元函數與標籤派發,且與維度無關、與座標系統無關且可擴展的核心。支援的演算法包括:面積、長度、周長、質心、凸包、交集(裁切)、內含(點在多邊形內)、距離、外包框(Bounding Box)、簡化、變換等。該函式庫支援高精度算術數值。 | BSL-1.0 | |
| CGAL | 計算幾何演算法函式庫 | GPL-3.0 或商業授權 | cmake |
| PCL | 點雲(Point Cloud)函式庫 | ||
| pmp-library | 多邊形網格處理(Polygon Mesh Processing)函式庫 | ||
| Wykobi | 計算幾何函式庫 |
- 圖論
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.Graph | BSL-1.0 | ||
| CXXGraph | 用於圖形表示、操作、分割與演算法的 C++17 函式庫 | AGPL-3.0 | 僅標頭檔;cmake |
| GTpo | C++14 有向圖建模函式庫,屬於 QuickQanava 專案的一部分 | BSD | qmake, cmake |
| LEMON | Library for Efficient Modeling and Optimization in Networks(高效網路建模與最佳化函式庫),實現了專注於組合最佳化、圖論與網路的常用資料結構與演算法。 (文件) | 授權 | |
| NGraph | C++ 中的簡單(網路)圖論函式庫 | ||
| OGDF | Open Graph algorithms and Data structures Framework(開放圖論演算法與資料結構框架) - 這是一個用於圖論演算法的 C++ 函式庫,特別是用於自動圖形繪製。 | GPL v2 或 v3 |
- 線性代數
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Armadillo | 一個用於線性代數與科學計算的 C++ 模板函式庫,提供 OpenBLAS、Intel MKL、LAPACK、ATLAS、ARPACK、SuperLU 與 FFTW 的包裝器。適用於機器學習、模式識別、數位訊號處理(DSP)、生物資訊、統計學、金融等領域。 | Apache 2.0 | |
| Blasw | 一個 C++11 BLAS 與部分 LAPACK 的包裝器 | BSD-3-Clause | 僅標頭檔;cmake |
| Blaze | |||
| Blitz++ | 一個 C++ 模板類別函式庫,提供高效能密集陣列與向量、隨機數生成器以及小型向量。 | GPL-3.0, LGPL-3.0, 自訂授權 | cmake |
| Boost.uBLAS | 一個 C++ 模板類別函式庫,為密集、打包與稀疏矩陣提供 BLAS level 1, 2, 3 功能。使用表達式模板(Expression Templates)。 | BSL-1.0 | |
| C++ Matrix | 高效能且精確(例如處理邊界情況)的矩陣數學函式庫,具有表達式模板算術運算子 | BSD-3-Clause | cmake, make |
| DecompLib | 一個 C++11 函式庫,用於將向量分解為一組正定加權基向量。 | MIT | 僅標頭檔 (header-only) |
| Dlib - 線性代數工具 | |||
| Eigen | 一個用於線性代數的 C++ 模板函式庫:矩陣、向量、數值解算器與相關演算法。 | MPL2 | cmake, conan |
| ETL | |||
| IT++ | |||
| Matrix | 在 Linux 與 Windows 上均可使用的易用型 C++ 科學計算函式庫。 | MIT | cmake |
| NumCpp | 一個實現 Python NumPy 功能的 C++ 模板函式庫 | MIT | 僅標頭檔(header-only);cmake, vcpkg, conan |
| PETSc | 一套用於科學應用平行求解的資料結構與常式,這些應用通常由偏微分方程建模。它支援 MPI,透過 CUDA 或 OpenCL 支援 GPU,以及混合 MPI-GPU 模型。 | ||
| Spectra | Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK(重新設計的 ARPACK 稀疏特徵值計算工具組),是一個用於大規模特徵值問題的開源 C++ 函式庫,構建於 Eigen 線性代數函式庫(同樣為開源且僅含標頭檔)之上。 (原始碼) | MPL-2.0 | 僅標頭檔;cmake, vcpkg |
| Tense | 一個快速的 C++17 表達式模板矩陣與張量函式庫 | BSD-3-Clause | 僅標頭檔;cmake |
| xtensor | 一個用於數值分析與多維陣列表達式的 C++ 函式庫。 | BSD |
- 機器學習
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Dlib | 一個機器學習工具庫 | ||
| FANN | 一個 Fast Artificial Neural Network(快速人工神經網路)函式庫 | ||
| gaenari | 基於 C++17 的增量式決策樹 | Apache-2.0 | cmake |
| liblinear | |||
| libtorch | 熱門 PyTorch Python 函式庫的 C++ 前端(後端以 C++ 編寫) | BSD 風格 | cmake |
| MLPACK | 一個機器學習套件 | ||
| Shogun | 一個大規模機器學習工具箱 | ||
| stats++ | |||
| tensorflow | 一個開源的機器學習框架;提供穩定的 C++ API,且主要以 C++ 編寫 | Apache-2.0 | bazel |
- 數值計算
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| LibBF | 由 Bellard 開發的任意精度數值計算函式庫,附帶一個可計算 π 至數十億位的範例程式 | MIT |
- 最佳化
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| ceres-solver | 一個用於建模與求解大型、複雜最佳化問題的開源 C++ 函式庫。這是一個功能豐富、成熟且高效能的函式庫,自 2010 年起便在 Google 的生產環境中使用。 | Apache | cmake, conan |
| OptimLib | 一個用於非線性函數數值最佳化方法的 C++11 函式庫。 |
- 符號表達式處理
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| CasADi | 一個用於非線性最佳化與自動微分的符號框架。支援符號表達式的 C++ 程式碼生成,以及已編譯生成程式碼的動態連接。 | LGPLv3.0 | cmake |
| ExprTk | C++ 數學表達式工具組函式庫(ExprTk)是一個易於使用、易於整合且極為高效的執行時期數學表達式解析與求值引擎。ExprTk 支援多種形式的函數式、邏輯與向量處理語義,且極易擴展。 | MIT | 僅標頭檔 (header-only) |
| GiNaC | 一個用於建立整合系統的函式庫,該系統將符號操作與電腦科學中更成熟的領域(如計算密集型數值應用、圖形介面等)整合在同一個框架下。 | GPLv3 | |
| mathiu.cpp | 一個 C++17 的簡單電腦代數系統 | Apache-2.0 | cmake |
| SEMT | 一個編譯時期的符號微分函式庫 | 授權 | make |
| SymbolicC++ | 一個通用電腦代數系統 | GPLv2 | autoconf |
| SymCC | 一個編譯器包裝器,可在編譯期間將符號執行嵌入程式中,並附帶一個執行時支援函式庫。本質上,編譯器會插入程式碼,計算程式中每個數值的符號表達式。實際計算會在執行時透過呼叫支援函式庫來完成。 | GPLv3 | cmake |
| SymEngine | 一個獨立的快速 C++ 符號操作函式庫。 | MIT | cmake |
| ViennaMath | 一個符號數學函式庫,支援在執行時期與編譯時期進行數學表達式的方便實例化、操作與求值。 | MIT | cmake |
[編輯] 元編程
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.CallableTraits | 一個用於編譯時期檢查與操作所有「可呼叫(callable)」型別的 C++11/17 函式庫。是 Boost.FunctionTypes 的後繼者。 | BSL-1.0 | 僅標頭檔 (header-only) |
| Boost.Hana | 一個同時支援型別與數值的新型元編程函式庫 | BSL-1.0 | |
| Boost.Metaparse | 一個編譯時期解析器函式庫,可從編譯時期字串中產生型別、數值與元函數 | BSL-1.0 | |
| Boost.Mp11 | 一個用於編譯時期操作包含型別的資料結構的 C++11 元編程函式庫。 | BSL-1.0 | 僅標頭檔 (header-only) |
| Boost.MPL | 原始的元編程函式庫,針對 C++03,速度較慢 | BSL-1.0 | |
| Boost.PFR | 一個用於基本反射(無宏)的 C++14 函式庫:透過索引存取使用者定義型別的成員、IO 串流。 | BSL-1.0 | 僅標頭檔 (header-only) |
| Boost.Proto | 一個用於建立支援表達式模板的 EDSL(嵌入式領域特定語言)的函式庫 | BSL-1.0 | |
| Brigand | 使用渴望型(eager)元函數,針對最佳效能進行了優化 | ||
| CoMeta | 一個輕量級的 C++14 元編程函式庫 | 僅標頭檔 (header-only) | |
| Meta | 使用渴望型(eager)元函數,在效能方面介於 metal 與 brigand 之間 | ||
| Metal | 使用渴望型(eager)元函數,100% SFINAE 友好 | ||
| refl-cpp | 一個現代的 C++ 編譯時期反射函式庫,支援多載、模板、屬性與代理 | ||
| Refureku | 一個 C++17 執行時期反射與程式碼生成函式庫 | MIT | cmake |
| visit_struct | 一個微型反射函式庫,為 C++11/14 提供結構訪問器。獨立運作,程式碼量約 200-400 行(取決於計算方式)。 |
[編輯] PDF
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| HARU | 一個免費、跨平台、開源的 PDF 檔案生成函式庫。 (文件) (原始碼) | Zlib | cmake |
| JagPDF | 一個免費、開源的 PDF 生成函式庫 (文件) | MIT | |
| PoDoFo | 一個用於處理 PDF 的免費、可移植 C++17 函式庫 | LGPL-2.0 | cmake, conan, vcpkg |
| PDF-Writer | 一個用於建立、修改與解析 PDF 檔案的高效能 C++ 函式庫 | Apache-2.0 | cmake, conan, vcpkg |
[編輯] 物理與模擬
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Bullet | 用於遊戲、視覺特效、機器人學與強化學習的物理模擬引擎 | ||
| HELICS | 一個用於同步時間並在不同類型的模擬器之間交換資料的共同模擬(co-simulation)框架 | BSD 3-Clause "New" 或 "Revised" | cmake |
| ProjectCHRONO | 一個開源的多物理場模擬引擎 | ||
| ReactPhysics3D | 一個用於 3D 模擬與遊戲的 C++ 物理引擎函式庫 |
[編輯] 機器人學
- 感知
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| GTSAM | 感測器融合、SLAM、SFM、VO、電腦視覺 (原始碼) | BSD | cmake |
| opencv | 電腦視覺與感知、校準、特徵匹配 (原始碼) (文件) | BSD, Apache 2 | cmake |
[編輯] 序列化
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Boost.Serialization | BSL-1.0 | ||
| C++ XML 物件 | |||
| cereal | 一個 C++11 序列化函式庫 | BSD | |
| cista | 一個簡單、高效能、零拷貝(zero-copy)的 C++ 序列化與反射函式庫。 (原始碼) | MIT | cmake |
| cppcodec | 一個 C++11 函式庫,用於編碼/解碼 base64、base32 與 hex,具有一致、靈活的 API | MIT | 僅標頭檔 (header-only) |
| GPDS | 一個通用資料序列化程式庫,用於物件與 XML 之間的序列化。底層使用 TinyXML。 | ||
| gSOAP | 一個精確的 XML 序列化 | ||
| iguana | 一個現代、通用且易於使用的序列化引擎,以 C++17 開發,基於編譯時期反射。支援的格式:JSON、XML、使用者定義格式。 | Apache-2.0 | cmake |
| jios | JSON 序列化 | MIT | cmake |
| protobuf | Protocol Buffers (又稱 protobuf) 是 Google 的一種語言無關、平台無關、可擴展的結構化資料序列化機制,包含 .proto 檔案編譯器。 (文件) | 自訂 | bazel, cmake |
| rpnx-serial | 一個可以序列化/反序列化 std::map、std::vector 等型別的函式庫。 | ||
| Serio | 一個快速輕量級的 C++ 序列化函式庫 | BSD-3-Clause | 僅標頭檔;cmake |
| ThorsSerializer | 一個 C++ 的 JSON 序列化函式庫 | MIT | make |
| yaml-cpp | |||
| YAS | Yet Another Serialization(又一個序列化函式庫)是一個 C++11 函式庫,無任何第三方函式庫依賴。存檔格式可以是二進制、文字、JSON。 | Boost | 僅標頭檔 (header-only) |
- 二進位序列化
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| binn | 一個二進制序列化函式庫,設計為緊湊、快速且易於使用,其本身就是同名格式的一種實現。 | ||
| blobify | 一個僅從結構定義即可推斷序列化佈局的 C++17 函式庫。 | Boost | 僅標頭檔;cmake |
| bson-cxx | 一個 BSON 格式的 C++11 實現。 | scons | |
| fast_ber | 一個使用 BER/DER 編碼規則的高效能 C++11 序列化函式庫。編碼佈局由 ASN.1 模式定義。 | ||
| UBjsonCpp | 一個基於 C++14 的高效能 UBJson 讀寫函式庫 |
[編輯] 排序
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Cpp-sort | 一個在簡單套件中收集各種排序演算法的函式庫。 | MIT | |
| Indiesort | 一個函數模板,允許將 std::sort(以及其他隨機存取排序函數)用於非隨機存取容器。它還提高了在隨機存取容器與陣列中排序大型物件的效能。 | zlib | |
| Timsort | 一個穩定的排序函數模板,對於反向或半排序的資料,其效能優於包括 std::sort 在內的基於快速排序(quicksort)的演算法。 | MIT |
[編輯] 系統
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Infoware | 一個用於獲取系統與硬體資訊的 C++ 函式庫,無需呼叫命令列。 | Creative Commons v1.0 | cmake |
[編輯] 終端
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| cli | 一個用於現代 C++ 互動式命令列介面的跨平台函式庫。 | BSL-1.0 | 僅標頭檔;cmake, make, nmake, vcpkg |
| cwidget | 一個高階 C++ 終端介面函式庫,仿照 GTK+ 與 Qt 建模,但使用 curses 作為其顯示層。 | GPL v2.0 | make |
| replxx | 一個支援 UTF-8、語法高亮與提示的 readline 與 libedit 替代品。 |
[編輯] 測試
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| bandit | 一個對人類友好的 C++11 單元測試框架。 (原始碼) | MIT | cmake |
| Boost.Test | 一個 C++03/11/14/17 單元測試函式庫,可在多種平台與編譯器上使用。 (原始碼) | BSL-1.0 | cmake, b2 |
| Catch2 | 一個現代、原生 C++ 的單元測試、TDD 與 BDD 測試框架 - 使用 C++14、C++17 及更高版本 | Boost | cmake |
| cppunit | 著名的 JUnit 單元測試框架的 C++ 移植版 | LGPL-2.1 | make |
| CUTE | 一個 C++ Unit Testing Easier(讓 C++ 單元測試更輕鬆,無需依賴靜態初始化進行註冊),並整合於 Cevelop 以進行 TDD | MIT | 僅標頭檔 (header-only) |
| doctest | 一個最輕量級、功能豐富的 C++ 單標頭檔單元測試與 TDD 測試框架 | MIT | 僅標頭檔;cmake |
| ELFspy | 使用虛構物件(fakes)與間諜物件(spies)進行隔離測試 - 僅限 Linux | GPL-2.0 | make |
| faker-cxx | 一個用於生成測試資料的現代 C++20 Faker 函式庫。 | MIT | cmake |
| Google Test | Google 測試與模擬(Mocking)框架。 (原始碼) | BSD 3-Clause "New" 或 "Revised" | bazel, cmake |
| lest | 一個原生 C++11 的微型單元測試、TDD 與 BDD 框架(包含 C++98 變體)。 | Boost | 僅標頭檔;cmake |
| liblittletest | 一個可移植的測試框架 | LGPL-2.1 | 僅標頭檔 (header-only) |
| snitch | 一個輕量級的 C++20 測試框架。 | Boost | cmake |
| tunit | 一個支援 Windows、macOS、Linux、iOS 與 Android 的現代 C++17 單元測試函式庫。官方網站 | MIT | cmake |
[編輯] 文字
- 編碼
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| strsuite | 一個用於管理不同編碼字串的 C++20 函式庫 | LGPL3.0 | cmake |
| uchardet | 猜測字串編碼,基本上與 Python 中的 uchardet 函數相同。 |
MOZILLA PUBLIC LICENSE v1.1 | cmake |
| win-iconv | 一個用於 Linux 與 Mac 的字元集編碼轉換函式庫。Windows 上的 iconv 實作基於 Win32 字元集轉換 API。 |
公有領域 (public domain) | cmake |
- 差異/修補 (Diff/Patch)
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| diff_match_patch | 建立並應用字串修補程式(需要 Qt) | Apache 2.0 | qmake |
- 格式
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| coformat | 一個配套的 C++ 函式庫,為 std::format 啟用文字著色與樣式功能。 | 公有領域 (public domain) | 僅標頭檔 (header-only) |
| fmt | 一個開源格式化函式庫,為 C stdio 與 C++ iostreams 提供快速且安全的替代方案。是 C++20 std::format 系列的原型。 | 授權 | cmake, conan |
- 剖析
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| BNFlite | 一個輕量級語法解析器函式庫 | MIT | 僅標頭檔 (header-only) |
| Boost.Spirit | 一組用於解析與輸出生成的 C++17 函式庫,實現為使用表達式模板與模板元編程的 Domain Specific Embedded Languages (DSEL,嵌入式領域特定語言)。Spirit 函式庫使目標語法可以完全以 C++ 編寫。 (原始碼) (文件) | BSL-1.0 | cmake |
| CTRE | 快速的 Compile-Time Regular Expressions(編譯時期正規表達式),支援在編譯時期或執行時期進行匹配/搜尋/捕捉。 | Apache-2.0 | 僅標頭檔, cmake, vcpkg |
| lexy | 一個 C++17 解析組合子(parser combinator)函式庫,允許您透過方便的 C++ DSL 指定語法來撰寫解析器,並具有手寫解析器所具備的所有靈活性與控制力。支援 UTF-8/16/32。 (文件) | BSL-1.0 | cmake |
| PEGTL | Parsing Expression Grammar Template Library(解析表達式語法模板函式庫)是一個零依賴、C++17 僅標頭檔的解析組合子函式庫,用於根據 Parsing Expression Grammar (PEG) 建立解析器。 | Boost | 僅標頭檔 (header-only) |
- 搜尋
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| clucene | CLucene 是一個跨平台、功能齊全、開源的索引與搜尋引擎/API。 (原始碼) (文件) | LGPL v2.1 | cmake |
| Step20 | 用於建構 後綴樹 的 Ukkonen 線上演算法,以及用於建構 後綴陣列 的 Manber 演算法。 | MIT | 僅標頭檔 (header-only) |
| xapian | 一個具有索引功能的開源搜尋引擎 (原始碼) (文件) | GPL v2+ | make |
- 範本引擎
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| inja | 一個 C++17 的模板引擎。 | MIT | 僅標頭檔;cmake, conan, vcpkg 等。 |
| Jinja2C++ | 一個 Jinja2 模板的 C++14/17 實現 | MPL-2.0 | cmake, conan |
[編輯] 版本控制
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| coo-semver | 一個用於語義版本號的 C++ 操作函式庫。 | ||
| LibGit2 | 版本控制系統 Git 的核心函式庫。 |
[編輯] 影片
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| crystalhd | |||
| gstreamermm | |||
| libmatroska | |||
| libVLC | |||
| mjpegtools | |||
| OpenH264 | 一個支援 H.264 編碼與解碼的多平台、多架構開源函式庫 (原始碼) | BSD-2 Clause | meson |
[編輯] 網路
| 函式庫 | 描述 | 授權 | 配置 |
|---|---|---|---|
| Chromium Embedded | |||
| cpp-jwt | |||
| Drogon | 一個基於 C++14/17 的 HTTP Web 應用程式框架,可在 Linux/macOS/Unix/Windows 上執行。 | ||
| ffead-cpp | 一個 C++ framework for Enterprise Application Development(企業應用開發框架),符合 HTTP1/HTTP2/HTTP3 標準,支援多種伺服器後端 | Apache 2.0 | cmake |
| libhttpserver | 一個用於建立高效能 RESTful Web 伺服器的 C++ 函式庫。建立在 libmicrohttpd 之上,為開發人員提供簡單的 API,以 C++ 建立 HTTP 服務。 |
LGPL-v2.1 | autotools |
| libkcddb | |||
| liblastfm | |||
| libmusicbrainz5 | |||
| libnavajo | |||
| Molybden | 一個用於使用 HTML/CSS/JS GUI 建立跨平台 C++ 桌面應用程式的 SDK。 (文件) (原始碼) | 授權 | npm |
| oatpp | 一個功能強大、可移植、輕量級且零依賴的 Web 框架,適用於 IoT 與高效能 Web 服務。 | ||
| QtWebApp | 受 Java Servlets 啟發的 C++ HTTP(s) 伺服器 | ||
| Tufão | 一個建立在 Qt 之上的 C++11 非同步 Web 框架 (文件) | LGPL-2.1, GPL-2.0 | cmake |
| uri-template | 用於 C++ 的 URI 模板展開與反向匹配 | Apache 2.0 | cmake |
| userver | C++ 非同步框架 | Apache 2.0 | cmake |
| Wt | 用於 Web 應用程式的元件與建構模組,內建安全性、PDF 渲染、2D 與 3D 繪圖、ORM、圖表、身份驗證框架。 (文件) (原始碼) | GNU GPL 或商業授權 |
[編輯] 參見
| C 文件 關於 非 ANSI/ISO 函式庫
|
[編輯] 外部連結
| 1. | C++ 單元測試框架列表 — 維基百科 |
| 2. | 精選的(超棒的)僅標頭檔 C++ 函式庫列表 — GitHub |
| 3. | 精選的(超棒的)C++ 與 C 函式庫列表 — GitHub |
| 4. | Boost C++ 函式庫 — Boost.org |
| 5. | 龐大的 C++ 開源遊戲與框架列表 — GitHub.io |