Awesome C/C++ (了不起的C/C++)

C++的各种库  框架   涉及各个领域

本文来自点击打开链接 

A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

  • Awesome C/C++
    • Standard Libraries
    • Frameworks
    • Artificial Intelligence
    • Asynchronous Event Loop
    • Audio
    • Biology
    • CLI
    • Compression
    • Concurrency
    • Containers
    • Cryptography
    • Database
    • Debug
    • Game Engine
    • GUI
    • Graphics
    • Image Processing
    • Internationalization
    • Inter-process communication
    • JSON
    • Logging
    • Machine Learning
    • Math
    • Multimedia
    • Networking
    • Physics
    • Robotics
    • Scientific Computing
    • Scripting
    • Serialization
    • Video
    • Virtual Machines
    • Web Application Framework
    • XML
    • Miscellaneous
  • Software
    • Compiler
    • Online Compiler
    • Debugger
    • Integrated Development Environment
    • Build Systems
    • Static Code Analysis
  • Resources
    • API Design
    • Articles
    • Books
    • Coding Style
    • Videos
    • Websites
  • Other Awesome Lists
  • Contributing

Standard Libraries

C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.

  • C++ Standard Library - A collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
  • Standard Template Library - The Standard Template Library (STL).
  • C POSIX library - A specification of a C standard library for POSIX systems.
  • ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee.website
  • The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.

Frameworks

C++ generic frameworks and libraries.

  • Apache C++ Standard Library - A collection of algorithms, containers, iterators, and other fundamental components. [Apache2]
  • APR - Apache Portable Runtime. Another library of cross-platform utility functions. [Apache2]
  • ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
  • Boost - A large collection of generic C++ libraries. [Boost]website
  • BDE - The BDE Development Environment from Bloomberg Labs. [MIT]
  • Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
  • Cxxomfort - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
  • Dlib - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost]
  • EASTL - Public part of EA-STL. [BSD]
  • ffead-cpp - Framework for Enterprise Application Development. [Apache2]
  • Folly - An open-source C++ library developed and used at Facebook. [Apache2]
  • JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial]website
  • libPhenom - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
  • LibSourcey - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
  • LibU - A multiplatform utility library written in C. [BSD]
  • Loki - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
  • MiLi - Minimal headers-only C++ Library. [Boost]
  • OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT]website
  • Qt - A cross-platform application and UI framework. [LGPL]
  • Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
  • ROOT - A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
  • STLport - An exemplary version of STL. [Free]
  • STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
  • Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
  • uSTL - The small STL library. [MIT]
  • Windows Template Library - A C++ library for developing Windows applications and UI components. [Public]
  • Yomm11 - Open multi-methods for C++11. [Boost]

Artificial Intelligence

  • btsk - Game Behavior Tree Starter Kit. [zlib]
  • Evolving Objects - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
  • Neu - A C++ 11 framework, collection of programming languages, and multipurpose software system designed for: the creation of artificial intelligence applications. [BSD]

Asynchronous Event Loop

  • Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost]
  • libev - A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL]
  • libevent - An event notification library. [BSD]
  • libuv - Cross-platform asychronous I/O. [BSD]

Audio

Audio, Sound, Music, Digitized Voice Libraries

  • FMOD - An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-commercial/Commercial]
  • Maximilian - C++ Audio and Music DSP Library. [MIT]
  • OpenAL - Open Audio Library - A crossplatform audio API. [BSD/LGPL/Commercial]
  • Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
  • SELA - SimplE Lossless Audio. [MIT]
  • Speex - A free codec for free speech. Obsoleted by Opus. [BSD]
  • Tonic - Easy and efficient audio synthesis in C++. [Unlicense]
  • Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]

Biology

Bioinformatics, Genomics, Biotech

  • libsequence - A C++ library for representing and analyzing population genetics data. [GPL]
  • SeqAn - Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause]
  • Vcflib - A C++ library for parsing and manipulating VCF files. [MIT]
  • Wham - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]

CLI

Console/Terminal User Interface, Command Line Interface

  • Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost]
  • gflags - Commandline flags module for C++. [BSD]
  • Ncurses - A terminal user interfaces. [MIT]
  • termbox - A C library for writing text-based user interfaces. [BSD]

