This article is a mirror article of machine translation, please click here to jump to the original article.

View: 24567|Reply: 6

[C++] 【Dry Goods】A complete collection of C++ resources compiled by foreign programmers

[Copy link]
Posted on 10/24/2014 6:23:32 PM | | |
Some aggregated list of C++ frameworks, libraries, and resources, initiated and maintained by fffaraz.

The content includes: standard libraries, web application frameworks, artificial intelligence, databases, image processing, machine learning, logs, code analysis, etc.

Standard library

C++ Standard Library: is a collection of classes and functions written in the core language and part of the C++ISO standard itself.
Standard Template Library: A library of standard templates
C POSIX library: The C standard library specification for the POSIX system
ISO C++ Standards Committee: C++ Standards Committee
Frame

C++ General Framework and Libraries
Apache C++ Standard Library: is a collection of algorithms, containers, iterators, and other essential components
ASL: The Adobe source code repository provides peer-reviewed and portable C++ source code repositories.
Boost: A collection of a large number of generic C++ libraries.
BDE: From the development environment of Bloomberg Info Labs.
Cinder: An open-source development community that provides professional-quality creative coding.
Cxxomfort: A lightweight, header-only library that ports some of the new features of C++11 to C++03.
Dlib: A general, cross-platform C++ library designed using contractual programming and modern C++ technology.
EASTL: EA-STL public section
FFEAD-CPP: Enterprise Application Development Framework
Folly: An open-source C++ library developed and used by Facebook
JUCE: An all-encompassing C++ library for developing cross-platform software
libPhenom: An event framework for building high-performance and highly scalable systems.
LibSourcey: C++11 evented IO for real-time video streaming and high-performance web applications
LibU: A multi-platform tool library written in C
Loki: The design of C++ libraries, including the implementation of common design patterns and idioms.
MiLi: A small C++ library with only header files
openFrameworks: Develops C++ toolkits for creative coding.
Qt: A cross-platform application and user interface framework
Reason: A cross-platform framework that makes it easier for developers to use Java. Net and Python, which also meet their needs for C++ performance and benefits.
ROOT: A set of object-oriented frameworks with all the features that can process and analyze large amounts of data very efficiently for the European Atomic Energy Agency.
STLport: is a representative version of STL
STXXL: A standard template library for additional large datasets.
Ultimate++: C++ cross-platform rapid application development framework
Windows Template Library: A C++ library for developing Windows applications and UI components
Yomm11: Open multi-methods for C++11.
Artificial intelligence

BTSK: Game Behavior Tree Launcher Tool
Evolving Objects: A template-based, ANSI C++ evolutionary computing library that helps you write your own stochastic optimization algorithms very quickly.
Neu: C++11 framework, a set of programming languages, a multipurpose software system for creating artificial intelligence applications.
Asynchronous event loops

Boost.Asio: A cross-platform C++ library for networking and underlying I/O programming.
libev: Feature-packed, high-performance time loop that slightly mimics libevent, but no longer has the same limitations as libevent, and also fixes some of its bugs.
libevent: Event notification library
libuv: Cross-platform asynchronous I/O.
Audio

Audio, sound, music, digital music library
FMOD: An easy-to-use, cross-platform audio engine and game creation tool for audio content.
Maximilian: C++ Audio and Music Digital Signal Processing Library
OpenAL: Open Source Audio Library — A cross-platform audio API
Opus: A completely open, royalty-free, highly versatile audio codec
Speex: Free codec, deprecated by Opus
Tonic: C++ is easy to use and efficient audio synthesis
Vorbis: Ogg Vorbis is a fully open, non-proprietary, royalty-free, universal compressed audio format.
ecology

Bioinformatics, genomics and biotechnology
libsequence: A C++ library for representing and analyzing population genetic data.
SeqAn: Focusing on algorithms and data structures for biological data sequence analysis.
Vcflib: A C++ library for parsing and processing VCF files
Wham: Apply the associative test directly to the genetic structure variation of the BAM file.
compress

