An open API service indexing awesome lists of open source software.

awesome-cpp

A collaborative list of awesome cpp resources. Feel free to contribute!
https://github.com/alwayrun/awesome-cpp

Last synced: 3 days ago
JSON representation

  • 音频

    • Speex - 免费编解码器,为Opus所废弃. [BSD]
    • Maximilian - C++音频和音乐数字信号处理库. [MIT]
    • Tonic - C++易用和高效的音频合成. [Unlicense]
  • XML

    • TinyXML++ - TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理. [MIT]
    • Expat - 用C语言编写的xml解析库. [MIT]
    • Expat - 用C语言编写的xml解析库. [MIT]
    • TinyXML2 - 简单快速的C++CML解析器,可以很容易集成到其它项目中. [zlib]
  • 多项混杂

    • googlemock - 编写和使用C++模拟类的库. [BSD]
    • casacore - 从aips++ 派生的一系列C++核心库. [LGPL]
    • Remote Call Framework - C++的进程间通信框架. [GPLv2/Commercial]
    • libusb - 允许移动访问USB设备的通用USB库. [LGPLv2]
    • SLDR - 超轻的DNS解析器. [GPLv2/Commercial]
    • googlemock - 编写和使用C++模拟类的库. [BSD]
    • C++ Format - C++的小型,安全和快速格式化库. [BSD]
    • casacore - 从aips++ 派生的一系列C++核心库. [LGPL]
    • cxx-prettyprint - 用于C++容器的打印库. [Boost]
    • gcc-poison - 帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件.
    • libcpuid - 用于x86 CPU检测盒特征提取的小型C库. [BSD]
    • libevil - 许可证管理器. [GPLv3]
    • Serial Communication Library - C++语言编写的跨平台,串口库. [MIT]
    • SDS - C的简单动态字符串库. [BSD]
    • SLRE - 超轻的正则表达式库. [GPLv2/Commercial]
    • Stage - 移动机器人模拟器. [GPLv2]
    • VarTypes - C++/Qt4功能丰富,面向对象的管理变量的框架. [LGPL]
    • CppVerbalExpressions - 易于使用的C++正则表达式. [MIT]
    • QtVerbalExpressions - 基于C++ VerbalExpressions 库的Qt库. [MIT]
    • PHP-CPP - 使用C++来构建PHP扩展的库. [Apache2] [website](http://www.php-cpp.com/)
  • GUI

    • Ncurses - 终端用户界面. [MIT]
    • libRocket - C++ HTML/CSS 游戏接口中间件. [MIT]
    • MyGUI - 快速,灵活,简单的GUI. [MIT]
    • OtterUI - 嵌入式系统和互动娱乐软件的用户界面开发解决方案. [MIT]
    • CEGUI - 很灵活的跨平台GUI库.
    • CEGUI - 很灵活的跨平台GUI库.
    • gtkmm - 用于受欢迎的GUI库GTK+的官方C++接口. [LGPL]
    • imgui - 拥有最小依赖关系的立即模式图形用户界面. [MIT]
    • libRocket - C++ HTML/CSS 游戏接口中间件. [MIT]
    • MyGUI - 快速,灵活,简单的GUI. [MIT]
  • JSON

    • libjson - 轻量级的JSON库. [?]
    • frozen - C/C++的JSON解析生成器. [GPL & GPLv2]
    • Jansson - 进行编解码和处理JSON数据的C语言库. [MIT]
    • jbson - C++14中构建和迭代BSON data,和JSON 文档的库. [Boost]
    • JeayeSON - 非常健全的C++ JSON库,只包含头文件. [BSD]
    • JSON++ - C++ JSON 解析器. [MIT]
    • json11 - 一个迷你的C++11 JSON库. [MIT]
    • jute - 非常简单的C++ JSON解析器. [PublicDomain]
    • libjson - C语言中的JSON解析和打印库,很容易和任何模型集成. [LGPL]
    • PicoJSON - C++中JSON解析序列化,只包含头文件. [BSD]
    • QJson - 将JSON数据映射到QVariant对象的基于Qt的库. [LGPLv2]
    • RapidJSON - 用于C++的快速JSON 解析生成器,包含SAX和DOM两种风格的API. [MIT]
    • YAJL - C语言中快速流JSON解析库. [ISC]
  • 机器学习

    • sofia-ml - 用于机器学习的快速增量算法套件. [Apache2]
    • Caffe - 快速的神经网络框架. [BSD]
    • CCV - 以C语言为核心的现代计算机视觉库. [BSD]
    • Recommender - 使用协同过滤进行产品推荐/建议的C语言库. [BSD]
    • SHOGUN - Shogun 机器学习工具. [GPLv3]
  • 数学

    • blaze - 高性能的C++数学库,用于密集和稀疏算法. [BSD]
    • ceres-solver - 来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题. [BSD]
    • cml - 用于游戏和图形的免费C++数学库. [Boost]
    • GMP - 用于个高精度计算的C/C++库,处理有符号整数,有理数和浮点数. [LGPLv3 and GPLv2]
    • Armadillo - 高质量的C++线性代数库,速度和易用性做到了很好的平衡。语法和MatlAB很相似. [MPL2]
    • ceres-solver - 来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题. [BSD]
  • 构建系统

    • Scons - 使用Python scipt 配置的软件构建工具.
    • Ninja - 专注于速度的小型构建系统.
    • Bear - 用于为clang工具生成编译数据库的工具.
    • Biicode - 基于文件的简单依赖管理器.
    • CPM - 基于CMake和Git的C++包管理器.
    • tundra - 高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数.
    • CMake - 跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程. [BSD]
  • 站点

  • 框架

    • Qt - 跨平台的应用程序和用户界面框架. [LGPL]
    • Reason - 跨平台的框架,使开发者能够更容易地使用Java,.Net和Python,同时也满足了他们对C++性能和优势的需求. [GPLv2]
    • Dlib - 使用契约式编程和现代C++科技设计的通用的跨平台的C++库. [Boost]
    • STLport - 是STL具有代表性的版本. [Free]
    • MiLi - 只含头文件的小型C++库. [Boost]
    • Cxxomfort - 轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中. [MIT]
    • Ultimate++ - C++跨平台快速应用程序开发框架. [BSD]
    • ASL - Adobe源代码库提供了同行的评审和可移植的C++源代码库. [MIT]
    • Boost - 大量通用C++库的集合. [Boost] [website](http://www.boost.org/)
    • ASL - Adobe源代码库提供了同行的评审和可移植的C++源代码库. [MIT]
    • BDE - 来自于BDE讯实验室的开发环境. [MIT]
    • EASTL - EA-STL公共部分. [BSD]
    • ffead-cpp - 企业应用程序开发框架. [Apache2]
    • Folly - 由Facebook开发和使用的开源C++库. [Apache2]
    • JUCE - 包罗万象的C++类库,用于开发跨平台软件. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial] [website](http://www.juce.com/)
    • libPhenom - 用于构建高性能和高度可扩展性系统的事件框架. [Apache2]
    • LibSourcey - 用于实时的视频流和高性能网络应用程序的C++11事件IO. [LGPL]
    • LibU - C语言写的多平台工具库. [BSD]
    • STLport - 是STL具有代表性的版本. [Free]
    • Yomm11 - C++11的开放multi-methods. [Boost]
  • 压缩

    • LZHAM - 无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多. [BSD]
    • bzip2 - 一个完全免费,免费专利和高质量的数据压缩. [BSD]
    • ZLib - 非常紧凑的数据流压缩库. [zlib]
    • doboz - 能够快速解压缩的压缩库. [zlib]
    • PhysicsFS - 对各种归档提供抽象访问的库,主要用于视频游戏,设计灵感部分来自于Quake3的文件子系统. [zlib]
    • LZMAT - 及其快速的实时无损数据压缩库. [GPL]
    • bzip2 - 一个完全免费,免费专利和高质量的数据压缩. [BSD]
    • ZZIPlib - 提供ZIP归档的读权限. [MPL/LGPL]
    • miniz - 单一的C源文件,紧缩/膨胀压缩库,使用zlib兼容API,ZIP归档读写,PNG写方式. [Unlicense]
  • 调试

    • CppUnit - 由JUnit移植过来的C++测试框架. [LGPLv2]
    • MemTrack - 用于C++跟踪内存分配.
    • UnitTest++ - 轻量级的C++单元测试框架. [MIT/X Consortium license]
    • googletest - 谷歌C++测试框架. [BSD]
    • microprofile - 跨平台的网络试图分析器. [PublicDomain]
    • Catch - 一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发. [Boost]
    • ig-debugheap - 用于跟踪内存错误的多平台调试堆. [BSD]
    • libtap - 用C语言编写测试. [GPLv2]
    • MemTrack - 用于C++跟踪内存分配.
    • Remotery - 用于web视图的单一C文件分析器. [Apache2]
  • 图形

    • Cairo - 支持多种输出设备的2D图形库. [LGPLv2 or Mozilla MPL]
    • bgfx - 跨平台的渲染库. [BSD]
    • Horde3D - 一个小型的3D渲染和动画引擎. [EPL]
    • magnum - C++11和OpenGL 2D/3D 图形引擎. [MIT] [website](http://mosra.cz/blog/magnum.php)
    • Skia - 用于绘制文字,图形和图像的完整的2D图形库. [bSD] [webpage](https://sites.google.com/site/skiadocs/home)
    • urho3d - 跨平台的渲染和游戏引擎. [Many different, mostly MIT]
  • 视频

  • 静态代码分析

    • include-what-you-use - 使用clang进行代码分析的工具,可以#include在C和C++文件中.
    • Cppcheck - 静态C/C++代码分析工具. - [source](https://github.com/danmar/cppcheck)
  • API设计

  • 图书

  • 博客

  • 人工智能

    • Neu - C++11框架,编程语言集,用于创建人工智能应用程序的多用途软件系统. [BSD]
    • btsk - 游戏行为树启动器工具. [zlib]
  • 标准库

  • 密码学

    • GnuPG - OpenPGP标准的完整实现. [GPL]
    • Libgcrypt
    • LibreSSL - 免费的SSL/TLS协议,属于2014 OpenSSL的一个分支. [?]
    • Nettle - 底层的加密库. [LGPL]
    • Bcrypt - 一个跨平台的文件加密工具,加密文件可以移植到所有可支持的操作系统和处理器中.
    • Libgcrypt
    • libsodium - 基于NaCI的加密库,固执己见,容易使用. [ISC]
    • LibTomCrypt - 一个非常全面的,模块化的,可移植的加密工具. [WTFPL]
    • Nettle - 底层的加密库. [LGPL]
    • Tiny AES128 in C - 用C实现的一个小巧,可移植的实现了AES128ESB的加密算法. [PublicDomain]
    • Crypto++ - 一个有关加密方案的免费的C++库. [Boost]
  • 数据库

    • LMDB - 符合数据库四大基本元素的嵌入键值存储. [OpenLDAP]
    • hiberlite - 用于Sqlite3的C++对象关系映射. [BSD]
    • Hiredis - 用于Redis数据库的很简单的C客户端库. [BSD]
    • LevelDB - 快速键值存储库. [BSD]
    • RocksDB - 来自Facebook的嵌入键值的快速存储. [BSD]
  • 并发性

    • OpenCL - 并行编程的异构系统的开放标准.
    • Bolt - 针对GPU进行优化的C++模板库. [Apache2]
    • C++React - 用于C++11的反应性编程库. [Boost]
    • Intel TBB - Intel线程构件块. [GPLv2 with runtime exception]
    • Libclsph - 基于OpenCL的GPU加速SPH流体仿真库. [MIT]
    • VexCL - 用于OpenCL/CUDA 的C++向量表达式模板库. [MIT]
  • 国际化

    • gettext - GNU `gettext'. [GPLv2]
    • libiconv - 用于不同字符编码之间的编码转换库. [GPL]
    • gettext - GNU `gettext'. [GPLv2]
  • 日志

    • templog - 轻量级C++库,可以添加日志到你的C++应用程序中. [Boost]
    • easyloggingpp - C++日志库,只包含单一的头文件. [MIT] [website](http://easylogging.org/)
    • templog - 轻量级C++库,可以添加日志到你的C++应用程序中. [Boost]
  • 网络

    • POCO - 用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统. [Boost] [website](http://pocoproject.org/)
    • ACE - C++面向对象网络变成工具包. [?MIT?]
    • Casablanca - C++ REST SDK. [Apache2]
    • Dyad.c - C语言的异步网络. [MIT]
    • Mongoose - 非常轻量级的网络服务器. [GPLv2]
    • Muduo - 用于Linux多线程服务器的C++非阻塞网络库. [BSD]
    • Onion - C语言HTTP服务器库,其设计为轻量级,易使用. [Apache2/GPLv2]
    • Tufão - 用于Qt之上的C++构建的异步Web框架. [LGPLv2]
    • WebSocket++ - 基于C++/Boost Aiso的websocket 客户端/服务器库. [BSD]
  • 科学计算

    • GSL - GNU科学库. [GPL]
    • FFTW - 用一维或者多维计算DFT的C语言库. [GPL]
  • 在线编译器

    • coliru - 在线编译器/shell, 支持各种C++编译器.
    • CompileOnline - Linux上在线编译和执行C++程序.
    • codepad - 在线编译器/解释器,一个简单的协作工具.
    • coliru - 在线编译器/shell, 支持各种C++编译器.
  • Web应用框架

    • Kore - 使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架. [ISC]
    • Crow - 一个C++微型web框架(灵感来自于Python Flask). [BSD]
    • QDjango - 使用C++编写的,基于Qt库的web框架,试图效仿Django API,因此得此名. [LGPL]
  • 代码风格

  • 集成开发环境

    • IBM VisualAge - 来自IBM的家庭计算机集成开发环境.
    • YouCompleteMe - 一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎.
    • Irony-mode - 由libclang驱动的用于Emacs的C/C++微模式.
    • rtags - C/C++的客户端服务器索引,用于 跟基于clang的emacs的集成.
    • Xcode - 由苹果公司开发.
  • 其它Awesome项目

  • 脚本

    • V8 - 谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中. [BSD]
    • V8 - 谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中. [BSD]
    • luacxx - 用于创建Lua绑定的C++ 11 API. [MIT]
    • V7 - 嵌入式的JavaScript 引擎. [GPLv2]
  • 编译器

  • 游戏引擎

    • Grit - 社区项目,用于构建一个免费的游戏引擎,实现开放的世界3D游戏. [MIT]
    • Polycode - C++实现的用于创建游戏的开源框架(与Lua绑定). [MIT]
    • Cocos2d-x - 一个跨平台框架,用于构建2D游戏,互动图书,演示和其他图形应用程序. [Commercial?]
    • Grit - 社区项目,用于构建一个免费的游戏引擎,实现开放的世界3D游戏. [MIT]
    • Irrlicht - C++语言编写的开源高性能的实时3D引擎. [zlib]
  • 图像处理

    • CImg - 用于图像处理的小型开源C++工具包. [Own LGPL or GPL]
    • CxImage - 用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K. [zlib]
    • MagickWnd - ImageMagick程序的C接口. [Apache 2.0]
    • CxImage - 用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K. [zlib]
    • OpenCV - 开源计算机视觉类库. [BSD]
    • VIGRA - 用于图像分析通用C++计算机视觉库. [MIT X11]
  • 多媒体

    • LIVE555 Streaming Media - 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库 (RTP/RTCP, RTSP, SIP). [LGPL]
    • libVLC - libVLC (VLC SDK)媒体框架. [GPL]
    • LIVE555 Streaming Media - 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库 (RTP/RTCP, RTSP, SIP). [LGPL]
    • QtAv - 基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器. [LGPL] [website](http://wang-bin.github.io/QtAV/)
  • 机器人学

    • RobWork - 一组C++库的集合,用于机器人系统的仿真和控制. [Apache2]
    • PCL - 点云库是一个独立的,大规模的开放项目,用于2D/3D图像和点云处理 [BSD] [website](http://www.pointclouds.org/)
    • MOOS-IvP - 一组开源C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆.
  • 序列化

    • Thrift - 高效的跨语言IPC/RPC,用于C++,Java,Python,PHP,C#和其它多种语言中,最初由Twitter开发. [Apache2]
    • Cap'n Proto - 快速数据交换格式和RPC系统. [MIT]
    • cereal - C++11 序列化库. [BSD]
    • FlatBuffers - 内存高效的序列化库. [Apache2]
    • MessagePack - C/C++的高效二进制序列化库,例如 JSON. [Apache2] [website](http://msgpack.org/)
    • protobuf - 协议缓冲,谷歌的数据交换格式. [BSD]
    • protobuf-c - C语言的协议缓冲实现. [BSD]
    • SimpleBinaryEncoding - 用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码. [Apache2]
  • 异步事件循环

    • libuv - 跨平台异步I/O. [BSD]
  • 生态学

    • libsequence - 用于表示和分析群体遗传学数据的C++库. [GPL]
    • Vcflib - 用于解析和处理VCF文件的C++库. [MIT]
  • 容器

    • Hashmaps - C++中开放寻址哈希表算法的实现. [MIT]
  • 物理学

    • Bullet - 3D的游戏物理引擎. [zlib] [website](http://bulletphysics.org)
    • Chipmunk - 快速,轻量级的2D游戏物理库. [MIT] [website](https://chipmunk-physics.net/)
    • LiquidFun - 2D的游戏物理引擎. [BSD-like]
    • Newton Dynamics - 集成的解决方案实时仿真的物理环境. [zlib]
    • ofxBox2d - Box2D开源框架包装器D. [BSD-like]
    • Simbody - 高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼. [Apache2]
    • ODE - 开放动力学引擎-开源,高性能库,模拟刚体动力学. [BSD&LGPL]
    • Box2D - 2D的游戏物理引擎. [BSD-like]
  • 虚拟机

    • CarpVM - C中有趣的VM,让我们一起来看看这个. [GPLv3]
    • MicroPython - 旨在实现单片机上Python3.x的实现. [MIT]
    • TinyVM - 用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机. [MIT]
  • 文章

  • 讨论

  • 调试器

    • Valgrind - 内存调试,内存泄露检测,性能分析工具.