Compression

Compression and Archiving Libraries

  • bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
  • doboz - Compression library with very fast decompression. [zlib]
  • PhysicsFS - A library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem. [zlib]
  • KArchive - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
  • LZ4 - Extremely Fast Compression algorithm. [BSD]
  • LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
  • LZMA - The default and general compression method of 7z format. [PublicDomain]
  • LZMAT - An extremely fast real-time lossless data compression library. [GPL]
  • miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [Unlicense]
  • Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
  • smaz - Small strings compression library. [BSD]
  • Snappy - A fast compressor/decompressor. [BSD]
  • ZLib - A very compact compression library for data streams. [zlib]
  • zlib-ng - zlib for the "next generation" systems. Drop-In replacement with some serious optimizations. [zlib]
  • ZZIPlib - Provides read access on ZIP-archives. [MPL/LGPL]

Concurrency

Concurrency and Multithreading

  • Boost.Compute - A C++ GPU Computing Library for OpenCL. [Boost]
  • Bolt - A C++ template library optimized for GPUs. [Apache2]
  • C++React - A reactive programming library for C++11. [Boost]
  • Intel TBB - Intel® Threading Building Blocks. [GPL2 with runtime exception]
  • Libclsph - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
  • OpenCL - The open standard for parallel programming of heterogeneous systems.
  • OpenMP - The OpenMP API.
  • Thrust - A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
  • HPX - A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
  • VexCL - A C++ vector expression template library for OpenCL/CUDA. [MIT]

Containers

  • C++ B-tree - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
  • Hashmaps - Implementation of open addressing hash table algorithms in C++. [MIT]

Cryptography

Cryptography and Encryption Libraries

  • Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors.
  • BeeCrypt
  • Botan - A crypto library for C++. [BSD-2]
  • Crypto++ - A free C++ class library of cryptographic schemes. [Boost]
  • GnuPG - A complete and free implementation of the OpenPGP standard. [GPL]
  • GnuTLS - A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
  • Libgcrypt
  • libmcrypt
  • LibreSSL - A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
  • libsodium - P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
  • LibTomCrypt - A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
  • Nettle - A low-level cryptographic library. [LGPL]
  • OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache]websire
  • retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
  • s2n - An implementation of the TLS/SSL protocols. [Apache]
  • Tiny AES128 in C - A small and portable implementation of the AES128 ECB encryption algorithm implemented in C. [PublicDomain]

Database

Database Libraries, SQL Servers, ODBC Drivers, and Tools

  • hiberlite - C++ Object-relational mapping for sqlite3. [BSD]
  • Hiredis - A minimalistic C client library for the Redis database. [BSD]
  • LevelDB - A fast key-value storage library. [BSD]
  • LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
  • MongoDB C Driver - MongoDB client library for C. [Apache2]
  • MongoDB C++ Driver - C++ driver for MongoDB. [Apache2]
  • MongoDB Libbson - A BSON utility library. [Apache2]
  • MySQL++ - A C++ wrapper for MySQL's C API. [LGPL]
  • RocksDB - Embedded key-value store for fast storage from facebook. [BSD]
  • SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]

Debug

Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing

  • Boost.Test - Boost Test Library. [Boost]
  • Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
  • Celero - C++ Benchmarking Framework. [Apache2]
  • CMocka - unit testing framework for C with support for mock objects. [Apache2]
  • CppUnit - C++ port of JUnit. [LGPL2]
  • CTest - The CMake test driver program. [BSD]
  • googlemock - A library for writing and using C++ mock classes. [BSD]
  • googletest - Google C++ Testing Framework. [BSD]
  • ig-debugheap - Multiplatform debug heap useful for tracking down memory errors. [BSD]
  • libtap - Write tests in C. [GPL2]
  • MemTrack - Tracking memory allocations in C++.
  • microprofile - Profiler with web-view for multiple platforms. [PublicDomain]
  • minUnit - A minimal unit testing framework for C written using only 2 macros. [PublicDomain]
  • Remotery - Single C File Profiler with Web Viewer. [Apache2]
  • UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license]