Compress and archive libraries
bzip2: A completely free, patented and high-quality data compression
doboz: a compressed library that can be quickly decompressed
PhysicsFS: A library that provides abstract access to various archives, mainly for video games, with design inspiration in part from Quake3's file subsystem.
KArchive: A library for creating, reading, writing, and manipulating file archives such as zip and tar, which provides transparent compressed and decompressed data through a series of subclasses of QIODevice, using the gzip format.
LZ4: Very fast compression algorithm
LZHAM: Lossless compression database, the compression ratio is close to LZMA, but the decompression speed is much faster.
LZMA: The default and universal compression method for the 7z format.
LZMAT: and its fast real-time lossless data compression library
miniz: Single C source file, compact/expansion compression library, using zlib compatible API, ZIP archive read/write, PNG write mode.
Minizip: Zlib's latest bug fix, supports PKWARE disk crossing, AES encryption, and IO buffering.
Snappy: Quickly compress and decompress
ZLib: A very compact data stream compression library
ZZIPlib: Provides read access to ZIP archives.
Concurrency

Concurrent execution and multithreading
Boost.Compute: C++ GPU compute library for OpenCL
Bolt: A library of C++ templates optimized for GPUs
C++React: A reactive programming library for C++11
Intel TBB: Intel thread building block
Libclsph: OpenCL-based GPU-accelerated SPH fluid simulation library
OpenCL: An open standard for heterogeneous systems for parallel programming
OpenMP:OpenMP API
Thrust: A parallel algorithm library similar to the C++ standard template library
HPX: A universal C++ runtime system for parallel and distributed applications of any size
VexCL: A library of C++ vector expression templates for OpenCL/CUDA.
container

C++ B-tree: A template library based on the B-tree data structure to implement command memory containers
Hashmaps: An implementation of an open addressing hash table algorithm in C++
Cryptography

Bcrypt: A cross-platform file encryption tool that allows encrypted files to be ported to all supported operating systems and processors.
BeeCrypt:
Botan: C++ cryptographic library
Crypto++: A free C++ library for crypto schemes
GnuPG: A complete implementation of the OpenPGP standard
GnuTLS: A secure communication library that implements SSL, TLS, and DTLS protocols
Libgcrypt
libmcrypt
LibreSSL: A free SSL/TLS protocol that is a fork of OpenSSL 2014
LibTomCrypt: A very comprehensive, modular, portable encryption tool
libsodium: An encrypted library based on NaCI, stubborn and easy to use
Nettle's underlying encryption library
OpenSSL: A powerful, commercial, full-featured, open-source encryption library.
Tiny AES128 in C: A small, portable encryption algorithm implemented in C that implements AES128ESB
database

Databases, SQL servers, ODBC drivers and tools
hiberlite: C++ object relationship mapping for Sqlite3
Hiredis: A very simple C client library for Redis databases
LevelDB: Quickkey-value repository
LMDB: An embedded key-value store that conforms to the four basic elements of the database
MySQL++: A C++ wrapper that encapsulates MySql's C API
RocksDB: Fast storage of embedded keys from Facebook
SQLite: A fully embedded, full-featured relational database with only a few hundred KB that can be properly included into your project.
Debugging

Debug libraries, memory and resource leak detection, unit tests
Boost.Test: The Boost test library
Catch: A sleek, C++-native framework that contains only headers for unit testing, test-driven development, and behavior-driven development.
CppUnit: A C++ testing framework ported from JUnit
CTest: CMake test driver
googletest: Google C++ testing framework
ig-debugheap: A multi-platform debug heap for tracking memory errors
libtap: Write tests in C
MemTrack — Used in C++ to track memory allocation
microprofile - a cross-platform network attempt analyzer
minUnit: A mini-unit testing framework written in C with only two macros
Remotery: A single C file analyzer for web views
UnitTest++: A lightweight C++ unit testing framework
game engine

Cocos2d-x: A cross-platform framework for building 2D games, interactive books, presentations, and other graphics applications.
Glit: A community project to build a free game engine for open-world 3D games.
Irrlicht: An open-source, high-performance real-time #D engine written in C++
Polycode: An open-source framework for creating games implemented in C++ (bound to Lua).
Graphical user interface

