Awesome C++
如果您觉得这个项目对您有帮助,就请点右上角的Star按钮为它加星星✨✨ 其他TIOBE Top 20编程语言的中文翻译请看awesome-code-resources。 本项目的原始仓库地址为这里。
Awesome C++

精选的C (或C) 框架,库,资源和闪亮的东西。灵感来自令人敬畏的-... 东西。
- Awesome C++
- Software
- Resources
- Other Awesome Lists
- Jobs
- Sponsors
- Contributing - 如果您在此处看到不再维护或不适合的项目或链接,请提交拉取请求以改进此文档。谢谢!
标准库
C标准库-包括STL容器、STL算法、STL函数等。
- C++ Standard Library-类和函数的集合,它们以核心语言和C ISO标准本身的一部分编写。
- Standard Template Library-标准模板库 (STL)。
- C POSIX library-用于POSIX系统的C标准库的规范。
- ISO C++ Standards Committee-ISO/IEC JTC1/SC22/WG21-C标准委员会。website
- The GNU C Library-本手册的目的是告诉您如何使用GNU C库的设施。
框架
C通用框架和库。
- abseil-cpp-Abseil C通用库。[Apache2]
- Apache C++ Standard Library-STDCXX,算法、容器、迭代器和其他基本组件的集合。[退休] [Apache2]
- APR-Apache便携式运行时。另一个跨平台实用程序函数库。[Apache2]
- ASL-Adobe源代码库提供经过同行评审和可移植的C源代码库。[麻省理工学院]
- Boost: zap: -泛型C库的大型集合。[升压]website
- BDE-来自彭博实验室的BDE开发环境。[Apache2]
- C++ Workflow: zap:-C并行计算和异步网络引擎。[Apache2]
- CGraph-一个基于C的跨平台DAG框架,没有任何第三方。[麻省理工学院]
- Cinder-社区开发的,免费和开源的库,用于专业质量的创意编码。[BSD]
- Coost-C 11中的一个微小的boost库。[麻省理工学院]
- Cxxomfort-一个小型的,仅标题的库,可以从最近的C标准到C 03及更高版本的各种设施。[麻省理工学院]
- Dlib: zap: -用于在C中制作真实世界机器学习和数据分析应用程序的工具包。[升压]website
- EASTL-电子艺术标准模板库。[BSD]
- ETL-嵌入式模板库。[麻省理工学院]
- ffead-cpp-企业应用程序开发框架。[Apache2]
- Folly-在Facebook开发和使用的开源C库。[Apache2]
- FunctionalPlusC的函数式编程库。编写简洁易读的C代码。[麻省理工学院]
- GLib-GLib为用C编写的库和应用程序提供核心应用程序构建块。[LGPL]
- itlib-类似std的单头C库的集合 [麻省理工学院]
- JUCE-一个包罗万象的C类库,用于开发跨平台软件。[核心模块: ISC,其余: GPL2/GPL3/专有]website
- Kigs framework-一个免费和开源的C模块化多用途跨平台RAD框架。[麻省理工学院]website
- libPhenomlibPhenom是一个事件框架,用于在C中构建高性能和高可扩展性系统。[Apache2]
- LibSourcey-用于实时视频流和高性能网络应用的C 11 evented IO。[LGPL]
- LibU-用C编写的多平台实用程序库。[BSD]
- libxutils-简单而强大的跨平台C库,提供数据结构,算法等等。[麻省理工学院]
- Loki-一个C设计库,包含常见设计模式和习惯用法的灵活实现。[麻省理工学院]
- MiLi-最小的头文件-只有C库。[升压]
- OpenFrameworks-一个跨平台的开源工具包,用于C中的创意编码。[麻省理工学院]website
- Qt: zap: -跨平台应用程序和UI框架。[GPL/LGPL/专有]website
- Reason一个跨平台的框架,旨在带来Java的易用性。Net或Python的开发人员需要C的性能和强度。[GPL2]
- ROOT-一组OO框架,具有以非常有效的方式处理和分析大量数据所需的所有功能。在CERN使用。[LGPL]
- rpp-最小的锈蚀灵感C 20 STL更换。[麻省理工学院]
- SaneCppLibraries-一组适用于macOS、Windows和Linux的C平台抽象库。[麻省理工学院]website
- Seastar-一种先进的开源C框架,适用于现代硬件上的高性能服务器应用程序。[Apache-2.0许可证]seastar.io
- STLport-STL的示例性版本。[免费]
- STXXL-超大数据集的标准模板库。[升压]
- tbox-一个类似glib的多平台c库。[Apache2]website
- Ultimate++一个C跨平台的快速应用开发框架。[BSD]
- Windows Template Library-用于开发Windows应用程序和UI组件的C库。[公共]
- Yomm2-快速,正交,开放的多方法。取代Yomm11[升压]
人工智能
- ANNetGPGPU-基于GPU (CUDA) 的人工神经网络库。[LGPL]
- btsk-游戏行为树入门工具包。[zlib]
- Evolving Objects-基于模板的ansi-c进化计算库,可帮助您快速编写自己的随机优化算法。[LGPL]
- frugally-deep-用于在C中使用Keras模型的仅标题库。[麻省理工学院]
- Genann简单的神经网络库在C。[zlib]
- MXNet-轻量级,便携式,灵活的分布式/移动深度学习,具有动态,突变感知的Dataflow Dep调度程序; 适用于Python,R,Julia,Scala,Go,Javascript等。website
- PyTorch-Python中的张量和动态神经网络,具有强大的GPU加速能力。website
- flashlightFlashlight是一个快速、灵活的机器学习库,完全用c语言编写。[BSD]
- Recast/Detour-(3D) 导航网格生成器和探路者,主要用于游戏。[zlib]
- TensorFlow-使用数据流图进行数值计算的开源软件库。[阿帕奇]
- oneDNN-用于深度学习应用程序的开源跨平台性能库。[阿帕奇]website
- CNTK-Microsoft Cognitive Toolkit (CNTK),一个开源的深度学习工具包。[升压]
- tiny-dnn-C 11中的仅标头,无依赖关系的深度学习框架。[BSD]
- Veles-用于快速深度学习应用开发的分布式平台。[阿帕奇]
- Kaldi-语音识别工具包。[阿帕奇]
异步事件循环
- Asio-用于网络和低级I/O编程的跨平台C库,它使用现代C方法为开发人员提供了一致的异步模型。[升压]website
- Boost.Asio-用于网络和低级I/O编程的跨平台C库。[升压]website
- C++ Actor Framework-C中Actor模型的开源实现。[BSD-3-Clause]website
- Ichor-关注线程安全并提供依赖注入的事件队列。[麻省理工学院]
- libev-一个功能齐全的高性能事件循环,在libevent之后进行了松散建模,但没有其限制和错误。[BSD和GPL]
- libevent-事件通知库。[BSD]
- libhv-跨平台的事件循环库。[BSD]
- libuv-跨平台异步I/O。[BSD]
- promise-cpp-实现Promise/A标准的只有头文件的库。[反996]
- uvw-libuv的C包装。[麻省理工学院]
音频
音频,声音,音乐,数字化语音库
- Amplitude Audio SDK-一个跨平台的音频引擎设计与游戏的需求。[阿帕奇-2.0]website
- Aubio-音频和音乐分析库。[GPL-3.0]website
- AudioFile-一个简单的C库,用于读取和写入音频文件。[麻省理工学院]
- audioFlux一个C库,用于音频和音乐分析,特征提取。[麻省理工学院]
- dr_libs-C和C的单文件音频解码库。[取消许可]
- FMOD-一个易于使用的跨平台音频引擎和游戏音频内容创建工具。[免费为非商业/商业]
- KFR-快速,现代C DSP框架,FFT,FIR/IIR滤波器,采样率转换。[GPL/专有]
- LAME-LAME是一个高质量的MPEG音频层III (MP3) 编码器。[LGPL]
- libsndfile-带有C包装器的C库,用于通过一个标准库接口读取和写入包含采样声音的文件。[LGPL-2.1]website
- libsoundio-用于跨平台实时音频输入和输出的C库。[麻省理工学院]website
- Maximilian-C音频和音乐DSP库。[麻省理工学院]
- OpenAL-开放音频库-跨平台音频API。[BSD/LGPL/专有]
- miniaudio-单文件音频播放和捕获库。[取消许可]website
- ni-media-用于读取和写入音频文件的C库。[麻省理工学院]
- Opus-一个完全开放,免版税,高度通用的音频编解码器。[BSD]
- PortAudio-PortAudio是一个免费的,跨平台,开源,音频I/O库。[麻省理工学院]
- rnnoise-用于音频降噪的递归神经网络。[BSD-3-Clause]
- SELA-简单的无损音频。[麻省理工学院]
- SoLoud-简单,便携式音频引擎的游戏。[zlib]
- Speex-自由语音的免费编解码器。由Opus废弃。[BSD]
- Tonic-在C简单高效的音频合成。[取消许可]
- Vorbis-Ogg Vorbis是一种完全开放,非专有,免专利和版税的通用压缩音频格式。[BSD]
- minimp3-公共领域,只有报头的MP3解码器与洁净室实现。[CC0]
- Verovio-Verovio是一个快速和轻量级的音乐符号雕刻库。[LGPL]website
- Wav2Letter++-Public domain,一个完全用C编写的快速开源语音处理工具包,并使用ArrayFire张量库和flashlight机器学习库以实现最大效率。[BSD]
生物学
生物信息学,基因组学,生物技术
- BioC++-C用于生物信息学的计算库。[BSD]
- Chaste-一个开源C库,用于为生理学和生物学开发的数学模型的计算模拟。[BSD]
- libsequence-用于表示和分析群体遗传学数据的C库。[GPL]
- SeqAn-用于分析序列的算法和数据结构,重点是生物数据。[BSD/3-条款]
- Vcflib-用于解析和操作VCF文件的C库。[麻省理工学院]
- Wham-通过直接将关联测试应用于BAM文件,基因组中的结构变体 (sv)。[麻省理工学院]
BitTorrent
- jech/dht-BitTorrent DHT库在C。[麻省理工学院]
- libtorrent(也即libtorrent-rasterbar) -一个高效的功能完整的C bittorrent实现。[BSD]
- LibTorrent(A.k.a.Libtorrent-rakshasa)-BitTorrent库。[GPL]
- libutp-uTorrent传输协议库。[麻省理工学院]
化学
化学,量子化学,固体化学/物理,地球化学,生物化学
- d-SEAMS-使用Nix的C和Lua中的分子动力学轨迹分析引擎。它是用于分子模拟的延迟结构阐明分析的首字母缩写。[GPL]website
- gromacs-消息传递并行分子动力学实现。[GPL]website
- Reaktoro-C和Python中的计算框架,用于对化学反应系统进行建模。[LGPL]website
- LAMMPS-一个经典的分子动力学代码,重点是材料建模。它是大规模原子/分子大规模并行模拟器的缩写。[GPL]website
- MADNESS-用于科学模拟的多分辨率自适应数值环境。[GPL]website
- MPQC-大规模并行量子化学程序MPQC使用与时间无关的薛定谔方程从第一原理计算原子和分子的性质。[GPL]website
- ORCA-包含现代电子结构方法的从头算量子化学程序包。[学术]website
- Psi-从头计算化学软件包。[GPL]website
CLI
控制台/终端用户界面,命令行界面
- Argh!-一个极简主义,无奈,仅标题参数处理程序。[BSD]
- argparse-现代C的参数解析器。[麻省理工学院]
- args-一个简单的只有头的C参数解析器库。[麻省理工学院]
- Boost.Program_options-通过常规方法 (如命令行和配置文件) 获取程序选项的库。[升压]website
- cli-用于交互式命令行接口 (Cisco风格) 的跨平台标头仅C 14库。[升压]
- CLI11-仅标题单个或多文件C 11库,用于简单和高级CLI解析。[BSD]
- clipp-易于使用,功能强大且富有表现力的命令行参数处理,适用于单个头文件中包含的C 11/14/17。[麻省理工学院]
- cpp-terminal-用于编写多平台终端应用程序的小标题C库。[麻省理工学院]
- cxxopts-轻量级C命令行选项解析器。[麻省理工学院]
- docopt.cpp-从docstring生成选项解析器的库[麻省理工学院/Boost]
- FINAL CUT-用于使用基于文本的小部件创建终端应用程序的库。[LGPL]
- FTXUI-C功能终端用户界面。[麻省理工学院]
- gflags-C的命令行标志模块。[BSD]
- imtui-即时模式基于文本的用户界面。[麻省理工学院]
- indicators-现代C的活动指标。[麻省理工学院]
- linenoise-一个小的独立的替代readline和libedit。[BSD-2-Clause]
- linenoise-ng-用于Linux,Windows和MacOS的小型便携式GNU readline替换,能够处理UTF-8字符。[BSD]
- Lyra-用于C 11及以后的简单易用,可组合的命令行解析器。[升压]
- Ncurses-终端用户界面。[麻省理工学院]
- oof-方便,高性能的RGB颜色和位置控制控制台输出。[麻省理工学院]
- PDCurses-公共领域诅咒库与源代码和预编译库可用。[公共域名]
- popl-用于C 11及更高的单头模板化命令行参数和ini文件解析器。[麻省理工学院]
- replxx-readline和libedit的替代品,支持UTF-8,语法高亮,提示,在Unix和Windows上工作。[BSD]
- tabulate-现代C的表制造商。[麻省理工学院]
- TCLAP-一个成熟,稳定且功能丰富的库,用于在ANSI C中定义和访问命令行参数。[麻省理工学院]
- termbox-用于编写基于文本的用户界面的C库。[麻省理工学院]
- TermOx-C 17终端用户界面 (TUI) 库。[麻省理工学院]
压缩
压缩和归档库
- bit7z-C静态库为7-zip共享库提供干净简单的界面。[MPL2]
- Brotli-Brotli压缩格式。由Google开发。[麻省理工学院]
- bzip2-免费提供,无专利,高质量的数据压缩器。[BSD]
- bzip3-Bzip2的更好,更强大的精神继承者。[LGPL]
- FiniteStateEntropy-新一代熵编解码器: 有限状态熵和huff0。
- heatshrink-嵌入式/实时系统的数据压缩库 [ISC]
- Kanzi-用C实现的现代,模块化,便携式和高效的无损数据压缩器。[阿帕奇-2.0]
- KArchive-用于创建,读取,写入和操作zip和tar等文件存档的库。它还通过QIODevice的子类使用gzip等格式提供数据的透明压缩和解压。[LGPL]
- libarchive-多格式存档和压缩库。[新BSD]website
- LZ4-非常快速的压缩算法。[BSD]website
- LZFSE-LZFSE压缩库和命令行工具。由Apple开发。
- LZHAM-无损数据压缩库,其压缩比类似于LZMA,但解压缩速度更快。[BSD]
- LZMA: zap: -7z格式的默认和通用压缩方法。[公共域名]website
- LZMAT-一个非常快速的实时无损数据压缩库。[GPL]
- miniz-单C源文件Deflate/Inflate压缩库与zlib兼容的API,ZIP存档读/写,PNG写。[麻省理工学院]
- Minizip-具有最新错误修复的Zlib,支持PKWARE磁盘跨越,AES加密和IO缓冲。[zlib]
- minizip-ng-在zlib发行版中找到的流行zip操作库的叉子。[zlib]
- PhysicsFS-提供对各种档案的抽象访问的图书馆。它旨在用于视频游戏,其设计灵感来自Quake 3的文件子系统。[zlib]
- Rapidgzip-现代多核机器的Gzip解压缩和随机访问。[阿帕奇-2/麻省理工学院]
- smaz小字符串压缩库。[BSD]
- Snappy-快速压缩器/解压缩器。[BSD]
- ZLib-一个非常紧凑的数据流压缩库。[zlib]
- zlib-ng-用于 “下一代” 系统的zlib。用一些严重的优化替换。[zlib]
- zstd-Zstandard-快速实时压缩算法。由Facebook开发。[BSD]
- ZZIPlib-提供对ZIP档案的读取访问。[MPL/LGPL]
并发
并发和多线程
- alpaka-用于并行内核加速的抽象库。[LGPLv3]
- ArrayFire-一个通用的GPU库。[BSD]
- Async++-C 11的轻量级并发框架,灵感来自Microsoft PPL库和N3428 C标准提案。[麻省理工学院]
- Boost.Compute-一个用于OpenCL的C GPU计算库。[升压]website
- Bolt-针对gpu优化的C模板库。[Apache2]
- Channel-用于在线程之间共享数据的线程安全容器。[麻省理工学院]
- ck-并发原语,安全的内存回收机制和非阻塞数据结构。[BSD]
- concurrentqueue-C 11的快速多生产者,多消费者无锁并发队列。[BSD,Boost]
- CUB-CUB为CUDA编程模式的每一层提供最先进的可重用软件组件。[新BSD]
- cuda-api-wrappers-用于CUDA GPU编程运行时API的轻量级现代C包装器。[BSD]
- cupla-C API在OpenMP,线程,TBB,... 上运行CUDA/C穿过Alpaka.[LGPLv3]
- C++React-C 11的反应式编程库。[升压]
- FiberTaskingLib-基于任务的多线程库,支持具有任意依赖关系的任务图。[阿帕奇]
- HPX-用于任何规模的并行和分布式应用程序的通用C运行时系统。[升压]
- Intel Games Task Scheduler-针对游戏开发人员的需求而设计的任务调度框架。[麻省理工学院]
- Intel Parallel STL-英特尔®C 11及以上的C 17 STL的实现。[Apache2]
- Intel TBB-英特尔®线程构建块。[Apache2]
- junction-C中的并发数据结构库。[BSD]
- Kokkos-用于并行执行和内存抽象的性能可移植编程模型。[BSD]
- libcds-并发数据结构的C库。[BSD]
- Libclsph一个基于OpenCL的GPU加速SPH流体仿真库。[麻省理工学院]
- libdill-在C中引入结构化并发。[麻省理工学院]
- libdispatch-由Apple Inc. 开发的Grand Central Dispatch (GCD) 是一种基于线程池模式的任务并行技术。libdispatch是一个提供GCD服务实现的库。[阿帕奇-2.0]website
- libfork-建立在C 20的协则上的出血边缘,无锁,无等待,继续窃取任务库。[MPL-2.0]website
- libmill-在C中介绍Go风格的并发[麻省理工学院]
- marl-Marl是用C 11编写的混合线程/光纤任务调度程序。[阿帕奇-2.0]
- moderngpu-moderngpu是用于gpu上通用计算的生产力库。它是为CUDA编写的仅标题C库。该库的独特价值在于其用于解决不规则并行问题的加速原语。[FreeBSD & 版权所有,Sean Baxter]
- NCCL-用于集体多GPU通信的优化原语。[BSD]
- Neco-C的并发库 (coroutines)。[麻省理工学院]
- OpenCL-异构系统并行编程的开放标准。
- OpenMP-OpenMP API。
- rotor事件循环友好的C演员微框架。[麻省理工学院]
- SObjectizer-在一个相当小的C框架中实现Actor,发布-订阅和CSP模型。[BSD-3-Clause]
- Quantum-一个强大的C协纲调度框架建立在顶部Boost.Coroutine2。
- RaftLib-RaftLib C库,通过C iostream类运算符实现流/数据流并发。[Apache2]
- readerwriterqueue-C的快速单生产者,单消费者无锁队列。[BSD]
- stdgpu-GPU上高效的类似STL的数据结构。[Apache2]
- Taskflow-一个通用的并行和异构任务编程系统。(从cpp-taskflow更名) [麻省理工学院]
- Thrust-类似于C标准模板库 (STL) 的并行算法库。[Apache2]
- transwarp-用于任务并发的仅标题C库。[麻省理工学院]
- VexCL-用于OpenCL/CUDA的C向量表达式模板库。[麻省理工学院]
- STAPL-一个C并行编程框架,旨在在共享和分布式内存并行计算机上工作。[BSD]
- concurrencpp-一个通用的并发库,包含任务,执行器,计时器和C 20协联来统治它们。
配置
配置文件,ini文件
- inifile-cpp-一个标题,只有和易于使用的ini文件解析器为C。[麻省理工学院]
- inih-很简单.Ini文件解析器在C中,适合嵌入式系统。[BSD-3-Clause]
- inih-只有单个标题的C版本inih.[BSD-3-Clause]
- ini-cpp-单标题只有C版本,有一些方便的读/写接口,从扩展inih.[BSD-3-Clause]website
- iniparser-INI文件解析器。[麻省理工学院] *
- inipp-简单的头-只有C ini解析器和生成器。[麻省理工学院]
- libconfigC,用于处理结构化配置文件的C库。[LGPL-2.1]website
- libconfuseC # 的小配置文件解析器库。[ISC]
- mINI-Ini文件读取器和写入器。[麻省理工学院]
- simpleini跨平台C库,提供简单的API读写INI风格的配置文件。[麻省理工学院]
- toml++-仅适用于C 17及更高版本的TOML解析器和序列化程序。[麻省理工学院]website
- toml11-C 11 (或更高版本) 仅标题toml解析器/编码器,仅取决于C标准库。[麻省理工学院]
集装箱
- C++ B-tree-基于B树数据结构实现有序内存容器的模板库。[Apache2]
- dynamic_bitset-简单有用的库: C 17/20头-只有动态bitset。[麻省理工学院]website
- fixed-containers-仅提供固定容量constexpr容器的C 20库。[麻省理工学院]
- flat_hash_map-一个非常快速的平面哈希表与斐波那契哈希。
- frozen-仅标题,constexpr替代gperf为C 14用户。[阿帕奇-2.0]
- Hashmaps用C实现开放式寻址哈希表算法。[麻省理工学院]
- hat-trieC实现一个快速和内存高效的HAT-trie。[麻省理工学院]
- Hopscotch map-使用hopscotch哈希解决冲突的快速仅标题哈希映射。[麻省理工学院]
- LSHBOX一个局部敏感哈希 (LSH) 的c工具箱,提供了几种流行的LSH算法,还支持Python和MATLAB。[GPL]
- parallel-hashmap-仅标头,非常快速且内存友好的hashmap和btree容器系列 [Apache2]website
- PGM-index-一种数据结构,可使用比传统索引少几个数量级的空间,在数十亿个项目的数组中实现快速查找,前任,范围搜索和更新。[Apache2]website
- plf::colony-无序的 “袋” 型容器,其在高修改情况下胜过std容器,同时保持指向非擦除元素的永久指针,而不管插入/擦除。[zLib]website
- plf::list-std::list实现,其移除范围拼接以便启用更友好的高速缓存结构,从而产生显著的性能增益。[zLib]website
- plf::stack-std::stack容器适配器的替换容器,其性能优于堆栈上下文中的任何std容器。[zLib]website
- ring_span lite-Arthur o'dwyer的ring_span实现ie的简化实现。循环缓冲区视图。[麻省理工学院]
- robin-hood-hashing-快速和内存高效的哈希表基于罗宾汉哈希为C 14。[麻省理工学院]
- robin-map-使用罗宾汉哈希的快速哈希映射和哈希集。[麻省理工学院]
- sparsepp-C的快速,内存高效的哈希映射。[BSD 3-条款]
- st_tree-用于树数据结构的快速灵活的c模板类。[阿帕奇-2.0]
- svector-紧凑的SVO优化的载体为C 17或更高。[麻省理工学院]
- tree.hh-一个类似STL的C标题树库。[GPL2]
- unordered_dense-基于robin-hood向后移位删除的快速且密集存储的hashmap和hashset。[麻省理工学院]
密码学
密码学和加密库
- Bcrypt-跨平台文件加密实用程序。加密文件可在所有支持的操作系统和处理器上移植。[BSD]
- BeeCrypt-一个便携式和快速的密码库。[LGPLv2.1]
- Botan-C的加密库。[BSD-2]
- Crypto++-一个免费的C类库的加密方案。[升压]website
- digestpp-C 11仅报头的消息摘要 (散列) 库。[公共域名]
- GnuPG-OpenPGP标准的完整和免费实现。[GPL]
- GnuTLS-实现SSL,TLS和DTLS协议的安全通信库。[LGPL2.1]
- Libgcrypt-最初基于GnuPG代码的通用加密库。[LGPLv2.1]
- LibreSSL-从OpenSSL 2014年分叉的SSL/TLS协议的免费版本。[?]
- libsodium-P(ortable | Ackable) 基于NaCl的加密库,固执己见,易于使用。[ISC]
- libhydrogen-适用于受限环境的轻量级,安全,易于使用的加密库。[ISC]
- LibTomCrypt-一个相当全面,模块化和便携式加密工具包。[WTFPL]
- mbedTLS-一个开源,可移植,易于使用,可读且灵活的SSL库,以前称为PolarSSL。[Apache2]website
- Nettle-一个低级别的加密库。[LGPL]
- OpenSSL-一个强大的、商业级的、功能齐全的、开源的密码学库。[阿帕奇]website
- retter-哈希函数,密码,工具,库和与密码学相关的材料的集合。
- s2n-TLS/SSL协议的实现。[阿帕奇]
- sha1collisiondetection-库和命令行工具来检测文件中的SHA-1冲突。[麻省理工学院]
- Tink-一个多语言,跨平台的库,提供安全,易于正确使用和难以 (er) 误用的加密api。[阿帕奇-2.0]
- Tiny AES in C-C中的小型便携式AES128/192/256。[公共域名]
- Themis-用于无痛数据安全的加密库,为移动和服务器平台提供对称和非对称加密,具有前向保密性的安全套接字。[Apache2]
- HEhub-用于同态加密的库及其应用。[Apache2]
CSV
用于解析逗号分隔值 (CSV) 文件的库
- commata-只是另一个标题-只有C 17 CSV解析器。[取消许可]
- csv2-现代C的快速CSV解析器。[麻省理工学院]
- Csv::Parser-用C 17编写的编译时和运行时CSV解析器。[Zlib]
- Fast C++ CSV Parser-小型,易于使用且快速的仅标题库,用于读取CSV文件。[BSD-3-Clause]
- Glaze-高性能,仅标题,具有反射支持的CSV库。[麻省理工学院]
- lazycsv-用于现代C的快速,轻量级和单头csv解析器。[麻省理工学院]
- ssp-一个标题只有 “csv” 解析器,它是快速和通用的现代C api。[麻省理工学院]
- Vince's CSV Parser-一个快速,自包含,流式C 17 CSV解析器,具有可选的类型转换和统计信息。[麻省理工学院]
数据库
数据库库、SQL服务器、ODBC驱动程序和工具
- ClickHouse-用于ClickHouse DBMS的C客户端[Apache2]
- DuckDB进程内SQL OLAP数据库管理系统。[麻省理工学院]
- hiberlite-C sqlite3的对象关系映射。[BSD]
- Hiredis-用于Redis数据库的简约C客户端库。[BSD]
- Infinity-为LLM应用程序构建的AI原生数据库,提供令人难以置信的快速矢量和全文搜索。[Apache2]
- Kvrocks-以RocksDB为存储引擎,兼容Redis协议的分布式键值NoSQL数据库。[Apache2]
- LevelDB-在Google编写的快速键值存储库,提供从字符串键到字符串值的有序映射。[BSD]
- libpqxx-PostgreSQL的官方C客户端API。[BSD-3-Clause]
- LMDB-非常快速的嵌入式键/值存储与完整的酸语义。[OpenLDAP]
- LMDB++-LMDB嵌入式数据库库的C 11包装器。[公共域名]
- mgclient-C/C Memgraph客户端。[Apache2]
- MongoDB C Driver-C的MongoDB客户端库。[Apache2]
- MongoDB C++ Driver-MongoDB的C驱动程序。[Apache2]
- MongoDB Libbson-一个BSON实用程序库。[Apache2]
- MySQL++-MySQL的C API的C包装。[LGPL]
- nanodbc-用于本机C ODBC API的小型C包装器。[麻省理工学院]
- ODB-用于C的开源,跨平台和跨数据库的对象关系映射 (ORM) 系统。[GPLv2]
- redis3m-hiredis的包装与干净的C接口,支持哨兵和准备使用的模式。[Apache2]
- Reindexer-可嵌入,内存中,面向文档的数据库,具有高级查询构建器界面。[Apache2]website
- RocksDB-嵌入式键值存储从facebook的快速存储。[BSD]
- SimDB-高性能,共享内存,无锁,跨平台,单个文件,最小的依赖关系,C 11键值存储。[Apache2]
- SOCI-C的数据库抽象层。[升压]
- Speedb-社区主导的项目: 符合RocksDB的高性能可扩展嵌入式键值存储。[Apache2]
- SQLite-一个完全嵌入式,功能齐全的关系数据库在几个100k,你可以包括到你的项目。[公共域名]
- SQLiteC++SQLiteC (SQLiteCpp) 是一个聪明且易于使用的C SQLite3包装器。[麻省理工学院]
- sqlite_modern_cpp-标题只有C 14包装在sqlite库。[麻省理工学院]
- sqlite_orm-SQLite ORM光头只有现代C库。[AGPL支付麻省理工学院]
- sqlpp11-一种类型安全的嵌入式域特定语言,用于SQL查询和C ++ 中的结果。[BSD-2-Clause]
- TileDB-快速密集和稀疏多维阵列DBMS。[麻省理工学院]website
- TinyORM-现代C ORM库。[麻省理工学院]website
- UnQLite-一个自包含、无服务器、零配置、事务性的NoSQL引擎。[BSD-2-Clause]website
- upscaledb-具有内置查询接口的嵌入式 “类型化” 键/值存储。[GPLv3]
- TigerBeetleDB C++ client (Community)TigerBeetle是一个财务会计数据库,专为关键任务的安全性和性能而设计,为金融服务的未来提供动力。[BSL-1.0]
- UStore-用于blob,JSON和图形的多模式数据库。[Apache2]
- Velox-一个C向量化的数据库加速库,旨在优化查询引擎和数据处理系统。[阿帕奇-2.0]website
数据可视化
数据可视化库
- matplotplusplus用于数据可视化的C图形库。[麻省理工学院]website
调试
调试库,内存泄漏和资源泄漏检测,单元测试
- backward-cpp-一个美丽的堆栈跟踪漂亮的打印机为C。[麻省理工学院]
- Bencher-一套连续的基准测试工具,旨在捕捉CI中的性能回归。[麻省理工]/[Apache2]
- benchmark-Google提供了小型微基准测试支持库。[Apache2]
- Boost.Test-升压测试库。[升压]website
- check-Check是C ++ 的单元测试框架。[LGPL-2.1]website
- doctest-最轻的功能丰富的C单头测试框架。[麻省理工学院]
- Catch2-用于单元测试,TDD和BDD的现代C原生测试框架。[升压]
- Celero-C基准测试框架。[Apache2]
- cpp-dump-用于调试目的的C库,可以打印任何变量,甚至是用户定义的类型。[麻省理工学院]
- CppUTest-C/C的单元测试和嘲笑框架。[BSD-3-clause]
- CUTE-C单元测试更容易。[LGPL3]
- CMocka-C的单元测试框架,支持模拟对象。[Apache2]
- CppBenchmark-具有纳秒测量精度的C的性能基准测试框架。[麻省理工学院]
- Cpptrace-一个简单,可移植和独立的C stacktrace库,支持C 11和更高版本。[麻省理工学院]
- CppUnit-JUnit的C端口。[LGPL2]
- CTest-C使测试驱动程序。[BSD]
- dbg-macro-C的dbg(…) 宏。[麻省理工学院]
- DebugViewPP-调试日志记录查看器。[升压]
- Deleaker-用于资源泄漏检测的工具,包括内存,GDI和句柄泄漏。
- FakeIt-C的简单嘲弄框架。[麻省理工学院]
- fff-用于创建假C函数的微框架。[麻省理工学院]
- Google Mock-用于编写和使用C模拟类的库。[BSD]
- Google TestGoogle C测试框架。[BSD]
- ig-debugheap-多平台调试堆用于跟踪内存错误。[BSD]
- libassert-最过度设计的C断言库。[麻省理工学院]
- libtap-用C编写测试。[GPL2]
- microprofile-探查器与web视图的多个平台。[取消许可]
- MinUnit-C的最小单元测试框架自包含在单个头文件中。[麻省理工学院]
- Mockator-用于C接缝和模拟对象的Eclipse CDT插件。
- nanobench-简单,快速,准确的单头微基准测试功能的C 11/14/17/20。[麻省理工学院]website
- Nanotimer-用于基准测试的简单低开销跨平台计时器类。[zLib]website
- Nonius-C微基准测试框架。[CC]
- Remotery-单C文件探查器与Web查看器。[Apache2]
- snitch轻量级C 20测试框架。[升压]
- Touca开源回归测试系统,可以自行托管。[Apache2]website
- UnitTest++-C的轻量级单元测试框架。[MIT/X联盟许可证]
- Unity-C的简单单元测试。[麻省理工学院]
- utest.h-用于C和C的单标头单元测试框架。[取消许可]
- μt-C 20单头/单模块,无宏 μ (微)/单元测试框架。[升压]
- VLD-可视检漏仪。一个免费、健壮、开源的Visual C ++ 内存泄漏检测系统。
文档
- Doxide-现代C的现代文档,使用YAML配置,输出降价。[阿帕奇2.0]website
- doxygen: zap: -用于从带注释的C源生成文档的事实上的标准工具。[GPL2]website
- doxyrest-从Doxygen XML到Sphinx的reStructuredText的编译器。[麻省理工学院]
- hdoc-C的现代文档工具。[AGPL/专有]website
- Natural Docs-Natural Docs是一种用于多种编程语言的开源文档生成器。[AGPL/专有]website
- Sphinx-Sphinx可以轻松创建智能和漂亮的文档。[BSD-2-Clause]website
DSP
数字信号处理。
- DSPFilters-用于数字信号处理的有用C类的集合。[麻省理工学院]
- FFTW-用于在一个或多个维度上计算DFT的C库。[GPL]
- iir1-IIR实时C滤波器库[麻省理工学院]
- kissfft-一个快速傅立叶变换 (FFT) 库,试图保持简单,愚蠢。[BSD-3-Clause]
- pocketfft-基于FFTPack的FFT实现,但有一些改进。[BSD-3-Clause]
- wavelib-1D和2D小波变换的C实现。[BSD-3-Clause]
字体
用于解析和操作字体文件的库。
- Fontconfig-字体配置和自定义库。[麻省理工学院]website
- FreeType-FreeType是一个免费提供的用于渲染字体的软件库。[FTL & GPLv2]
- otfcc-用于解析和编写OpenType字体文件的C库和实用程序。[阿帕奇-2.0]
- harfbuzz-文本整形引擎。[老麻省理工学院]
- libschrift-一个轻量级的TrueType字体呈现库。[国际标准化组织]
游戏引擎
- Acid-高速C 17 Vulkan游戏引擎。[麻省理工学院]
- Allegro-一个跨平台的库,主要针对视频游戏和多媒体编程。[zlib]
- Axmol Engine-桌面,移动和XBOX (UWP) 的跨平台游戏引擎,源自Cocos2d-x-4.0。[麻省理工学院]website
- Cocos2d-x-用于构建2d游戏,交互式书籍,演示和其他图形应用程序的多平台框架。[麻省理工学院]
- Corange-用纯C,SDL和OpenGL编写的游戏引擎。[BSD]
- crown-Crown是一款通用的数据驱动游戏引擎,使用正统C从头开始编写,并牢记简约和面向数据的设计理念。[麻省理工学院]
- delta3d-一个强大的仿真平台。[LGPL2]
- EnTT-游戏满足现代C.[麻省理工学院]
- GamePlay-用于创建2D/3D移动和桌面游戏的跨平台原生C游戏框架。[Apache2]
- Godot-一个功能齐全,开源,麻省理工学院许可,游戏引擎。[麻省理工学院]
- Grit-社区项目,以建立一个免费的游戏引擎来实现开放世界的3D游戏。[麻省理工学院]
- Halley-用C 14编写的轻量级游戏引擎,具有 “真正的” 实体组件系统。[阿帕奇2.0]
- JNGL-适用于Linux,Windows,macOS,Android,iOS,Xbox,Nintendo Switch和Web的2D库。[zlib]website
- KlayGE-基于插件架构的跨平台开源游戏引擎。[GPLv2]website
- nCine-一个跨平台的2D游戏引擎,强调性能,用C 11编写,并可选择在Lua中编写脚本。[麻省理工学院]website
- o3de-基于Amazon Lumberyard的开源、实时、多平台3D引擎。[Apache2]website
- OpenXRay-在S.T.A.L.K.E.R. 游戏系列中使用的社区修改的x射线引擎。[经修改的BSD/仅非商业用途]
- Oxygine-一个跨平台的2D C游戏引擎。[麻省理工学院]
- Panda3D-游戏引擎,用于Python和C程序的3D渲染和游戏开发的框架。[修改后的BSD]website
- PixelGameEngine-olcPixelGameEngine的官方发行版,这是javidx9的YouTube视频和项目中使用的工具。[OLC3]
- Polycode-C中的创意代码的跨平台框架 (具有Lua绑定)。[麻省理工学院]website
- quakeforge-积极维护原始Quake引擎代码的分支,经过20年的发展。[GPL-2.0]
- raylib-一个简单和易于使用的库,享受视频游戏编程。[zlib/libpng]website
- Spring-一个强大的免费跨平台RTS游戏引擎。[GPLv2/GPLv3]website
- Torque2D-为2D游戏开发而构建的开源和跨平台C引擎。[麻省理工学院]website
- Torque3D-为3D游戏开发而构建的开源C引擎。[麻省理工学院]website
- toy engine-玩具是一个薄和模块化的c游戏引擎,并提供简单的表现力c成语,以快速迭代设计全功能的2D或3D游戏。
- Urho3D-用C实现的免费轻量级,跨平台的2D和3D游戏引擎。受到OGRE和Horde3D的极大启发。[麻省理工学院]
- ezEngine-是一个用c语言编写的免费开源游戏引擎。它的理念是模块化和灵活,以便它可以适应许多不同的用例。[麻省理工学院]website
图
GUI
图形用户界面
- Boden-原生的,移动的,跨平台的GUI框架。[GPL/LGPL/专有]website
- CEGUI-灵活,跨平台的GUI库。
- Elements-轻量级,细粒度,分辨率独立,模块化GUI库。[麻省理工学院]
- FLTK-快速,轻便,跨平台的C GUI工具包。[LGPL2]
- FOX Toolkit-一个开源的跨平台小部件工具包。[LGPL]
- GacUI-GPU加速的C用户界面,具有WYSIWYG开发工具,XML支持,内置数据绑定和MVVM功能。[Ms-PL]
- GTK+-用于创建图形用户界面的多平台工具包。[LGPL]
- gtkmm-流行的GUI库GTK的官方C界面。[LGPL]
- imgui-即时模式图形用户界面,具有最小的依赖关系。[麻省理工学院]
- implot-imgui的即时模式绘图小部件。[麻省理工学院]
- iup-用于构建图形用户界面的多平台工具包。[麻省理工学院]
- libui-C中的简单且可移植 (但不灵活) 的GUI库,该库使用其支持的每个平台的本机GUI技术。[麻省理工学院]
- MyGUI-快速,灵活和简单的GUI。[麻省理工学院]
- nana-Nana是一个跨平台的库,用于现代C风格的GUI编程。[升压]
- NanoGui-用于OpenGL 3.X或更高版本的简约跨平台小部件库。[BSD]
- nuklear-一个单头ANSI C gui库。[公共域名]
- QCustomPlot-Qt绘图小部件没有进一步的依赖。[GPLv3]
- Qwt-用于技术应用的Qt小部件。[基于LGPL拥有]
- QwtPlot3D-一个功能丰富的基于Qt/OpenGL的C编程库,本质上提供了一堆3d小部件。[zlib]
- RmlUi-HTML/CSS用户界面库的发展。利布罗克特的叉子。[麻省理工学院]
- SciterSciter是一个可嵌入的HTML/CSS/脚本引擎,旨在用作现代桌面应用程序的UI层。[免费/商业]
- Slint-用于桌面和嵌入式的轻量级GUI工具包。[GPL/免费/专有]website
- TGUI-跨平台的现代c GUI。[Zlib]website
- WebUI-使用任何web浏览器作为GUI,在后端使用您的首选语言,在前端使用HTML5。[麻省理工学院]website
- wxWidgets-一个C库,使开发人员可以使用单个代码库为Windows,Mac OS X,Linux和其他平台创建应用程序。[拥有LGPL]
- xtd-现代C 17/20框架,用于在Windows,macOS,Linux,iOS和android上创建控制台 (CLI),表单 (像WinForms这样的GUI) 和tunit (像Microsoft单元测试框架这样的单元测试) 应用程序。[麻省理工学院]
- Yue-用于创建本机跨平台GUI应用程序的库。[LGPLv2]
图形
- assimp-开放资产导入库 (assimp) 是一个跨平台的3D模型导入库,旨在为不同的3D资产文件格式提供通用的API。[BSD-3-Clause]website
- bgfx-一个跨平台的渲染库。[BSD]
- Blend2D-由JIT编译器驱动的2D矢量图形引擎。[Zlib]website
- Cairo-支持多个输出设备的2D图形库。[LGPL2或Mozilla MPL]
- C-Turtle-一个仅C 11标头的turtle图形库,用作CImg包装器。[麻省理工学院]
- Diligent Engine-一个现代化的跨平台低级3D图形库。[Apache2]
- DirectXTK-用于在C中编写DirectX 11.x代码的帮助程序类的集合。[麻省理工学院]
- GLFW-一个简单的,跨平台的OpenGL争论库。[zlib/libpng]
- GLFWPP-用于GLFW的精简现代C 17仅标头包装。[麻省理工学院]
- Harfang 3D可在C,Python,Lua和Go中使用的3D可视化库。基于BGFX。[GPLv3/LGPLv3/专有]website
- herebedragons-使用各种引擎,框架或api实现的基本3D场景。[麻省理工学院]website
- Horde3D-一个小的3D渲染和动画引擎。[EPL]
- Ion-一组小型高效的库,用于构建使用3D图形的跨平台客户端或服务器应用程序。[Apache2]website
- Irrlicht-用c语言编写的高性能实时3D引擎。[zlib]
- libigl简单的C几何处理库。[MPL2]
- LLGL低级图形库 (LLGL) 是现代图形api的薄抽象层。[BSD-3-Clause]
- LunaSVG-C中的独立SVG渲染库。[麻省理工学院]
- magnum-用于游戏和数据可视化的轻量级和模块化C 11/C 14图形中间件。[麻省理工学院]website
- micro-gl-实时,可嵌入,标题只有C 11 CPU矢量图形。没有STD lib,没有FPU和没有GPU要求。[自定义]website
- NanoVG-用于UI和可视化的OpenGL顶部的抗锯齿2D矢量绘图库。[Zlib]
- Ogre 3D: zap: -用C编写的面向场景的,实时的,灵活的3D渲染引擎 (与游戏引擎相对)。[麻省理工学院]website
- OpenSceneGraph-一个开源的高性能3D图形工具包。[OSGPL]
- OpenSubdiv-用于在CPU和GPU上评估和渲染细分曲面的Pixar库。[修改的Apache2]
- OpenVDB-用于存储,编辑和渲染体积数据集的库和工具。[MPL2]
- Panda3D-用于Python和C的3D渲染和游戏开发的框架。[BSD]
- Partio-用于整理粒子数据的库,支持最常见的文件格式。[修改后的BSD]
- Skia-一个完整的2D图形库,用于绘制文本,几何图形和图像。[BSD]website
- ThorVG-一个独立于平台的便携式库,允许绘制基于矢量的场景和动画,包括SVG和Lottie。[麻省理工学院]website
- TinySpline-一个小而强大的ANSI C库,用于插值,变换和查询任意NURBS,b样条和贝塞尔曲线。[麻省理工学院]
- urho3d-跨平台渲染和游戏引擎。[许多不同,主要是麻省理工学院]
- Yocto/GL-用于数据驱动的基于物理图形的微型C库。[麻省理工学院]
图像处理
- Boost.GIL-通用图像库。[升压]website
- BitmapPlusPLus-简单和快速的标题只有位图C库。[麻省理工学院]
- CImg-用于图像处理的小型开源C工具包。[拥有LGPL或GPL]
- CxImage-图像处理和转换库,用于加载,保存,显示,转换BMP,JPEG,GIF,PNG,TIFF,MNG,ICO,PCX,TGA,WMF,WBMP,JBG,J2K图像。[zlib]
- Dlib: zap: -现代C 11机器学习,计算机视觉,数值优化和深度学习工具包。[升压]website
- fpng-超快C.PNG作家/读者。[取消许可]
- FreeImage-一个开源库,支持流行的图形图像格式以及当今多媒体应用程序所需的其他格式。[GPL2或GPL3]
- GD-GD图形库,在PHP中用于图像加载/操作和缩略图生成。[自定义许可许可证,需要在用户文档中提及]website
- DCMTK-DICOM工具包。
- GDCM-草根DICOM库。
- ITK-用于图像分析的开源跨平台系统。[Apache2来自ITK 4.0]
- LeptonicaLeptonica是一个开源库,包含广泛用于图像处理和图像分析应用的软件。[BSD-2-Clause]website
- libavif-用于编码和解码的库。avif文件。[BSD-2-Clause]
- libfacedetection-用于图像中的人脸检测的开源库。人脸检测速度可以达到1500FPS。[BSD]
- libjpeg-turbo-使用SIMD指令加速基线JPEG编码和解码的JPEG图像编解码器。[IJG & BSD-3-Clause & zlib]website
- libjxlJPEG XL图像格式参考实现。[BSD-3-Clause]
- libpng-用于读取、创建和操作PNG (可移植网络图形) 光栅图像文件的应用程序的参考库。[libpng-2.0]website
- libspng-简单,现代的libpng替代。[BSD-2]website
- libvips-具有低内存需求的快速图像处理库。[LGPL]website
- LodePNG-C和C中的PNG编码器和解码器。[Zlib]
- Magick++-用于C的ImageMagick程序接口。[Apache2]
- MagickWnd-用于C的ImageMagick程序接口。[Apache2]
- MozJPEG-改进的JPEG编码器。[BSD/BSD-3-Clause/ZLIB]
- OpenCV: zap: -开源计算机视觉。[Apache2]website
- OpenEXR-用于高动态范围成像的跨平台库。[修改的BSDF]
- OpenImageIO-强大的图像和纹理角力库,支持大量常见的有损和原始格式。[修改后的BSD]
- OpenJPEG-用c语言编写的开源JPEG 2000编解码器。[BSD-2-Clause]
- SAIL-易于使用的跨平台图像解码库与可插拔的图像编解码器。[麻省理工学院]
- Simd-使用SIMD的C图像处理库: SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX(Altivec) 和VSX(Power7),NEON for ARM。[麻省理工学院]
- stb-image-STB单标题图像加载库。[公共领域]
- tesseract-ocr-OCR引擎。[Apache2]
- TinyEXIF-适用于JPEG的微型ISO兼容C EXIF和XMP解析库。[麻省理工学院]
- TinyTIFF-轻量级TIFF阅读器/作家库。[GPL-3.0]
- Video++-C 14高性能视频和图像处理库。[麻省理工学院]
- VIGRA-用于图像分析的通用C计算机视觉库。[麻省理工X11]
- VTK-用于3D计算机图形,图像处理和可视化的开源免费软件系统。[BSD]
国际化
- gettext-GNU 'gettext'。[GPL2]
- IBM ICU-一组C/C和Java库,提供Unicode和全球化支持。[ICU]
- libiconv-不同字符编码之间的编码转换库。[GPL]
- simdutf-Unicode例程 (UTF8,UTF16,UTF32): 使用SSE2,AVX2,NEON,AVX-512每秒数十亿个字符。[阿帕奇-2/麻省理工学院]
- uni-algoC/C的Unicode算法实现。[Unlicense或MIT]
- utf8.h-用于C和C的单个标头utf8字符串函数。[取消许可]
- utf8proc-用于处理UTF-8 Unicode数据的干净的C库。[麻省理工学院]
进程间通信
- Apache Thrift-高效的跨语言IPC/RPC,在C,Java,Python,PHP,C # 和更多其他语言之间工作。最初由Facebook开发。[Apache2]
- Boost.Interprocess-仅支持标头的Boost库,支持内核级共享内存和内存映射文件,具有内置同步机制 (信号量,互斥量等)。[升压]website
- bRPCbRPC是一个工业级的c语言RPC框架,常用于搜索、存储、机器学习、广告、推荐等高性能系统。[Apache2]website
- Cap'n Proto-基于快速数据交换格式和功能的RPC系统。[麻省理工学院]website
- eCAL-Pub/sub,客户端/服务器,C /Python/C #,各种消息协议 (protobuf,capnproto ..)。[Apache2]website
- gRPC-一个高性能,开源,通用的RPC框架。[BSD]website
- Ice-全面的RPC框架,支持C,C #,Java,JavaScript,Python等。[GPLv2]
- iceoryx-真正的零拷贝进程间通信框架,用于安全关键系统,具有C,Rust的绑定。运行在Linux,QNX,Windows,Mac OS,FreeBSD。[Apache2]website
- libjson-rpc-cpp-用于C服务器和客户端的JSON-RPC框架。[麻省理工学院]
- nanomsg-几种 “可伸缩性协议” 的简单高性能实现。[麻省理工学院]website
- nng-nanomsg-下一代,轻量级的无代理消息库。[麻省理工学院]website
- rpclib-现代C msgpack-RPC服务器和客户端库。[麻省理工学院]
- simple-rpc-cpp-一个简单的RPC包装生成器到C/C函数。[BSD]
- SRPC-支持多种协议和开放遥测的轻量级RPC系统。[Apache2]
- WAMP-提供RPC和pub/sub消息传递模式。(各种实现,各种语言)
- xmlrpc-c-基于XML和HTTP的轻量级RPC库。[BSD]
JSON
- Boost.PropertyTree-属性树解析器/生成器,可用于解析XML/JSON/INI/Info文件。[升压]website
- cJSON-ANSI C中的Ultralightweight JSON解析器。[麻省理工学院]
- DAW JSON Link-快速,方便的JSON序列化和解析在C。[BSL-1.0]
- frozen-用于C/C的JSON解析器和生成器。[GPL和GPL2]
- Glaze-非常快,在内存中,JSON和现代C的接口库。[麻省理工学院]
- Jansson-用于编码,解码和操作JSON数据的C库。[麻省理工学院]
- jbson-jbson是一个用于构建和迭代BSON数据和C 14中的JSON文档的库。[升压]
- JeayeSON-一个非常理智 (仅标题) C JSON库。[BSD]
- Jsmn-C中的简约JSON解析器。[麻省理工学院]
- json: zap: -现代C的JSON。[麻省理工学院]website
- JSON++-C中的JSON解析器。[麻省理工学院]
- json.h-一个简单的一个头/一个源解决方案来解析C和C中的JSON。[取消许可]
- json-build-C89微小的零分配JSON序列化程序。[麻省理工学院]
- json-c-C中的JSON实现。[麻省理工学院]
- jsoncons-一个仅用于JSON和类似JSON的二进制格式的C标头库,具有JSONPointer,JSONPatch,JSONPath和JMESPath。[升压]
- JsonCpp-用于与JSON交互的C库。[麻省理工学院]
- Jsonifier-用于从/到JSON解析和序列化对象的几个类-非常快。[麻省理工学院]
- jsonParse-ANSI C中的简单JSON解析器。[麻省理工学院]
- json-parser-用便携式ANSI C编写的非常低的占用空间JSON解析器[BSD]
- json11-C 11的一个小JSON库。[麻省理工学院]
- json-struct-高性能,单头JSON解析器解析和C结构。[麻省理工学院]
- json-voorhees-C的JSON库。支持C 11。没有依赖关系,快速和开发友好。[Apache2]
- jute-非常简单的C JSON解析器。[公共域名]
- libjson-C中的JSON解析器和打印机库。易于与任何模型集成。[LGPL]
- libjson-轻量级JSON库。[?]
- LIBUCL: zap: -通用配置库解析器[BSD-2-Clause]
- parsonParson是一个用c语言编写的轻量级json库。[麻省理工学院]
- PicoJSON-C中的仅头文件JSON解析器序列化程序。[BSD]
- qt-json-一个简单的类,用于将JSON数据解析为QVariant层次结构,反之亦然。[GPLv3]
- QJson-一个基于qt的库,将JSON数据映射到QVariant对象。[LGPL2]
- RapidJSON: zap: -用于C的快速JSON解析器/生成器,具有SAX/DOM风格的API。[麻省理工学院]website
- sajson-轻量级,非常高性能的JSON解析器为C 11。[麻省理工学院]
- simdjson-非常快速的JSON库,可以解析每秒千兆字节的JSON。[阿帕奇-2.0]
- Sonic-Cpp-一个快速的JSON序列化和反序列化库,由SIMD加速。[阿帕奇-2.0]
- taoJSON-零依赖C标头-仅JSON库。[麻省理工学院]
- ujsonΜ JSON是一个小的,C 11,UTF-8,JSON库。[麻省理工学院]
- UltraJSON-用C编写的超快速JSON解码器和编码器。[BSD-3-Clause]
- YAJL-C中的快速流JSON解析库。[ISC]
- yyjson-用ANSI C编写的高性能JSON库。[麻省理工学院]
日志记录
- Blackhole-基于属性的日志记录框架,旨在快速,模块化和高度可定制。[麻省理工学院]
- Boost.Log-设计非常模块化和可扩展。[升压]website
- Easylogging++-用于C 11 (或更高版本) 应用的极轻的高性能日志库。[麻省理工学院]
- fmtlog-一个高性能的fmtlib风格的日志库,延迟以纳秒为单位。[麻省理工学院]
- G3log-具有动态接收器的异步记录器。[公共域名]
- glog-C实现Google日志记录模块
- haclog-一个非常快速的普通C日志库。[麻省理工学院]
- Log4cpp-用于灵活记录到文件,syslog,IDSA和其他目的地的C类库。[LGPL]
- log4cplus-一个简单易用的C日志API,提供对日志管理和配置的线程安全,灵活和任意粒度的控制。[BSD & Apache2]
- loguru-一个轻量级的C日志记录库。[公共领域]
- lwlog-非常快速的同步和异步C 17日志库。[麻省理工学院]
- plog-可移植和简单的日志为C在不到1000行的代码。[MPL2]
- reckless-用于C的低延迟,高吞吐量,异步日志记录库。[麻省理工学院]
- spdlog-超快速,标题只,C日志库。
- templog-一个非常小而轻量级的C库,您可以使用它来添加日志记录到您的C应用程序。[升压]
- P7Baical-一个开源和跨平台的库,用于以最少的CPU和内存使用高速发送遥测和跟踪数据。[LGPL]
- Quill-异步跨平台低延迟日志库。[麻省理工学院]
机器学习
- Caffe-神经网络的快速框架。[BSD]
- catboost-决策树库上的快速,可扩展,高性能梯度提升。[Apache2]
- CCV·基于C ++ 的/缓存/核心计算机视觉库,一个现代计算机视觉库。[BSD]
- darknet-用C和CUDA编写的开源神经网络框架。[公共域名]website
- Dlib: zap: -现代C 11机器学习,计算机视觉,数值优化和深度学习工具包。[升压]website
- FAISS-用于密集向量的高效相似性搜索和聚类的库。[麻省理工学院]
- Fido-用于嵌入式电子和机器人技术的高度模块化C机器学习库。[麻省理工学院]website
- flashlight-来自Facebook AI Research的快速,灵活的机器学习库,完全用C编写,基于ArrayFire张量库。[BSD-3-Clause]website
- ggml-用于机器学习的张量库,支持16位和4位量化。[麻省理工学院]
- libsvm-一个简单,易于使用,高效的支持向量机库。[BSD-3-Clause]website
- m2cgen-CLI工具,用于将经过训练的经典ML模型转换为具有零依赖关系的本机C代码。[麻省理工学院]
- MeTA-现代C数据科学工具包。[麻省理工学院]website
- Minerva-快速灵活的深度学习系统。[Apache2]
- mlpack-一个可扩展的c机器学习库。[LGPLv3]website
- ncnn-为移动平台优化的高性能神经网络推理计算框架。[BSD]
- OpenCV: zap: -开源计算机视觉库。[BSD]website
- oneDAL-强大的机器学习库,有助于加快大数据分析。[阿帕奇]
- ONNX runtime-用于训练和推理onx模型的C和C库。ONNX是AI模型可以转换成的标准,无论它们使用的是什么库。[麻省理工学院]website
- Recommender-使用协同过滤 (CF) 的产品推荐/建议的C库。[BSD]
- RNNLIB-RNNLIB是用于序列学习问题的递归神经网络库。[GPLv3]
- SHOGUN-幕府机器学习工具箱。[GPLv3]
- sofia-ml-用于机器学习的快速增量算法套件。[Apache2]
- USearch-向量和字符串的快速搜索和聚类库。[Apache2]
- VLFeat-VLFeat开源库实现了流行的计算机视觉算法,专门用于图像理解和局部特征提取和匹配。[BSD-2-Clause]website
- xgboost-可扩展,可移植和分布式梯度提升 (GBDT,GBRT或GBM) 库,适用于Python,R,Java,Scala,C等。在单机、Hadoop、Spark、Flink和DataFlow上运行。[Apache2]
数学
- Apophenia-用于统计和科学计算的C库。[GPL2]
- Armadillo-用于线性代数和科学计算的快速C库。[Apache2]website
- autodiff-一个现代,快速和表达的C库自动分化。[麻省理工学院]website
- blaze-用于密集和稀疏算术的高性能C数学库。[BSD]
- Boost.Multiprecision-提供更高范围/精度的整数,rational和浮点类型在C,仅头或与GMP/MPFR/LibTomMath后端。[升压]website
- ceres-solver-来自google的用于建模和求解大型复杂非线性最小二乘问题的C库。[BSD]
- CGAL-收集高效可靠的几何算法。[LGPL和GPL]website
- cml-免费的C数学库的游戏和图形。[升压]
- CNL-C的组合数字库。[升压]
- DirectXMath-用于游戏和图形应用程序的所有内联SIMD C线性代数库。
- Dlib: zap: -现代C 11机器学习,计算机视觉,数值优化和深度学习工具包。[升压]website
- Eigen-用于线性代数,矩阵和向量运算,数值求解器和相关算法的模板头的高级C库。[MPL2]
- ExprTkC数学表达式工具包库 (ExprTk) 是一个简单易用、易于集成且极其高效的运行时数学表达式解析器和求值引擎。[麻省理工学院]
- Geometric Tools-用于数学,图形,图像分析和物理领域的计算的C库。[升压]website
- GLM-仅标题的C数学库,与OpenGL的GLSL数学匹配和互操作。[麻省理工学院]website
- GMTL-图形数学模板库是以通用方式实现图形基元的工具集合。[GPL2]
- GMP-用于任意精度算术的C库,对有符号整数,有理数和浮点数进行操作。[LGPL3和GPL2]
- Klein-一个快速,SIMD优化的C 17几何代数库,用于点,线和平面投影,相交,连接,刚体运动等。[麻省理工学院]website
- linalg.h-单标题,公共领域,短矢量数学库为C。[取消许可]
- MatX-一个GPU加速的C 17数值计算库,具有类似MATLAB/Python的语法。[BSD 3-条款]
- MIRACL-一个多精度整数和有理算术加密库。[AGPL]
- NumCpp-Python Numpy库的模板标头仅C实现。[麻省理工学院]
- muparser-muParser是用C编写的可扩展的高性能数学表达式解析器库。[麻省理工学院]
- LibTomMath-一个完全用C编写的免费开源便携式数论多精度整数库。[公共域名和WTFPL]website
- linmath.h-一个精益线性数学库,针对图形编程。[WTFPL]
- lp_solve-用于制定和解决线性规划问题的库。[LGPL]website
- OpenBLAS-基于GotoBLAS2 1.13 BSD版本的优化BLAS库。[BSD 3-条款]website
- PCG-rand-PCG是一系列简单的快速空间高效的统计上良好的随机数生成算法。与许多通用rng不同,它们也很难预测。[阿帕奇]
- QuantLib-用于定量金融的免费/开源库。[修改后的BSD]website
- SimSIMD-适用于x86 AVX2,AVX-512,Arm NEON和SVE的矢量距离函数。[Apache2]
- StatsLib-统计分布函数的仅C标头库。[Apache2]website
- SymEngine-快速符号操作库,用C重写SymPy的核心。[麻省理工学院]
- TinyExpr-一个C库,用于从字符串解析和评估数学表达式。[·兹利布]
- Vc-C的SIMD向量类。[BSD]
- Versor-用于几何代数的 (快速) 通用C库,包括欧几里德,射影,保形,时空 (等)。
- Wagyu-用于并集,交点,差和异或的几何运算的通用库。[mapbox-和牛原创]
- Wykobi一个高效,健壮和简单的C库,使用C 2D/3D面向计算几何例程。[麻省理工学院]
- xtensor-一个C 14库,用于多维数组表达式的数值分析,灵感来自NumPy语法。[BSD 3-条款]website
- universal-实现任意posit算术的C 14仅头库。posit数字系统是一个锥形浮点,比IEEE浮点更有效。假设使可重复的计算科学成为可能。[MIT许可证]
内存分配
- Boehm GC-C和C的保守垃圾收集器。[类似于X11]website
- C Smart Pointers-(GNU) C编程语言的智能指针。[麻省理工学院]
- Hoard-适用于Linux,Windows和Mac的快速,可扩展和内存高效的Malloc。[阿帕奇-2.0]website
- jemalloc-强调避免碎片和可扩展并发支持的通用malloc(3) 实现。[BSD]website
- memorySTL兼容的C内存分配器库。[ZLib]
- memory-allocators-自定义内存分配器,以提高动态内存分配的性能。[麻省理工学院]
- mimalloc-一个紧凑的通用分配器,具有出色的性能。[麻省理工学院]
- rpmalloc跨平台无锁线程缓存16字节对齐内存分配器用C实现。[公共域名]
- snmalloc-基于消息传递的高性能分配器。[麻省理工学院]
- TCMalloc-谷歌的快速,多线程的malloc实现。[阿帕奇-2.0]website
- buddy_alloc-具有有限分配成本的C的单个标头伙伴内存分配器。[0BSD]
- tgc-用〜500 LOC编写的C的微型垃圾收集器。[BSD]
多媒体
- GStreamer-用于构造媒体处理组件的图的库。[LGPL]
- libass-用于ASS/SSA字幕格式的便携式字幕渲染器。[ISC]
- libav-库和工具的集合,用于处理多媒体内容,例如音频,视频,字幕和相关元数据。[LGPL v2.1及其他]website
- LIVE555 Streaming Media-使用开放标准协议 (RTP/RTCP,RTSP,SIP) 的多媒体流库。[LGPL]
- libVLClibVLC (VLC SDK) 媒体框架。[GPL]
- MediaInfoLib-方便统一显示视频和音频文件的最相关的技术和标签数据。[BSD]
- QtAv-基于Qt和FFmpeg的多媒体播放框架,轻松编写播放器。[LGPL]website
- SDL: zap: -简单的DirectMedia层。[zlib]website
- SFML: zap: -简单快速的多媒体库。[zlib]website
- TagLib-用于读取和编辑几种流行音频格式的元数据的库。[LGPL/MPL]website
联网
- ada-WHATWG兼容和快速的URL解析器用现代C编写。[阿帕奇-2.0/麻省理工学院]
- ACE-C语言中的OO网络编程工具包。[?麻省理工学院?]
- Boost.Asio: zap: -用于网络和低级I/O编程的跨平台C库。[升压]website
- Boost.Beast: zap: -C ++ 11中基于Boost.Asio构建的HTTP和WebSocket[升压]website
- Breep-基于事件的高级C 14对等库。[EUPL-1.1 (OSI批准)]
- C++ REST SDK-C REST SDK (以前名为Casablanca)。[Apache2]
- RestbedC 11异步RESTful框架。[AGPL]
- Restinio-一个仅标题的C 14库,为您提供嵌入式HTTP/Websocket服务器。[BSD]
- c-ares-用于异步DNS请求的C库。[麻省理工学院]
- cpp-httplib-单个文件C 11仅标头HTTP/HTTPS服务器库。[麻省理工学院]
- cpp-netlib-用于高级网络编程的开源库的集合。[升压]
- cpp-netlib/uri-用于C的URI解析器/生成器库,与RFC 3986和RFC 3987兼容。[升压]
- CppServer-超快速和低延迟异步套接字服务器和客户端C库,支持TCP,SSL,UDP,HTTP,HTTPS,WebSocket协议和10k连接问题解决方案。[麻省理工学院]
- cpr-现代C HTTP请求库,具有简单但功能强大的接口。以Python请求模块为模型。[麻省理工学院]website
- curlcpp-CURL的面向对象C包装 (libcurl)。[麻省理工学院]
- DPDK-用于快速数据包处理的数据平面开发套件,库和驱动程序。[BSD-3-Clause和GPL-2.0]website
- Dyad.c-C的异步网络。[麻省理工学院]
- ENet-可靠的UDP网络库。[麻省理工学院]website
- evpp-C高性能网络与TCP/UDP/HTTP协议。[BSD]
- H2O-优化的HTTP服务器,支持HTTP/1.X和HTTP/2。它也可以用作图书馆。[麻省理工学院]
- HTTP Parser: zap: -C的http请求/响应解析器[麻省理工学院]
- KCP-一种快速可靠的ARQ协议,可帮助应用程序减少网络延迟。[麻省理工学院]
- libcurl-多协议文件传输库。[MIT/X派生许可证]
- libhttpserver-用于创建嵌入式Rest HTTP服务器 (以及更多) 的C库。[LGPL2.1]
- LibmicrohttpdGNU libmicrohttpd是一个小的C库,应该使它容易运行HTTP服务器作为另一个应用程序的一部分。[LGPL v2.1]
- libpcap-用于网络流量捕获的便携式C/C库。[BSD]website
- libquic-从Chromium的QUIC实现中提取的QUIC协议库。[BSD]
- librdkafka-适用于C和C的Apache Kafka客户端库。[BSD-2-Clause]
- libwebsockets-提供客户端和服务器库的轻量级纯C WebSocket实现。[LGPL2.1静态链接异常]website
- Lithium-构建高性能C HTTP服务器,而无需成为C专家。[麻省理工学院]
- lwIP-一个轻量级的TCP/IP堆栈。[修改后的BSD]
- mailiomailio是MIME格式和SMTP,POP3和IMAP协议的跨平台C库。[BSD]
- Mongoose-非常轻量级的web服务器。[GPL2]
- MQTT-C-适用于嵌入式系统和pc的便携式MQTT C客户端。[麻省理工学院]website
- mTCP-用于多核系统的高度可扩展的用户级TCP堆栈。[修改后的BSD]
- MuduoLinux下多线程服务器的C非阻塞网络库。[BSD]
- nghttp2-HTTP/2 C库。[麻省理工学院]website
- nghttp3-用C编写的HTTP/3库。[麻省理工学院]website
- Onion-C中的HTTP服务器库设计为轻量级且易于使用。[Apache2/GPL2]
- PF_RING™-高速数据包处理框架。[LGPL-2.1]website
- PicoHTTPParser-一个微小的,原始的,快速的HTTP请求/响应解析器。[麻省理工学院]
- POCO: zap:-C类库和框架,用于构建在台式机,服务器,移动和嵌入式系统上运行的基于网络和internet的应用程序。[升压]website
- Proxygen-Facebook的C HTTP库的集合,包括一个易于使用的HTTP服务器。[BSD]
- RedPanda-面向开发人员的流数据平台。Kafka API兼容。快10倍。[BSL]
- RakNet-一个跨平台,开源,C网络引擎的游戏程序员。[BSD]
- restclient-cpp-C的简单REST客户端。它为HTTP请求包装libcurl。[麻省理工学院]
- Seasocks-简单,小型,C嵌入式web服务器,支持WebSockets。[BSD]
- tlse-单C文件TLS 1.2/1.3实现,使用tomcrypt作为加密库 [BSD-2-Clause]
- Tufão-建立在Qt之上的C异步web框架。[LGPL2]
- uriparser-严格符合RFC 3986的URI解析和处理库。[BSD-3-Clause]
- uWebSockets-Μ ws是最轻量级,高效和可扩展的WebSocket和HTTP服务器实现之一。[Zlib]
- UCall-基于io_uing的高性能SIMD加速RPC库。[Apache2]
- WAFer-基于c语言的超轻软件平台,用于可扩展的服务器端和网络应用。想想C程序员的node.js。[GPL2]
- Wangle-一个客户端/服务器应用程序框架,用于构建异步、事件驱动的现代C服务。[Apache-2.0]
- wdt-一个嵌入式库 (和命令行工具),旨在通过多个TCP路径尽可能快地在2个系统之间传输数据。[BSD-3-Clause]
- WebSocket++-C /Boost基于Asio的websocket客户端/服务器库。[BSD]
- PcapPlusPlus-一个多平台C网络嗅探和数据包解析和制作框架。[取消许可]
- ZeroMQ-高速,模块化异步通信库。[LGPL3/MPL2]website
Office Open XML
用于解析和操作xlsx,pptx,docx等的库。
- DuckX-用于创建和修改Microsoft word(.docx) 文件的C库。[麻省理工学院]
- FreeXL-一个开源库,用于从电子表格中提取有效数据。[MPL/GPL-2/LGPL-2]
- libxls-从C/C [BSD-2-Clause] 读取二进制Excel文件
- libxlsxwriter-用于创建Excel XLSX文件的C库。[BSD-2-Clause]website
- OpenXLSX-用于读取,编写,创建和修改Microsoft Excel的C库®(.xlsx) 文件。[BSD-3-Clause]
- SimpleXlsxWriter-XLSX文件作家为Microsoft Excel 2007及以上。[zlib]
- XLSX I/O-用于读取和写入的C库。xlsx文件。[麻省理工学院]
用于解析和操作PDF文档的库。
- libharu-用于生成PDF的免费,跨平台,开源软件库。[zlib]
- litePDF-库来创建和编辑PDF文档,使用GDI函数通过设备上下文绘制页面内容。[LGPL v3和zlib]
- MuPDF-一个轻量级的PDF,XPS和电子书查看器。[AGPL/专有]
- PDF-Writer-用于在C [Apache-2.0] 中创建,修改和解析pdf文件的高性能库website
- pdfio-一个简单的C库,用于读取和写入pdf文件。[阿帕奇-2]website
- PDFium-PDF生成和渲染库。[BSD-3-Clause]
- PoDoFo-使用pdf文件格式的库。[LGPL]
- Poppler基于xpdf-3.0代码库的开源多后端PDF渲染库。[GPLv2/GPLv3]
- Xpdf-Xpdf是一个免费的PDF查看器和工具包,包括文本提取器,图像转换器,HTML转换器等。[GPL v2/GPL v3]
- DynaPDF-一个易于使用的PDF生成库。[商业]
物理
动力学仿真引擎
- Box2D-用于游戏的2D物理引擎。[BSD样]
- Bullet-用于游戏的3D物理引擎。[zlib]website
- Chipmunk-一个快速和轻量级的2D游戏物理库。[麻省理工学院]website
- Jolt Physics一个多核友好的刚体物理和碰撞检测库。[麻省理工学院]
- Kratos-用于构建并行,多学科仿真软件的框架,旨在实现模块化,可扩展性和高性能。[BSD]website
- LiquidFun-用于游戏的2D物理引擎。[BSD样]
- Newton Dynamics-用于实时模拟物理环境的集成解决方案。[zlib]
- ODE-开放式动力学引擎-用于模拟刚体动力学的开源高性能库。[BSD和LGPL]
- ofxBox2d-用于Box2D的openFrameworks包装器。[BSD样]
- PhysX-由Nvidia开发的开源实时物理引擎中间件SDK,作为Nvidia GameWorks软件套件的一部分。[BSD-3-Clause]
- PlayRho-交互式物理引擎和库。[Zlib]
- Project Chrono-一个开源的多物理模拟引擎。[BSD-3-Clause]website
- Quantum++-现代C 11量子计算库。[麻省理工学院]
- Simbody-高性能C多体动力学/物理库,用于模拟铰接式生物力学和机械系统,如车辆,机器人和人体骨骼。[Apache2]
- SOFA-SOFA是一个面向实时仿真的开源框架,重点是医学仿真。[LGPL]website
反射
- config-loader一个C 17静态反射框架,从解析配置文件到原生数据结构。[麻省理工学院]
- Better Enums-反射枚举 (字符串,迭代)。单个页眉。[BSD]website
- clReflect-C使用clang反射。[麻省理工学院]
- CPFG-用于反射,回调和脚本绑定的C 03库。[Apache2]
- CPP-Reflection-C使用clang反射。[麻省理工学院]
- Easy Reflection-简单快速的反射序列化解决方案,如Rust,Java或Go。[阿帕奇]
- Magic Enum-仅限C 17库为枚举 (到字符串,从字符串,迭代) 提供静态反射,使用任何枚举类型,而无需任何宏或样板代码。[麻省理工学院]
- magic_get-没有任何宏或样板代码的用户定义类型的std::tuple类似方法。[升压]
- meta-C中的仅标头,非侵入式和无宏运行时反射系统。[麻省理工学院]
- Nameof-仅标题C 17库提供了宏和函数的名称,以获取变量,类型,函数,宏和枚举的简单名称。[麻省理工学院]
- Ponder-用于反射的C 11库。[麻省理工学院]
- reflect-cpp-通过反射进行序列化,包括从结构中自动检索字段名。[麻省理工学院]
- RTTR-用于反射的C 11库。[麻省理工学院]website
- TSMP-用于静态反射的入侵和无宏的C 20库。它使用libclang从源代码中提取反射数据,并通过模板专业化使其可用。[麻省理工学院]
- visit_struct-C中的结构场反射的微型库。[升压]
- Refureku-C 17运行时反射和代码生成库。[麻省理工学院]
正则表达式
- CppVerbalExpressions-C正则表达式变得容易。[麻省理工学院]
- CTRE-编译时PCRE (几乎) 兼容的正则表达式匹配器。[麻省理工学院]
- Hyperscan-Hyperscan是英特尔的高性能多正则表达式匹配库。提供大量regexp的同时匹配 (多达数万个)。通常在DPI库堆栈中使用。[BSD]
- Oniguruma-一个现代和灵活的正则表达式库,支持各种字符编码。[BSD]
- PCRE-受Perl中的正则表达式功能启发的正则表达式C库。[BSD]
- PIRE-Perl不兼容正则表达式库by Yandex可以非常快 (超过400 mb/s)。[LPGL v3.0]
- RE2-使用自动机理论通过有限状态机的正则表达式软件库。[BSD-3-Clause]
- SLRE-用于C/C的超轻Regexp引擎。[GPLv2/专有]
- sregex-非回溯基于NFA/DFA的Perl兼容的正则表达式引擎库,用于匹配大数据流。[BSD]
- SRELL-用于C的Unicode感知正则表达式模板库。[BSD]
机器人技术
- MOOS-IvP-一组开源C模块,用于在机器人平台上提供自主性,特别是自主海上车辆。
- MRPT-移动机器人编程工具包。[BSD]
- PCL-点云库是一个独立的,大规模的,开放的项目,用于2D/3D图像和点云处理。[BSD]website
- Robotics Library (RL)-一个独立的C库,用于机器人运动学,运动规划和控制。[BSD]
- RobWork-用于机器人系统仿真和控制的C库集合。[Apache2]website
- ROS-机器人操作系统提供库和工具,以帮助软件开发人员创建机器人应用程序。[BSD]
- Ruckig-机器人和机器的实时运动生成。[麻省理工学院]website
- YARP (Yet Another Robot Platform)-用于通信和设备接口的库和工具包。[BSD-3-Clause]website
- SPICE Toolkit-用于计算几何信息的库和工具包,用于规划和分析从机器人航天器获得的科学观测结果。[麻省理工学院]website
科学计算
- AMGCL-用于求解具有代数多重网格的大型稀疏线性系统的仅标题C库。[麻省理工学院]
- FFTW-用于在一个或多个维度上计算DFT的C库。[GPL]
- GSL-GNU科学图书馆。[GPL]
- preCICE-用于分区多物理模拟的耦合库 (FSI,CHT等)。[LGPL]website
- TileDB-快速密集和稀疏多维阵列DBMS。[麻省理工学院]website
- Trilinos-高性能PDE求解器。[BSD]
- Torch-一个科学计算框架,广泛支持将gpu放在首位的机器学习算法。[BSD-3-Clause]website
脚本编写
- AngelScript-AngelScript是一种面向游戏的解释/编译脚本语言。[zlib]
- Boost.Python-C库,可实现C和Python编程语言之间的无缝互操作性。[升压]website
- cppimport-直接从Python导入C文件![麻省理工学院]
- CppSharp-将C/C api粘合到高级语言的工具和库。[麻省理工学院]
- ChaiScript-一个易于使用的嵌入式C脚本语言。[BSD]website
- ctypes.sh-bash的外部函数接口。[麻省理工学院]
- CythonCython是Python编程语言和扩展的Cython编程语言 (基于Pyrex) 的优化静态编译器。它使为Python编写C扩展像Python本身一样容易。[阿帕奇]website
- djinni-用于生成跨语言类型声明和接口绑定的工具。[Apache2]
- Duktape-一个可嵌入的Javascript引擎与紧凑的足迹。[麻省理工学院]website
- JavaCpp-Java和本机C之间缺少的桥梁。[Apache2]
- libffi一个可移植的外函数接口库。[麻省理工学院]website
- Lua-用于配置文件和基本应用程序脚本的最小和快速脚本引擎。[麻省理工学院]
- LuaBridge-用于将Lua绑定到C的轻量级,无依赖关系的库。[麻省理工学院]
- LuaBridge3-一个轻量级,无依赖关系的库,用于将Lua,LuaJIT,Luau和Ravi绑定到C。[麻省理工学院]
- luacxx-用于创建Lua绑定的C 11 API。[麻省理工学院]
- MiniScript-脚本语言现代,优雅,易于学习,并且易于嵌入到您自己的C # 或C项目中。[麻省理工学院]
- nbind-神奇的头文件,使您的C库可从JavaScript访问。[麻省理工学院]
- PHP-CPP-一个用C构建PHP扩展的库。[Apache2]website
- pocketpy-C 17仅用于游戏脚本的Python解释器。[麻省理工学院]website
- pybind11-C 11和Python之间的无缝可操作性。[BSD]
- QuickJS-一个小型且可嵌入的Javascript引擎。[麻省理工学院]
- SIP-适用于Python v2和v3的C或C绑定生成器。[GPL]
- sol2-具有高级功能和一流性能的C <-> Lua API包装器。[麻省理工学院]
- SWIG-一个包装器/接口生成器,可让您将c代码链接到Javascript,Perl,PHP,Python,Tcl和Ruby。[GPL/输出未获得许可]website
- txiki.js-一个微小的JavaScript运行时。[麻省理工学院]
- V7-嵌入式JavaScript引擎。[GPL2]
- V8-Google的快速JavaScript引擎,可以嵌入到任何C应用程序中。[BSD]
- v8pp-仅标题库,用于将C类和函数公开到V8中以在JavaScript代码中使用它们。[升压]website
- ChakraCore-Microsoft的JavaScript引擎,可以嵌入到nodejs中。[麻省理工学院]
序列化
- Bitsery-仅标题C二进制序列化库。[麻省理工学院]
- Bond-用于处理模式化数据的开源跨平台框架。[麻省理工学院]
- Boost.Serialization-Boost序列化库。[升压]website
- Cap'n Proto-基于快速数据交换格式和功能的RPC系统。[麻省理工学院]website
- cereal-用于序列化的C 11库。[BSD]
- cista-用于零拷贝高性能 (去) 序列化的C 17库。[麻省理工学院]
- cppcodec-仅标题C 11库,以一致,灵活的API编码/解码base64,base32和十六进制。[麻省理工学院]
- FastBinaryEncoding-快速二进制编码是超快速和通用的序列化解决方案,适用于C,C #,Go,Java,JavaScript,Kotlin,Python,Ruby,Swift。[麻省理工学院]
- FlatBuffers-一个内存高效的序列化库。[Apache2]
- Kaitai Struct-用于描述各种二进制数据结构的声明性语言和用于生成C解析器代码的编译器。[GPLv3 ][麻省理工学院][Apache2]
- iguana-在C 20和C 17中开发的现代,通用且易于使用的序列化引擎。[Apache2]
- MessagePack-高效的二进制序列化格式 “像JSON” 为C和C。[Apache2]website
- mrpt-serialization-将版本化序列化为二进制或文本格式。[BSD]website
- nanopb-ANSI C中的小代码大小协议缓冲区实现。[Zlib]
- protobuf-协议缓冲区-谷歌的数据交换格式[BSD]
- protobuf-c-C中的协议缓冲区实现。[BSD]
- SimpleBinaryEncoding-以二进制格式对低延迟应用程序的应用程序消息进行编码和解码。[Apache2]
- upb-C中的一个小的protobuf实现。[BSD]
- YAS-非常快Y etA notherS erialization库支持二进制/text/json格式。[升压]
- zpp_bits-事实上,最快的现代S Eriization库。只要检查一下this video。
串行端口
- Asio-Asio包括用于以可移植的方式创建和操作串行端口的类。[升压]website
- Boost.Asio-Boost.Asio包括用于以可移植的方式创建和操作串行端口的类。[升压]website
- CSerialPort轻量级跨平台串口库。[LGPL3]
- Libserial串口编程在c语言。[BSD-3-Clause]
- Serial Communication Library跨平台,串口库用C编写。[麻省理工学院]website
排序
- cpp-sort-C 14的排序算法和相关工具。[麻省理工学院]
- pdqsort-模式-击败快速排序。[zlib]
- Timsort-一个模板化的稳定排序功能,它优于基于快速排序的算法,包括std::sort,用于反向或半排序的数据。[麻省理工学院]
- Indiesort-一个排序包装器,它允许对非随机访问容器使用std::sort (& 其他随机访问排序函数),并且还提高了随机访问容器中大/非平凡可复制类型的排序性能和数组。[zLib]website
视频
- libvpx-VP8/VP9编解码SDK。[BSD]
- FFmpeg-一个完整的跨平台解决方案,用于记录,转换和流式传输音频和视频。[LGPL2/GPL2]
- libde265打开h.265视频编解码实现。[LGPL]website
- x265打开h.265视频编解码实现。[GPL2]website
- OpenH264-开源H.264编解码器。[BSD]website
- Theora-一种自由开放的视频压缩格式。[BSD]
- Vireo-一个轻量级和多功能的视频处理库由Twitter。[麻省理工学院]
虚拟机
- CarpVM-C中的 “有趣” VM。让我们看看情况如何。[GPLv3]
- MicroPython-旨在将Python 3.X的实现放在微控制器上。[麻省理工学院]
- TinyVM-用纯ANSI C编写的小型,快速,轻量级的虚拟机。[麻省理工学院]
Web应用程序框架
- Civetweb-提供易于使用,功能强大,具有可选CGI,SSL和Lua支持的C/C嵌入式web服务器。[麻省理工学院]
- C++ REST SDK-使用现代异步C API设计的本机代码中基于云的客户端-服务器通信的Microsoft project。[麻省理工学院]
- CppCMS-一个免费的高性能Web开发框架 (不是CMS)。[LGPLv3]
- CrowCrow是一个用于运行web服务的C微框架。它使用类似于Python的Flask的路由。[BSD]website
- Cutelyst-在Qt之上构建的C Web框架,使用Catalyst (Perl) 框架的简单方法。[LGPLv2.1]website
- Drogon一个基于C 14/17的高性能HTTP应用框架。[麻省理工学院]
- C++ wfrest-C Web框架REST API。[Apache2]
- facil.io-Evented,高性能C web框架,支持HTTP,WebSockets,SSE等。[麻省理工学院]website
- Kore-超快速和灵活的web服务器/框架,用于使用C开发的web应用程序。[ISC]
- libOnion-轻量级库,以帮助您在C编程语言中创建web服务器。[LGPLv3]
- lwan-实验性,可扩展,高性能HTTP服务器。[GPL2]
- oat++-轻,零依赖框架来创建高性能的web服务。[阿帕奇-2.0]website
- PistachePistache是一个用纯C 11编写的C REST框架,没有外部依赖。[Apache2]
- QDjango-一个用C编写的web框架,建立在Qt库之上。在可能的情况下,它会尝试遵循django的API,因此它的名字。[LGPL]
- TreeFrog Framework-基于C和Qt的高速和全栈web应用程序框架,该框架支持HTTP和WebSocket协议 (带有O/R映射)。[BSD]website
- userver-异步C 17框架,具有丰富的抽象和数据库驱动程序集,可快速轻松地创建高效的微服务,服务和实用程序。[阿帕奇-2.0]website
- Wt-用于开发web应用程序的C库。[GPL/专有]
XML
XML是垃圾。真的.没有借口。解析XML对人类来说是讨厌的,甚至对计算机来说也是一场灾难。这种可怕的垃圾没有理由存在。-Linus Torvalds
- Boost.PropertyTree-属性树解析器/生成器,可用于解析XML/JSON/INI/Info文件。[升压]website
- Expat-用C编写的XML解析器库。[麻省理工学院]
- Libxml2-Gnome的XML C解析器和工具包。[麻省理工学院]
- libxml++-C的XML解析器[LGPL2]
- Mini-XML-用ANSI C编写的小型XML解析库。[LGPL2有例外]
- PugiXML-一个轻量级、简单和快速的XML解析器,支持XPath。[麻省理工学院]
- RapidXml-尝试创建最快的XML解析器,同时保留可用性,可移植性和合理的W3C兼容性。[升压]
- TinyXML-一个简单,小巧,最小的C XML解析器,可以轻松集成到其他程序中。[zlib]
- TinyXML2-一个简单,小型,高效的C XML解析器,可以轻松集成到其他程序中。[zlib]
- TinyXML++-一个全新的TinyXML接口,它使用了许多C语言的优点。模板、异常和更好的错误处理。[麻省理工学院]
- Xalan C-使用符合XSLT 1.0标准的样式表转换XML文档的库和命令行程序。[阿帕奇-2.0]website
- Xerces-C++-用C ++ 的可移植子集编写的验证XML解析器。[Apache2]
Yaml
- mini-yaml-1.0 C 11序列化器/解串器的单个标头YAML。[麻省理工学院]
- yaml-cpp-C中的YAML解析器和发射器。[麻省理工学院]
- rapidyaml-Rapid YAML是一个用于解析和发出YAML的C库。[麻省理工学院]
杂项
有用的库或工具不适合上述类别,或者可能只是尚未分类
- access_profiler-计算c程序中成员变量访问次数的工具。[GPL3]
- American fuzzy lop您将获得a.k.a.Afl-fuzz-疯狂的模糊测试工具,在给定时间和最少的示例输入的情况下自动发现错误。[Apache2]
- Argon2-密码哈希Argon2,PHC的获胜者。[CC0/Apache2]
- Better String-C的字符串库的替代方法,该方法功能更强大,并且没有缓冲区溢出问题。还包括一个C包装。[BSD, GPL2]
- Boost.Signals2-被管理的信号和时隙系统的实现。[升压]website
- casacore-一组从aips派生的c核心库。[LGPL]
- CCTZ-使用时区规则在绝对时间和民用时间之间进行转换的C库。[阿帕奇-2.0]
- Cheat Sheets of HackingCPP-用于算法,视图,容器,随机性等的酷作弊表和信息图表。
- Concord-用C编写的Discord API包装库。[麻省理工学院]website
- CPPItertools-基于范围的for循环加载项的灵感来自Python内置和itertools库。[BSD-2-Clause]
- cpp-lazy-用于C 11/14/17/20的快速和容易的懒惰评估库。[麻省理工学院]
- CRCpp-易于使用和快速的C CRC库。[BSD-3-Clause]
- cxx-prettyprint-一个漂亮的C容器打印库。[升压]
- date-基于C 11/14/17的日期和时间库标题。[麻省理工学院]website
- D++ (DPP)-一个轻量级,高性能和可扩展的C库,用于创建不和谐的机器人。[Apache2]website
- DynaMix-一个允许您在运行时撰写和修改对象的库。[麻省理工学院]
- emio-一个安全快速的高级和低级字符输入/输出库。[麻省理工学院]
- faker-cxx-C 20 Faker库,用于生成用于测试和开发的伪造 (但真实) 数据。[麻省理工学院]
- FastFormat-受log4j和Pantheios启发的快速,安全的C格式。[简化的BSD]
- fast_io-C 20的显著更快的输入/输出。[麻省理工学院]
- fccf-一个命令行工具,递归搜索目录以查找与搜索字符串匹配的C/C源代码。[麻省理工学院]
- {fmt}: zap: -适用于C的小型,安全且快速的格式化库。[简化的BSD]website
- gcc-poison-一个简单的头文件,供开发人员禁止应用程序中不安全的C/C函数。
- happly-用于PLY文件格式的仅C标头解析器。解析。高兴地ply![麻省理工学院]
- hedley-一个C/C头文件,旨在平滑一些特定于平台的烦恼。website
- icecream-cpp-用于调试目的的小型打印库。[麻省理工学院]
- inja-现代C的模板引擎。[麻省理工学院]
- Jinja2С++-几乎完全符合模板引擎的实现。website
- jwt-cpp-用于在C中创建和验证JSON web令牌的仅标题库。[麻省理工学院]
- Kangaru-C 11和C 14的依赖注入容器。[麻省理工学院]
- Klib-通用算法和数据结构的小型和轻量级实现。[麻省理工学院]
- libcpuid-用于x86 CPU检测和特征提取的小型C库。[BSD]
- libenvpp-用于类型安全环境变量解析的现代C库。[阿帕奇-2.0]
- libevil-邪恶的许可证管理员.[GPLv3]
- libnih-一个轻量级的C函数和结构库。[GPL2.1]
- libsigc++-用于标准C的类型安全回调系统。[LGPL]website
- libusb-一个通用的USB库,允许便携式访问USB设备。[LGPL2]
- Mach7-C的模式匹配库。[BSD]
- mio-用于内存映射文件IO的跨平台C 11仅头库。[麻省理工学院]
- PEGTL解析表达式语法模板库。[麻省理工学院]
- pprint-漂亮的打印机为现代C.[麻省理工学院]
- pspsdk-用于PSP自制开发的开源SDK。[BSD/GNU GPL3]
- QtVerbalExpressions-这个Qt lib基于C VerbalExpressions库。[麻省理工学院]
- RapidFuzz在C中使用Levenshtein距离进行快速模糊字符串匹配。[麻省理工学院]website
- Remote Call FrameworkC的进程间通信框架。[GPL2/专有]
- scnlib-scanf为现代C。[阿帕奇-2.0]website
- Scintilla一个免费的源代码编辑组件。[麻省理工学院]
- SDS简单的动态字符串库为C。[BSD]
- semver.c-一个semver解析器,并在ANSI C中呈现。[麻省理工学院]
- sigslot-C信号/插槽库。[公共域名]
- SimpleSignal-高性能C 11信号。[公共域名]
- Stage-移动机器人模拟器。[GPL2]
- stb: zap: -一系列用于C/C的单文件库。[公共域名]
- stdman-一个工具,解析存档的HTML文件cppreference并为基于Unix的系统生成groff格式的手册页。[麻省理工学院]
- StringZilla-字符串库的哥斯拉,拆分,排序和洗牌大型文本数据集的速度比你可以说 “东京塔”。[阿帕奇-2.0]
- StrTk一个由高性能字符串处理例程组成的C库。[麻省理工学院]
- tgbotxx-电报Bot C库。[麻省理工学院]
- Tulip Indicators-一个包含100多个财务技术分析指标的C库。[LGPL]
- ub-canaries-C/C程序的集合,试图让编译器利用未定义的行为。
- value-category-cheatsheet用于左值、右值等的PDF cheatsheet。[Jank copyleft]
- VarTypes-一个功能丰富的面向对象的框架,用于在C/qt4中管理变量。[LGPL]
- Wildcards-使用通配符实现匹配的一个简单的C标头模板库。[BSL-1.0]
- ZBar-一个条形码扫描仪库,它允许扫描照片/图像/视频流的条形码并返回它们的值。[LGPL2]
- ZXing-用Java实现的开源多格式1D/2D条形码图像处理库,具有其他语言的端口。[阿帕奇]
Software
用于创建开发环境的软件。
编译器
C或C编译器列表
- 8cc-一个小型C编译器。
- c-一次编译并执行C “脚本”![麻省理工学院]
- Clang-LLVM的C编译器。支持C 11/14/1z c11。由LLVM团队开发。[NCSA]
- GCC-GNU编译器集合。支持C 11/14/1z C11和OpenMP。[GNU GPL3]
- PCC-一个非常古老的C编译器。支持c99。
- Intel C++ Compiler-由英特尔开发。
- LLVM-模块化和可重用编译器和工具链技术的集合。
- Microsoft Visual C++MSVC,由微软开发。
- Open WatCom-Watcom C,C和Fortran交叉编译器和工具。[Sybase Open Watcom公共许可证]
- Oracle Solaris Studio-用于SPARC和x86的C,C和Fortran编译器。支持C 11。在Linux和Solaris上可用。[OTN开发人员许可证]
- TCC-微小的C编译器。[LGPL]
在线编译器
在线C ++ 或C ++ 编译器列表
- codechef-一个简单的在线编译器CodeChef
- codepad-一个在线编译器/解释器和一个简单的协作工具。
- coliru-在线编译器/shell,支持各种C编译器。
- Compiler Explorer-一个具有程序集输出的交互式编译器。
- CompileOnline-在Linux上编译并在线执行C ++。
- Ideone-一个在线编译器和调试工具,允许您编译源代码并以60多种编程语言在线执行。
- Programiz-面向学习者和开发人员的在线编译器。
- repl.it-一个强大而简单的工具和平台,教育工作者,学习者和开发人员。
- Rextester-在线编译器,它提供了几个编译器 (Clang,GCC,MSVC) 和几个编辑器。
- Try It Online-TIO是一个在线解释器家族,用于不断增长的实用和娱乐编程语言列表。
- Wandbox-一个在线Clang/GCC编译器与Boost可用。
- paiza.io-具有多文件支持功能,Github(gist) 集成和协同编辑的在线C/C编译器。
- InterviewBit-一个简单和易于使用的在线C编译器。
调试器
C或C调试器列表
- Comparison of debuggers-来自维基百科的调试器列表。
- GDB-GNU调试器。
- LLDB-LLDB调试器。
- Metashell-包含MDB元调试器的交互式模板元编程shell。
- Valgrind-用于内存调试,内存泄漏检测和分析的工具。
- x64dbg-用于windows的开源x64/x32调试器。
集成开发环境
C或C标称ide的列表。
- Anjuta DevStudio-The GNOME IDE.[GPL3]
- AppCode-基于jetbrains的IntelliJ idec平台构建的用于objective-c,C,C和JavaScript开发的IDE。
- Cevelop-基于Eclipse CDT的跨平台C和C IDE,带有额外的插件。
- CLion-来自JetBrains的跨平台C和C IDE。
- Code::Blocks-一个免费的C,C和Fortran IDE。
- CodeLite-另一个跨平台,免费的C和C IDE。[GPL2,但插件除外]
- color_coded-用于基于libclang的突出显示的vim插件。[麻省理工学院]
- Dev-C++-便携式C/C 11 IDE。
- Eclipse CDT-基于Eclipse平台的全功能C和C IDE。
- Embarcadero Dev-CPP-预装了新主题和现代编译器的Dev-C分支。[GPLv2]website
- Geany-小,快速,跨平台的IDE。[GPL]
- IBM VisualAge-来自IBM的计算机集成开发环境系列。
- Irony-mode-由libclang提供支持的Emacs的C/C次要模式。
- juCi++-跨平台,轻量级的C IDE与libclang集成。[麻省理工学院]
- KDevelop-一个免费的开源IDE。
- Microsoft Visual Studio-来自Microsoft的IDE。
- Microsoft Visual Studio Code: zap: -来自Microsoft的开源IDE。[麻省理工学院]website
- NetBeans-一个主要使用Java开发的IDE,但也可以使用其他语言,特别是PHP,C/C和html5。
- Qt Creator: zap: -跨平台的C,JavaScript和QML IDE,它是Qt SDK的一部分。[GPL3例外]website
- rtags-一个c/c客户端/服务器索引器,用于与基于clang的emacs集成。
- Xcode由Apple开发。
- YouCompleteMe-YouCompleteMe是Vim的快速,即类型,模糊搜索代码完成引擎。
- cquery-用于vscode,emacs,vim等的C代码完成引擎。
- C Playground - Online C Programming IDE-一个在线IDE来练习C编程,您可以在线编写,编辑和运行代码。
构建系统
- Bazel-来自Google的多语言,快速且可扩展的构建系统。[阿帕奇]
- Bear-为clang工具生成编译数据库的工具。[GPLv3]
- Buck-一个快速构建系统,鼓励在各种平台和语言 (包括在Facebook开发和使用的C) 上创建小型可重用模块。用Java写的。[阿帕奇]
- build2-跨平台构建,打包和依赖管理工具链,用于开发和打包C/C项目。[麻省理工学院]
- Ccache-一个快速的C/C编译器缓存。[GPLv3]
- clib-C编程语言的包管理器。[麻省理工学院]
- CMake-跨平台的免费和开源软件,用于使用独立于编译器的方法管理软件的构建过程。[BSD]
- Cget-C让包检索。[升压]website
- Conan-C/C包管理器,开源。[麻省理工学院]
- CPM-一个基于cmanager和Git的C包管理器。
- FASTBuild-高性能,开源构建系统,支持高度可扩展的编译,缓存和网络分发。
- Hunter-C使驱动跨平台包管理器为C。[BSD-2]
- MesonBuild-开源构建系统既要非常快,更重要的是要尽可能地用户友好。
- Ninja-一个专注于速度的小型构建系统。
- Sccache-用于C/C的快速编译器缓存,具有跨平台支持和云支持的存储选项。
- Scons-配置了Python脚本的软件构建工具。
- Sconsolidator-Scons为Eclipse CDT构建系统集成。
- Spack-灵活的软件包管理器,支持多个版本、配置、平台和编译器。[阿帕奇-2.0/麻省理工学院]
- SW-跨平台C (和其他langs) 构建系统和包管理器,有很多可用的包。[GPLv3]
- tundra-高性能代码构建系统,即使对于非常大的软件项目,也可以提供最佳的增量构建时间。
- tup-基于文件的生成系统,在后台监视更改的文件。
- Premake-一个配置了Lua脚本的工具,用于在Windows、Mac OS X和Linux中为Visual Studio、GNU Mac、Xcode、Code::Blocks等生成项目文件。
- Vcpkg-适用于Windows,Linux和MacOS的C库管理器。[麻省理工学院]
- waf-基于Python的框架,用于配置,编译和安装应用程序。[BSD]website
- XMake-基于Lua的C/C跨平台构建实用程序。[阿帕奇]
静态代码分析
通过代码分析提高质量和减少缺陷的工具列表
- Cppcheck-静态C/C代码分析工具。-source
- CppDepend-通过分析和可视化代码依赖关系,定义设计规则,进行影响分析以及比较不同版本的代码,简化管理复杂的C/C代码库。
- cpplint-遵循Google的C样式指南的C样式检查器。
- PVS-Studio-用C,C和C # 编写的程序源代码中的错误检测工具。
- cpp-dependencies-检查C # 包含依赖关系的工具 (以.dot格式创建的依赖关系图)。[阿帕奇]
- include-what-you-use-用于clang分析的工具包括在C和C源文件中。website
- Infer-用于Java,C和objective-c的静态分析器。[BSD]
- OCLint-一个静态源代码分析工具,用于提高C,C和objective-c的质量并减少缺陷。-source
- Clang Static Analyzer-一个源代码分析工具,可以发现C,C和objective-c程序中的错误。
- Linticator-Eclipse CDT集成的Pc-/FlexeLint。
- IKOS静态分析仪对基于C/C理论的抽象解释。[NOSA 1.3]
- List of tools for static code analysis-来自维基百科的静态代码分析工具列表。
- OptView2-检查错过的Clang优化。
- Trunk-用于检查,测试,合并和监视代码的工具包。
编码样式工具
- Artistic Style-格式化C/C #/obj-c/Java代码的工具。也被称为astyle。
- ClangFormat-格式化C/obj-c代码的工具。
- Clang-Tidy-基于Clang的C linter工具。
- EditorConfig-EditorConfig有助于在不同的编辑器和ide中保持一致的编码风格。
- Uncrustify-代码美化器。
Resources
各种资源,如书籍,网站和文章,以提高您的C开发技能和知识。
API设计
文章
神奇的C相关文章
- CppCon 2023 Presentation Materials-CppCon 2023演示材料。
- CppCon 2022 Presentation Materials-CppCon 2022演示材料。
- CppCon 2021 Presentation Materials-CppCon 2021演示材料。
- CppCon 2020 Presentation Materials-CppCon 2020演示材料。
- CppCon 2019 Presentation Materials-CppCon 2019演示材料。
- CppCon 2018 Presentation Materials-CppCon 2018演示材料。
- CppCon 2017 Presentation Materials-CppCon 2017演示材料。
- CppCon 2016 Presentation Materials-CppCon 2016演示材料。
- CppCon 2015 Presentation Materials-CppCon 2015演示材料。
- CppCon 2014 Presentation Materials-CppCon 2014演示材料。
- C++Now 2023 Presentations-在C上提交的演示材料现在2023。
- C++Now 2022 Presentations-在C上提交的演示材料现在2022。
- C++Now 2021 Presentations-在C上提交的演示材料现在2021。
- C++Now 2019 Presentations-在C上提交的演示材料现在2019。
- C++Now 2018 Presentations-在C上提交的演示材料现在2018。
- C++Now 2017 Presentations-在C上提交的演示材料现在2017。
- C++Now 2016 Presentations-在C上提交的演示材料现在2016。
- C++Now 2015 Presentations-在C上提交的演示材料现在2015。
- C++Now 2014 Presentations-在C上提交的演示材料现在2014。
- C++Now 2013 Presentations-现在2013在C提交的演示材料。
- C++Now 2012 Presentations-在C上提交的演示材料现在2012。
图书
神奇的C或C相关的书籍。
- List of Free C or C++ Books
- Free C Books-vhf/自由编程-书籍/C。
- Free C++ Books-vhf/自由编程-书籍/C。
- cppbestpractices-C最佳实践的协作集合。
编码标准
编码风格
- C++ Core Guidelines-“官方” 一套C指南,由C的作者审查。
- C++ Dos and Don'ts-Chromium项目> 对于开发人员> 编码风格> C Dos和Don'ts。
- google-styleguide-Google发起的开源项目的风格指南。
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- LLVM Coding Standards
播客
会谈
- C++ Conferences-C会议目录
- CppCon Talks: zap: -C会议。
- Quick game development with C++11/C++14-CppCon Vittorio Romeo的2014演讲.
- Presentation on Hana for C++Now 2015
- Meeting Cpp-会议C Youtube频道
视频
精彩的C或C相关视频。
- List of C or C++ YouTube Videos
- Awesome C Programming Tutorials in Hi Def [HD]-为初学者和新程序员提供的详细c语言编程教程的集合。
- C++-通过VoidRealms.
- C++ Qt Programming-通过VoidRealms.
- C++ Programming Tutorials Playlist-TheNewBoston官方Buckys C编程教程播放列表。
- C++ Programming Tutorials from thenewboston-这些都是thenewboston的C编程教程。
- C++ GUI with Qt Playlist-带有Qt教程的thenewboston C GUI的官方播放列表。
- Caleb Curry's C Programming Tutorials-C编程教程的所有功能于一体的播放列表。
- C Programming Tutorials-所有的enewboston的C编程教程都在这里。
- Bo Qian's playlist-Boost库,C标准库,现代C,高级C,高级STL,...
- The Cherno's C++ Playlist-广泛的C系列教程由切尔诺。
网站
有用的C或C相关网站。
- Standard C++: zap: -关于标准C的新闻、现状和讨论。
- Build Bench-比较C版本。
- Quick Bench-快速C基准测试。
- CppConC会议。
- C++ reference-C和C语言和标准库的完整在线参考。
- C++ by Example-通过示例学习C。
- cplusplus.com-C资源网络。
- C FAQ-C常见问题。
- C++ FAQ-C常见问题。
- C++ FQA Lite-C经常被质疑的答案。
- C++ Quiz-一个简单的在线测验,你可以用它来测试你的C编程语言的知识。
- Guru of the Week-由Herb Sutter创建和编写的一系列常规C编程问题。
- Meeting C++
- PVS-Studio’s challenge-Pvs-studio的C测验,要求您在开源项目的代码片段中查找错误。
- Udemy C++ Courses and Tutorials
- C++ Hints-每个工作日都提示最常见的C错误以及pvs-studio团队解决这些错误的方法。
- C++ tutorial-一个用户排名的在线教程银行网站显示多个课程,以学习C。
- C++ Tutorial for Beginners-由训练有素的专家策划的C综合教程。
- cppexpert.online-通过改进具有某些问题或不良实践的代码片段来学习最佳C实践。
网络日志
有用的C或C相关的博客。
- Coding For Speed-编码速度点COM,减少执行时间。
- Eric Niebler
- Sticky Bits
- Paul Fultz II's Blog
- ridiculousfish-它会优化吗?
- Embedded in Academia
- Simplify C++
- Fluent C++
- Bartek's Coding Blog
- Kenny Kerr
- Sutter’s Mill
- Vorbrodt's C++ Blog
- foonathan::blog()
- C++ Team Blog-来自Microsoft Visual C团队的开发博客
其他令人敬畏的项目
收集有用的代码,片段,...
- algorithms-C中的算法和数据结构。
- c-algorithmsC算法库。
- 30 Seconds of C++
Other Awesome Lists
其他令人惊讶的真棒列表
- lists-在GitHub上策划的 (真棒) 列表列表。
- awesome-awesomeness-一份令人敬畏的精选清单。
- awesome: zap: -精选的清单。
- C++ links-C资源的分类列表。
- Awesome C++-LibHunt的镜子.
- Awesome C1
- Awesome C2
- Awesome Modern C++-现代C的资源集合。
- AwesomePerfCpp-精选的C/C性能优化资源列表。
- free-programming-books-免费提供的编程书籍列表。
- Inqlude-Qt库存档。
- papers-we-love-计算机科学界的论文进行阅读和讨论。
- awesome-algorithms-一个精选的学习和/或练习算法的地方列表。
- awesome-hpp-精选的列表,仅用于标题的C库。
- awesome-talks-大量的屏幕广播,用户组聚会和会议谈话的录音。
- Projects-任何人都可以用任何编程语言解决的实际项目列表。
- Awesome interview questions-最流行技术的面试问题列表列表,包括C和C。
- nothings/single_file_libs: zap: -单文件C/C库的列表。
Jobs
- 此列表当前为空,但您可以通过打开合并请求来添加此列表。
Sponsors
- 如果您有兴趣赞助此回购,请与我们联系。您公司的名称和徽标将在此处突出显示。
Contributing
请快速浏览一下contribution guidelines有关详细信息。感谢所有contributors;你摇滚!