Game Engine

  • Allegro - A cross-platform library mainly aimed for video games and multimedia programming. [zlib]
  • Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [Commercial?]
  • delta3d - A robust simulation platform. [LGPL2]
  • GamePlay - A cross-platform native C++ game framework for creating 2D/3D mobile and desktop games. [Apache2]
  • Godot - A fully featured, open source, MIT licensed, game engine. [MIT]
  • Grit - Community project to build a free game engine for implementing open world 3D games. [MIT]
  • Irrlicht - A high performance realtime 3D engine written in C++. [zlib]
  • Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD]website
  • Polycode - A cross-platform framework for creative code in C++ (with Lua bindings). [MIT]website
  • Torque2D - An open-source and cross-platform C++ engine built for 2D game development. [MIT]website
  • Torque3D - An open-source C++ engine built for 3D game development. [MIT]website

GUI

Graphic User Interface

  • CEGUI - Flexible, cross-platform GUI library.
  • FLTK - Fast, light, cross-platform C++ GUI toolkit. [GPL2]
  • GTK+ - A multi-platform toolkit for creating graphical user interfaces. [LGPL]
  • gtkmm - The official C++ interface for the popular GUI library GTK+. [LGPL]
  • imgui - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
  • libRocket - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
  • MyGUI - Fast, flexible and simple GUI. [MIT]
  • QCustomPlot - Qt plotting widget without further dependencies. [GPLv3]
  • Qwt - Qt Widgets for Technical Applications. [Own based on LGPL]
  • QwtPlot3D - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
  • OtterUI - OtterUI is a User Interface development solution for embedded systems and interactive entertainment software. [MIT]
  • PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
  • Sciter - Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of modern desktop applications. [Free/Commercial]
  • wxWidgets - A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]

Graphics

  • bgfx - A cross-platform rendering library. [BSD]
  • Cairo - A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
  • GLFW - A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
  • Horde3D - A small 3D rendering and animation engine. [EPL]
  • magnum - C++11 and OpenGL 2D/3D graphics engine. [MIT]website
  • Ogre 3D - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT]
  • OpenSceneGraph - An open source high performance 3D graphics toolkit. [OSGPL]
  • OpenSubdiv - Pixar's library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
  • OpenVDB - Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
  • Panda3D - A framework for 3D rendering and game development for Python and C++. [BSD]
  • Partio - Library for wrangling particle data, with support for most common file formats. [Modified BSD]
  • Skia - A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD]webpage
  • urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT]

Image Processing

  • Boost.GIL - Generic Image Library.
  • CImg - A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
  • CxImage - An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
  • FreeImage - An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPL2 or GPL3]
  • GDCM - Grassroots DICOM library.
  • ITK - An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
  • libvips - A fast image processing library with low memory needs. [LGPL]website
  • Magick++ - ImageMagick program interfaces for C++. [Apache2]
  • MagickWnd - ImageMagick program interfaces for C. [Apache2]
  • OpenCV - Open source computer vision. [BSD]
  • OpenEXR - Cross-platform library for high dynamic range imaging. [Modified BSDF]
  • OpenImageIO - Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
  • tesseract-ocr - An OCR engine. [Apache2]
  • Video++ - A C++14 high performance video and image processing library. [MIT]
  • VIGRA - A generic C++ computer vision library for image analysis. [MIT X11]
  • VTK - Open-source, freely available software system for 3D computer graphics, image processing and visualization. [BSD]