CEGUI: A flexible cross-platform GUI library
FLTK: A fast, lightweight, cross-platform C++ GUI toolkit.
GTK+: A cross-platform toolkit for creating graphical user interfaces
gtkmm: The official C++ interface for the popular GUI library GTK+.
imgui: Immediate mode graphical user interface with minimal dependencies
libRocket: libRocket is a C++ HTML/CSS game interface middleware
MyGUI: Fast, flexible, and simple GUI
Ncurses: End user interface
QCustomPlot: Qt drawing control with no more dependencies
Qwt: Qt controls for user and technical applications
QwtPlot3D: A feature-rich Qt/OpenGL-based C++ programming library that essentially provides a set of 3D controls
OtterUI: OtterUI is a user interface development solution for embedded systems and interactive entertainment software
PDCurses is a public graph function library that contains source code and precompiled libraries
wxWidgets C++ library, which allows developers to create applications for widows, Mac OS X, Linux, and other platforms using a codebase
Graphics

BGFX: Cross-platform rendering library
Cairo: A 2D graphics library that supports multiple output devices
Horde3D is a small 3D rendering and animation engine
magnum C++11 and OpenGL 2D/3D graphics engine
Ogre 3D is a scene-oriented, real-time, flexible 3D rendering engine (not a game engine) written in C++
OpenSceneGraph is a high-performance, open-source 3D graphics toolkit
Panda3D is a framework for 3D rendering and game development, written in Python and C++.
Skia is a complete library of 2D graphics for drawing text, graphics, and images
urho3d cross-platform rendering and game engine.
Image processing

Boost.GIL: Universal image library
CImg: A small open-source C++ toolkit for image processing
CxImage: An image processing and conversion library for loading, saving, displaying, and converting, and can process image formats including BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K.
FreeImage: An open-source library that supports common image formats and other formats required for multimedia applications today.
GDCM: Grassroots DICOM library
ITK: Cross-platform open source image analysis system
Magick++: The C++ interface of the ImageMagick program
MagickWnd: C++ interface for the ImageMagick program
OpenCV: An open-source computer vision library
tesseract-ocr: OCR engine
VIGRA: A general C++ computer vision library for image analysis
VTK: Open source free software system for 3D computer graphics, image processing and visualization.
Internationalization