Internationalization

  • gettext - GNU `gettext'. [GPL2]
  • IBM ICU - A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU]
  • libiconv - An encoding conversion library between different character encodings. [GPL]

Inter-process communication

  • Apache Thrift - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developed by Facebook. [Apache2]
  • Cap'n Proto - Fast data interchange format and capability-based RPC system. [MIT]
  • gRPC - A high performance, open source, general-purpose RPC framework. [BSD]website
  • libjson-rpc-cpp - JSON-RPC framework for C++ servers and clients. [MIT]
  • nanomsg - A simple high-performance implementation of several "scalability protocols". [MIT]website
  • simple-rpc-cpp - A simple RPC wrapper generator to C/C++ functions. [BSD]
  • WAMP - Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
  • xmlrpc-c - A lightweight RPC library based on XML and HTTP. [BSD]
  • ZeroMQ - High-speed, modular asynchronous communication library. [LGPL]

JSON

  • Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
  • frozen - JSON parser and generator for C/C++. [GPL & GPL2]
  • Jansson - C library for encoding, decoding and manipulating JSON data. [MIT]
  • jbson - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
  • JeayeSON - A very sane (header only) C++ JSON library. [BSD]
  • json - JSON for Modern C++. [MIT]
  • JSON++ - A JSON parser in C++. [MIT]
  • JsonCpp - A C++ library for interacting with JSON. [MIT]
  • json-parser - Very low footprint JSON parser written in portable ANSI C. [BSD]
  • json11 - A tiny JSON library for C++11. [MIT]
  • json-voorhees - JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
  • jute - Very simple C++ JSON Parser. [PublicDomain]
  • libjson - A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
  • libjson - Lightweight JSON library. [?]
  • LIBUCL - Universal configuration library parser [?]
  • PicoJSON - A header-file-only, JSON parser serializer in C++. [BSD]
  • qt-json - A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
  • QJson - A qt-based library that maps JSON data to QVariant objects. [LGPL2]
  • RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
  • ujson - µjson is a a small, C++11, UTF-8, JSON library. [MIT]
  • YAJL - A fast streaming JSON parsing library in C. [ISC]

Logging

  • Boost.Log - Designed to be very modular and extensible. [Boost]
  • easyloggingpp - Single header only C++ logging library. [MIT]website
  • G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain]
  • Log4cpp - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
  • log4cplus - A simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. [BSD & Apache2]
  • spdlog - Super fast, header only, C++ logging library.
  • templog - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]

Machine Learning

  • Caffe - A fast framework for neural networks. [BSD]
  • CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
  • MeTA - A modern C++ data sciences toolkit. [MIT]website
  • Minerva - A fast and flexible system for deep learning. [Apache2]
  • mlpack - A scalable c++ machine learning library. [LGPLv3]
  • OpenCV - Open Source Computer Vision Library. [BSD]website
  • Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
  • SHOGUN - The Shogun Machine Learning Toolbox. [GPLv3]
  • sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]

Math

  • Apophenia - A C library for statistical and scientific computing [GPL2]
  • Armadillo - A high quality C++ linear algebra library, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2]
  • blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
  • ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
  • CGal - Collection of efficient and reliable geometric algorithms. [LGPL&GPL]
  • cml - free C++ math library for games and graphics. [Boost]
  • Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
  • GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT]
  • GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
  • GMP - A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
  • QuantLib - A free/open-source library for quantitative finance. [Modified BSD]website

Multimedia

  • GStreamer - A library for constructing graphs of media-handling components. [LGPL]
  • LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
  • libVLC - libVLC (VLC SDK) media framework. [GPL]
  • QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL]website
  • SDL - Simple DirectMedia Layer. [zlib]
  • SFML - Simple and Fast Multimedia Library. [zlib]

Networking

  • ACE - An OO Network Programming Toolkit in C++. [?MIT?]
  • Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost]
  • Casablanca - C++ REST SDK. [Apache2]
  • cpp-netlib - A collection of open-source libraries for high level network programming. [Boost]
  • cpr - A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT]website
  • Dyad.c - Asynchronous networking for C. [MIT]
  • libcurl - Multiprotocol file transfer library. [MIT/X derivate license]
  • libjingle - Google talk voice and P2P interoperability library. [BSD]
  • Mongoose - Extremely lightweight webserver. [GPL2]
  • Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
  • net_skeleton - TCP client/server library for C/C++. [GPL2]
  • nope.c - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
  • Onion - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
  • POCO - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] website
  • Proxygen - Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
  • RakNet - A cross platform, open source, C++ networking engine for game programmers. [BSD]
  • Silicon - A high performance, middleware oriented C++14 http web framework. [MIT]
  • Tufão - An asynchronous web framework for C++ built on top of Qt. [LGPL2]
  • WebSocket++ - C++/Boost Asio based websocket client/server library. [BSD]

Physics

Dynamics simulation engines

  • Box2D - A 2D physics engine for games. [BSD-like]
  • Bullet - A 3D physics engine for games. [zlib]website
  • Chipmunk - A fast and lightweight 2D game physics library. [MIT]website
  • LiquidFun - A 2D physics engine for games. [BSD-like]
  • Newton Dynamics - An integrated solution for real time simulation of physics environments. [zlib]
  • ODE - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
  • ofxBox2d - openFrameworks wrapper for Box2D. [BSD-like]
  • Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]

Robotics

  • MOOS-IvP - A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine vehicles.
  • MRPT - Mobile Robot Programming Toolkit. [BSD]
  • PCL - Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloud processing [BSD]website
  • Robotics Library (RL) - A self-contained C++ library for robot kinematics, motion planning and control. [BSD]
  • RobWork - A collection of C++ libraries for simulation and control of robot systems. [Apache2]
  • ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]

Scientific Computing

  • FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
  • GSL - GNU scientific library. [GPL]

Scripting

  • ChaiScript - An easy to use embedded scripting language for C++. [BSD]website
  • Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
  • luacxx - C++11 API for creating Lua bindings. [MIT]
  • SWIG - A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed]
  • V7 - An embedded JavaScript engine. [GPL2]
  • V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]

Serialization

  • cereal - A C++11 library for serialization. [BSD]
  • FlatBuffers - A Memory efficient serialization library. [Apache2]
  • MessagePack - Efficient binary serialization format "like JSON" for C/C++. [Apache2]website
  • protobuf - Protocol Buffers - Google's data interchange format. [BSD]
  • protobuf-c - Protocol Buffers implementation in C. [BSD]
  • SimpleBinaryEncoding - encoding and decoding application messages in binary format for low-latency applications. [Apache2]

Video

  • libvpx - VP8/VP9 Codec SDK. [BSD]
  • FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
  • libde265 - Open h.265 video codec implementation. [LGPL]website
  • OpenH264 - Open Source H.264 Codec. [BSD]website
  • Theora - A free and open video compression format. [BSD]

Virtual Machines

  • CarpVM - "interesting" VM in C. Let's see how this goes. [GPLv3]
  • MicroPython - Aims to put an implementation of Python 3.x on a microcontroller. [MIT]
  • TinyVM - A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]

Web Application Framework

  • Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
  • CppCMS - A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
  • Crow - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
  • Kore - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
  • libOnion - lightweight library to help you create webservers in C programming language. [LGPLv3]
  • QDjango - A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django's API, hence its name. [LGPL]
  • Wt - A C++ library for developing web applications. [GPL/Commercial]

XML

XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's just no reason for that horrible crap to exist. - Linus Torvalds

  • Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
  • Expat - An XML parser library written in C. [MIT]
  • Libxml2 - The XML C parser and toolkit of Gnome. [MIT]
  • libxml++ - An XML Parser for C++. [LGPL2]
  • PugiXML - A light-weight, simple and fast XML parser for C++ with XPath support. [MIT]
  • RapidXml - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. [Boost]
  • TinyXML - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. [zlib]
  • TinyXML2 - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
  • TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
  • Xerces-C++ - A validating XML parser written in a portable subset of C++. [Apache2]

Miscellaneous

Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet

  • Better String - An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]
  • Boost.Signals - An implementation of a managed signals and slots system. [Boost]
  • C++ Format - Small, safe and fast formatting library for C++. [BSD]
  • casacore - A set of c++ core libraries derived from aips++. [LGPL]
  • CppVerbalExpressions - C++ regular expressions made easy. [MIT]
  • QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
  • c-smart-pointers - Smart pointers for the (GNU) C programming language. [MIT]
  • cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
  • DynaPDF - An easy-to-use PDF generation library. [Commercial]
  • gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
  • HTTP Parser - A http request/response parser for C. [MIT]
  • Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
  • libsigc++ - A typesafe callback system for standard C++. [LGPL]
  • libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
  • libevil - The Evil License Manager. [GPLv3]
  • libnih - A lightweight library of C functions and structures. [GPL2.1]
  • libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
  • Mach7 - A Pattern-matching library for C++. [BSD]
  • PCRE - A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
  • PHP-CPP - A library to build PHP extensions with C++. [Apache2]website
  • Remote Call Framework - Inter-process communication framework for C++. [GPL2/Commercial]
  • Scintilla - A free source code editing component. [MIT]
  • SDS - Simple Dynamic Strings library for C. [BSD]
  • Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT]
  • sigslot - C++ Signal/Slot Library. [PublicDomain]
  • SLDR - Super Light DNS Resolver. [GPL2/Commercial]
  • SLRE - Super Light Regexp engine for C/C++. [GPL2/Commercial]
  • Stage - Mobile robot simulator. [GPL2]
  • stb - A range of single-file libraries for C/C++. [PublicDomain]
  • ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
  • VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
  • ZBar - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2]
  • ZXing - An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]

Software

Software for creating a development environment.

Compiler

List of C/C++ compilers

  • 8cc - A Small C Compiler.
  • c - Compile and execute C "scripts" in one go! [MIT]
  • Clang - A C compiler for LLVM. Supports C11. Developed by Apple. [NCSA]
  • GCC - GNU Compiler Collection. Supports C11 and OpenMP. [GNU GPL3]
  • PCC - A very old C compiler. Supports C99.
  • Intel C++ Compiler - Developed by Intel.
  • LLVM - Collection of modular and reusable compiler and toolchain technologies.
  • Microsoft Visual C++ - MSVC, developed by Microsoft.
  • Open WatCom - Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
  • Oracle Solaris Studio - C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN Developer License]
  • TCC - Tiny C Compiler. [LGPL]

Online Compiler

List of online C/C++ compilers

  • codepad - An online compiler/interpreter, and a simple collaboration tool.
  • CodeTwist - A simple online compiler/interpreter, where you can paste your C, C++ or Java code and execute it online and see results.
  • coliru - Online compiler/shell with support for various C++ compilers.
  • Compiler Explorer - An interactive compiler with assembly output available.
  • CompileOnline - Compile and Execute C++ online on Linux.
  • Ideone - An online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.
  • Rextester - Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.
  • Rise4Fun - Online Visual C++ compiler.
  • Wandbox - An online Clang/GCC compiler with Boost available.

Debugger

List of C/C++ debuggers

  • Comparison of debuggers - A list of Debuggers from Wikipedia.
  • GDB - GNU Debugger.
  • LLDB - The LLDB Debugger.
  • Valgrind - A tool for memory debugging, memory leak detection, and profiling.
  • x64_dbg - An open-source x64/x32 debugger for windows.

Integrated Development Environment

List of C/C++ nominal IDEs.

  • Anjuta DevStudio - The GNOME IDE. [GPL3]
  • AppCode - an IDE for Objective-C, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEA platform.
  • CLion - Cross-platform C/C++ IDE from JetBrains.
  • Code::Blocks - A free C, C++ and Fortran IDE.
  • CodeLite - Another cross-plaform, free C/C++ IDE. [GPL2 with an exception for plugins]
  • color_coded - A vim plugin for libclang-based highlighting. [MIT]
  • Dev-C++ - A portable C/C++/C++11 IDE.
  • Eclipse CDT - A fully functional C and C++ IDE based on the Eclipse platform.
  • Geany - Small, fast, cross-platform IDE. [GPL]
  • IBM VisualAge - A family of computer integrated development environments from IBM.
  • Irony-mode - A C/C++ minor mode for Emacs powered by libclang.
  • KDevelop - A free, open source IDE.
  • Microsoft Visual Studio - An IDE from Microsoft.
  • NetBeans - An IDE for developing primarily with Java, but also with other languages, in particular PHP, C/C++, and HTML5.
  • Qt Creator - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
  • rtags - A c/c++ client/server indexer with for integration with emacs based on clang.
  • Xcode - Developed by Apple.
  • YouCompleteMe - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.

Build Systems

  • Bear - A tool to generate compilation database for clang tooling.
  • Biicode - Simple, file-based dependency manager.
  • CMake - Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
  • CPM - A C++ Package Manager based on CMake and Git.
  • FASTBuild - High performance, open-source build system supporting highly scalable compilation, caching and network distribution.
  • Ninja - A small build system with a focus on speed.
  • Scons - A software construction tool configured with Python scipt.
  • tundra - High-performance code build system designed to give the best possible incremental build times even for very large software projects.
  • tup - File-based build system that monitors in the background for changed files.
  • Premake - A tool configured with lua scipt to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux.

Static Code Analysis

List of tools for improving quality and reducing defects by code analysis

  • Cppcheck - A tool for static C/C++ code analysis. -source
  • include-what-you-use - A tool for use with clang to analyze includes in C and C++ source files.
  • OCLint - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. -source
  • Clang Static Analyzer - A source code analysis tool that finds bugs in C, C++, and Objective-C programs.
  • List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.

Resources

Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.

API Design

  • Beautiful Native Libraries
  • Designing Qt-Style C++ APIs

Articles

Fantastic C/C++ related articles.

  • CppCon 2014 Speaker Materials - Speaker materials from CppCon 2014.
  • C++Now 2014 Presentations - Presentation materials presented at C++Now 2014.
  • C++Now 2013 Presentations - Presentation materials presented at C++Now 2013.
  • C++Now 2012 Presentations - Presentation materials presented at C++Now 2012.

Books

Fantastic C/C++ related books.

  • List of Free C/C++ Books
  • Free C Books - vhf/free-programming-books/C.
  • Free C++ Books - vhf/free-programming-books/C++.
  • 6 Free eBooks On C++ Game Programming - Learn how to create graphics And video games in C++.
  • cppbestpractices - Collaborative Collection of C++ Best Practices.

Coding Style

  • C++ Dos and Don'ts - The Chromium Projects > For Developers > Coding Style > C++ Dos and Don'ts.
  • google-styleguide - Style guides for Google-originated open-source projects.
  • Google C++ Style Guide
  • GNU Coding Standard
  • Linux kernel coding style

Talks

  • CppCon Talks - The C++ conference.
  • Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
  • Presentation on Hana for C++Now 2015

Videos

Fantastic C/C++ related videos.

  • Awesome C Programming Tutorials in Hi Def [HD] - A collection of detailed C Programming Language Tutorials for Beginners and New Programmers.
  • C++ - by VoidRealms.
  • C++ Qt Programming - by VoidRealms.
  • C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
  • C++ Programming Tutorials from thenewboston - These are all of thenewboston's C++ programming tutorials.
  • C++ GUI with Qt Playlist - Official Playlist for thenewboston C++ GUI with Qt tutorials.
  • C Programming Tutorials - All of TheNewBoston's C programming tutorials are right here.
  • Bo Qian's playlist - Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, ...

Websites

Useful C/C++ related websites.

  • Standard C++ - News, Status & Discussion about Standard C++.
  • CppCon - The C++ Conference.
  • C++ reference - C++98, C++03, C++11, C++14 reference.
  • cplusplus.com - The C++ Resources Network.
  • C FAQ - C frequently asked questions.
  • C++ FAQ - C++ frequently asked questions.
  • C++ FQA Lite - C++ frequently questioned answers.
  • Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
  • Meeting C++
  • C++ Quiz - C++ quiz in which you propose to find errors in code fragments of open source projects.
  • Udemy C++ Courses and Tutorials

Weblogs

Useful C/C++ related weblogs.

  • Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
  • Eric Niebler
  • Sticky Bits
  • Paul Fultz II's Blog
  • ridiculousfish - Will It Optimize?
  • Embedded in Academia

Other Awesome Projects

Collection of useful codes, snippets, ...

  • algorithms - Algorithms & Data Structures in C++.
  • c-algorithms - C algorithms library.
  • C/C++ Awesome Pack - Contains some awesome c++ codes, packed in one.

Other Awesome Lists

Other amazingly awesome lists

  • lists - List of (awesome) lists curated on GitHub.
  • awesome-awesomeness - A curated list of awesome awesomeness.
  • awesome - A curated list of awesome lists.
  • Awesome C - A curated list of awesome C frameworks, libraries, resources.
  • Awesome C/C++ - getAwesomeness() mirror.
  • free-programming-books - List of Freely Available Programming Books.
  • papers-we-love - Papers from the computer science community to read and discuss.
  • awesome-algorithms - A curated list of awesome places to learn and/or practice algorithms.
  • awesome-talks - A lot of screencasts, recordings of user group gatherings and conference talks.
  • Projects - A list of practical projects that anyone can solve in any programming language.

这里可以看到大部分翻译点击打开链接

你可能感兴趣的:(C++,LEARNING,DIARY)