gettext :GNU `gettext’
IBM ICU: C, C++, and Java libraries with Unicode and global support
libiconv: A library for encoding conversion between different character encodings
Jason

frozen: Jason parse generator for C/C++
Jansson: A C library that encodes and processes Jason data
jbson: A library for building and iterating on BSON data and Json documentation in C++14
JeayeSON: A very robust C++ JSON library that contains only header files
JSON++: C++ JSON parser
json-parser: A JSON parser written in portable ANSI C that takes up very little memory
json11: A mini C++11 JSON library
jute: A very simple C++ JSON parser
ibjson: A JSON parsing and printing library in C that is easy to integrate with any model.
libjson: A lightweight JSON library
PicoJSON: JSON parsed serialization in C++, containing only the header file
qt-json: A simple class for resolving JSON data and QVariant hierarchies
QJson: A Qt-based library that maps JSON data to QVariant objects
RapidJSON: A fast JSON parsing generator for C++ with both SAX and DOM styles of APIs
YAJL: A fast streaming JSON parsing library in C
Log

Boost.Log: The design is very modular and extensible
easyloggingpp: C++ log library containing only a single header file.
Log4cpp: A collection of C++ libraries with the flexibility to add logs to files, system logs, IDSA and others.
templog: A lightweight C++ library that can add logs to your C++ application
Machine learning

Caffe: A fast neural network framework
CCV: A modern computer vision library with C language as the core
mlpack: An extensible C++ machine learning library
OpenCV: Open source computer vision library
Recommender: A C library that uses collaborative filtering to recommend products/suggest products.
SHOGUN: Shogun machine learning tool
sofia-ml: A suite of fast incremental algorithms for machine learning
Mathematics

Armadillo : A high-quality C++ linear algebra library with a good balance of speed and ease of use. The syntax is similar to MatlAB
blaze: A high-performance C++ math library for dense and sparse algorithms.
ceres-solver: A C++ library from Google for modeling and solving large complex nonlinear least squares problems.
CGal: A collection of efficient and reliable ensemble algorithms
cml: A free C++ math library for games and graphics
Eigen: A library of advanced C++ template headers, including linear algebra, matrices, vector operations, numerical solving, and other related algorithms.
GMTL: The Mathematical Graph Template Library is a set of tools that implement basic graphics extensively.
GMP: A C/C++ library for high-precision calculations, handling signed integers, rational numbers, and floating-point numbers.
Multimedia

GStreamer: A library for building graphics for media processing components
LIVE555 Streaming Media: Multimedia streaming libraries using open standard protocols (RTP/RTCP, RTSP, SIP).
libVLC: libVLC (VLC SDK) media framework
QtAv: A multimedia playback framework based on Qt and FFmpeg that helps you write a player with ease
SDL: Simple and direct control media layer
SFML: Fast and easy multimedia library
Internet

ACE: C++ object-oriented networking becomes a toolkit
Boost.Asio: A cross-platform C++ library for networking and underlying I/O programming
Casablanca:C++ REST SDK
cpp-netlib: A collection of open-source libraries for advanced network programming
Dyad.c: Asynchronous network for C
libcurl: A multiprotocol file transfer library
Mongoose: Very lightweight web server
Muduo: A C++ non-blocking network library for Linux multithreaded servers
net_skeleton: TCP client/server library for C/C++
nope.c: Ultra-lightweight C-based software platform for scalable server-side and web applications. For C programmers, consider node.js
Onion: A C HTTP server library designed to be lightweight and easy to use.
POCO: A C++-class library for building web and internet-based applications that can run on desktop, server, mobile, and embedded systems.
RakNet: A cross-platform, open-source C++ web engine for game developers.
Tuf: An asynchronous web framework for C++ builds on top of Qt.
WebSocket++: A websocket client/server library based on C++/Boost Aiso
ZeroMQ: High-speed, modular asynchronous communication library
Physics

Dynamics simulation engine
Box2D: 2D game physics engine.
Bullet: 3D game physics engine.
Chipmunk: A library of fast, lightweight 2D game physics
LiquidFun: 2D game physics engine
ODE: Open Dynamics Engine - Open Source, High-Performance Library, Simulating Rigid Body Dynamics.
ofxBox2d: Box2D open source framework wrapper.
Simbody: High-performance C++ multibody dynamics/physics library that simulates joint biomechanics and mechanical systems like vehicles, robots, and human skeletons.
Robotics

MOOS-IvP: A set of open-source C++ modules that provide autonomy for robotic platforms, especially autonomous marine vehicles.
MRPT: Mobile Robot Programming Toolkit
PCL: The Point Cloud Library is an independent, large-scale open project for 2D/3D imagery and point cloud processing.
Robotics Library (RL): A standalone C++ library that includes robot dynamics, motion planning, and control.
RobWork: A collection of C++ libraries for simulation and control of robotic systems.
ROS: Robot operating system that provides libraries and tools to help software developers create robot applications.
Scientific calculations

FFTW: A C language library that uses one-dimensional or multi-dimensional DFT calculations.
GSL: GNU Science Library.
Script

ChaiScript: An easy-to-use embedded scripting language for C++.
Lua: A small and fast scripting engine for configuration files and basic application scripts.
luacxx: C++ 11 API for creating Lua bindings
SWIG: A wrapper/interface generator that allows you to link your C++ code to JavaScript, Perl, PHP, Python, Tcl, and Ruby
V7: Embedded JavaScript engine.
V8: Google's fast JavaScript engine that can be embedded in any C++ application.
Serialization

Cap'n Proto: Fast Data Exchange Format and RPC System.
cereal: C++11 serialization library
FlatBuffers: A memory-efficient serialization library
MessagePack: An efficient binary serialization library for C/C++, such as JSON
protobuf: Protocol buffering, Google's data exchange format.
protobuf-c: A protocol buffering implementation of C
SimpleBinaryEncoding: Encoding and decoding of application information in binary format for low-latency applications.
Thrift: Efficient cross-language IPC/RPC for C++, Java, Python, PHP, C# and many other languages, originally developed by Twitter.
Video

libvpx: VP8/VP9 encoding and decoding SDK
FFmpeg: A complete, cross-platform solution for recording, converting video and audio streams.
libde265: An implementation of the open H.265 video codec.
OpenH264: Open-source H.364 codec.
Theora: Free and open-source video compression format.
Virtual machines

CarpVM: An interesting VM in C, let's take a look at this together.
MicroPython: Designed to implement Python 3.x on a microcontroller
TinyVM: A small, fast, lightweight virtual machine written in pure ANSI C.
Web application framework

Civetweb: Offers an easy-to-use, powerful, C/C++ embedded web server with optional CGI, SSL, and Lua support.
CppCMS : Free and high-performance web development framework (not CMS).
Crow: A C++ microweb framework (inspired by Python Flask)
Kore: Ultra-fast and flexible web server/framework for web applications developed in C.
libOnion: A lightweight library that helps you create web servers using the C programming language.
QDjango: A web framework written in C++ based on the Qt library, trying to emulate the Django API, hence the name.
Wt: A C++ library for developing web applications.
XML

XML is garbage, XML parsing is annoying, and it is also a disaster for computers. There is no reason for this terrible thing to exist at all. ——Linus Torvalds
Exbat: An xml parsing library written in C
Libxml2: Gnome's xml C parser and toolkit
libxml++: C++'s xml parser
PugiXML: A lightweight, simple and fast XML parser for C++ that supports XPath.
RapidXml: Attempts to create the fastest XML parser while maintaining ease of use, portability, and reasonable W3C compatibility.
TinyXML: A simple and small C++XML parser that can be easily integrated into other projects.
TinyXML2: A simple and fast C++CML parser that can be easily integrated into other projects.
TinyXML++: A brand new interface for TinyXML that uses many of the many advantages of C++, templates, exceptions, and better exception handling.
Xerces-C++: An XML-validated parser written in a subset of portable C++.
Multiple mixed

Some useful libraries or tools, but they don't fit into the categories above, or they don't have categories yet.
C++ Format: A small, secure, and fast-format library for C++
casacore: A series of C++ core libraries derived from aips++
cxx-prettyprint: Print library for C++ containers
DynaPDF: An easy-to-use PDF generation library
gcc-poison: A simple header file that helps developers ban insecure C/C++ functions in their applications.
googlemock: A library for writing and using C++ mock classes
HTTP Parser: C's http request/response parser
libcpuid: A small C library for feature extraction of x86 CPU detection boxes
libevil: license manager
libusb: Allows mobile access to the universal USB library of USB devices
PCRE: Regular Expression C library, inspired by the functionality of regular expressions in Perl.
Remote Call Framework: C++'s inter-process communication framework.
Scintilla: Open source code editing control
Serial Communication Library: A cross-platform, serial library written in C++ language.
SDS:C's simple dynamic string library
SLDR: Ultra-light DNS resolver
SLRE: Ultralight regular expression library
Stage: Mobile robot simulator
VarTypes: C++/Qt4 feature-rich, object-oriented framework for managing variables.
ZBar: 'Barcode Scanner' library that scans barcodes in photo, picture and video streams and returns results.
CppVerbalExpressions: Easy-to-use C++ regular expressions
QtVerbalExpressions: A Qt library based on the C++ VerbalExpressions library
PHP-CPP: A library that uses C++ to build PHP extensions
Better String: Another string library for C, more feature-rich, but without buffer overflow issues, and also includes a C++ wrapper.
Software

Software used to create a development environment
Compiler

Clang: Developed by Apple
GCC: GNU Compiler Collection
Intel C++ Compiler : Developed by Intel Corporation
LLVM: A collection of modular and reusable compiler and toolchain technologies
Microsoft Visual C++ : MSVC, developed by Microsoft Corporation
Open WatCom: Watcom, C, C++, and Fortran cross-compilers and tools
TCC: Lightweight C compiler
Online compiler

Codepad: Online compiler/interpreter, a simple collaboration tool
CodeTwist: A simple online compiler/interpreter that allows you to paste C, C++ or Java code, execute it online and see the results
coliru: Online compiler/shell, supports various C++ compilers
Compiler Explorer: An interactive compiler that can perform assembly outputs
CompileOnline: Compiling and executing C++ programs online on Linux
Ideone: An online compiler and debugging tool that allows you to compile and execute source code online, supporting over 60 programming languages.
Debugger

Comparison of debuggers: List of debuggers from Wikipedia
GDB: GNU debugger
Valgrind: Memory debugging, memory leak detection, performance analysis tools.
Integrated Development Environment (IDE)

AppCode: Build an integrated development environment for Objective-C, C, C++, Java, and Java development on JetBrains' IntelliJ IDEA platform
CLion: A cross-platform integrated development environment for C/C++ from JetBrains
Code::Blocks :免费C,C++和Fortran的集成开发环境
CodeLite: Another free C/C++ integrated development environment across platforms
Dev-C++: A portable C/C++/C++11 integrated development environment
Eclipse CDT: A full-featured C and C++ integrated development environment based on the Eclipse platform
Geany: Lightweight fast, cross-platform integrated development environment.
IBM VisualAge: An integrated development environment for home computers from IBM.
Irony-mode: C/C++ micromode for Emacs powered by libclang
KDevelop: Free and open source integrated development environment
Microsoft Visual Studio: An integrated development environment from Microsoft
NetBeans: An integrated development environment primarily used for Java development, but also supports other languages, especially PHP, C/C++, and HTML5.
Qt Creator: A cross-platform C++, Javascript, and QML integrated development environment that is also part of the Qt SDK.
rtags: C/C++ client-server index for integration with clang-based emacs
Xcode: Developed by Apple
YouCompleteMe: An engine for Vim that quickly fuzzes search and completes code based on the code you type.
Build the system

Bear: A tool used to generate a compiled database for the clang tool
Biicode: A simple file-based dependency manager.
CMake: Cross-platform, free and open-source software used to manage the process of building software using an independently compiled approach.
CPM: C++ package manager based on CMake and Git
FASTBuild: A high-performance, open-source build system that supports highly scalable compilation, buffering, and network distribution.
Ninja: A small build system focused on speed
Scons: A software build tool configured using Python scipt
Tundra: A high-performance code build system that provides the best incremental build times even for very large software projects.
tup: A file-based build system used to monitor changing files in the background.
Static code analysis

Cppcheck: Static C/C++ code analysis tool
include-what-you-use: A tool for code analysis using clang that can be #included in C and C++ files.
OCLint: Static source code analysis tool for C, C++, and Objective-C to improve quality and reduce defects.
Clang Static Analyzer: A source code analysis tool for finding C, C++, and Objective-C program bugs
List of tools for static code analysis: A list of static code analysis tools from Wikipedia





Previous:Microsoft Exchange Server 2010 free mail system
Next:Extra! 360 Website Guard has added a new node to Langfang Unicom!
Posted on 7/24/2017 5:43:27 AM |
Thank you for sharing
Posted on 8/7/2017 7:36:27 AM |
Thank you for sharing
Posted on 8/15/2017 6:37:12 AM |
Thank you for sharing
Posted on 11/1/2017 7:56:51 PM |
Take a look, take a look, look at it
Posted on 9/15/2020 1:59:20 PM |
What are you doing? This is.......
Posted on 12/15/2023 5:01:16 PM |
Prompt:Authors are banned or removed content is automatically blocked
Disclaimer:
All software, programming materials or articles published by Code Farmer Network are only for learning and research purposes; The above content shall not be used for commercial or illegal purposes, otherwise, users shall bear all consequences. The information on this site comes from the Internet, and copyright disputes have nothing to do with this site. You must completely delete the above content from your computer within 24 hours of downloading. If you like the program, please support genuine software, purchase registration, and get better genuine services. If there is any infringement, please contact us by email.

Mail To:help@itsvse.com