diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e67cf0e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,14 @@ +# Contribution Guidelines +Please ensure your pull request adheres to the following guidelines: + +* Please search previous suggestions before making a new one, as yours may be a duplicate. +* Please make an individual pull request for each suggestion. +* Use the following format: \[RESOURCE\]\(LINK\) - DESCRIPTION. +* Keep descriptions short and simple. +* End all descriptions with a full stop/period. +* Make sure your text editor is set to remove trailing whitespace. +* Order projects alphabetically within each category. +* Check your spelling and grammar. +* New categories, or improvements to the existing categorisation are welcome. + +Thank you for your suggestions! diff --git a/README.md b/README.md index 273d8c2..af080d1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,175 @@ -awesome-cpp -=========== +# Awesome C/C++ +A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff. -A curated list of awesome C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff. +- [Awesome C++](#awesome-cpp) + - [Standard Libraries](#standard-libraries) + - [Frameworks](#frameworks) + - [Audio](#audio) + - [Artificial Intelligence](#artificial-intelligence) + - [Concurrency](#concurrency) + - [Containers](#containers) + - [Cryptography](#cryptography) + - [Database](#database) + - [GUI](#gui) + - [Graphics](#graphics) + - [Imaging](#imaging) + - [Internationalization](#internationalization) + - [JSON](#json) + - [Logging](#logging) + - [Machine Learning](#machine-learning) + - [Mocking](#mocking) + - [Multimedia](#multimedia) + - [Networking](#networking) + - [Serialization](#serialization) + - [Testing](#testing) + - [Web Application Framework](#web-application-framework) + - [XML](#xml) +- [Compilers](#compilers) +- [Software](#software) + - [Integrated Development Environments](#integrated-development-environments) +- [Resources](#resources) + - [C++ Websites](#cpp-websites) + - [C++ Books](#cpp-books) + - [C++ Videos](#cpp-videos) +- [Contributing](#contributing) + +## Standard Libraries + +* [C++ Standard Library](http://en.wikipedia.org/wiki/C%2B%2B_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](http://en.wikipedia.org/wiki/Standard_Template_Library) - The Standard Template Library (STL). +* [C POSIX library](http://en.wikipedia.org/wiki/C_POSIX_library) - A specification of a C standard library for POSIX systems.. + +## Frameworks +*C++ generic frameworks and libraries.* + +* [Apache C++ Standard Library](http://stdcxx.apache.org/) - A collection of algorithms, containers, iterators, and other fundamental components. +* [ASL](http://stlab.adobe.com/) - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. +* [Boost](http://www.boost.org/) - A large collection of generic C++ libraries. +* [BDE](https://github.com/bloomberg/bde) - The BDE Development Environment from Bloomberg L.P. +* [Cinder](http://libcinder.org/) - A community-developed, free and open source library for professional-quality creative coding in C++. +* [Cxxomfort](http://ryan.gulix.cl/fossil.cgi/cxxomfort/) - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. +* [Dlib](http://dlib.net/) - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. +* [ffead-cpp](https://github.com/sumeetchhetri/ffead-cpp) - Framework for Enterprise Application Development. +* [Folly](https://github.com/facebook/folly) - An open-source C++ library developed and used at Facebook. +* [JUCE](http://www.juce.com/) - An all-encompassing C++ class library for developing cross-platform software.. +* [LibSourcey](https://github.com/sourcey/libsourcey) - C++11 evented IO for real-time video streaming and high performance networking applications. +* [LibU](https://github.com/koanlogic/libu) - A multiplatform utility library written in C. +* [Loki](http://loki-lib.sourceforge.net/) - A C++ library of designs, containing flexible implementations of common design patterns and idioms. +* [MiLi](https://code.google.com/p/mili/) - Minimal headers-only C++ Library. +* [openFrameworks](http://www.openframeworks.cc/) - An open source C++ toolkit for creative coding. +* [Qt](http://qt-project.org/) - A cross-platform application and UI framework. +* [Reason](http://code.google.com/p/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++. +* [STXXL](http://stxxl.sourceforge.net/) - Standard Template Library for Extra Large Data Sets. +* [Ultimate++](http://www.ultimatepp.org/) - A C++ cross-platform rapid application development framework. +* [Windows Template Library](http://sourceforge.net/projects/wtl/) - A C++ library for developing Windows applications and UI components. +* [Yomm11](https://github.com/jll63/yomm11) - Open multi-methods for C++11. + +##Artificial Intelligence + +* [Evolving Objects](http://eodev.sourceforge.net/) - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. +* [Neu](https://github.com/andrometa/neu) - A C++ 11 framework, collection of programming languages, and multipurpose software system designed for: the creation of artificial intelligence applications. + +## Concurrency + +* [Intel TBB](https://www.threadingbuildingblocks.org/) - IntelĀ® Threading Building Blocks. +* [OpenMP](http://openmp.org/) - The OpenMP API. +* [Thrust](http://thrust.github.io/) - A parallel algorithms library which resembles the C++ Standard Template Library (STL). +* [HPX](https://github.com/STEllAR-GROUP/hpx/) - A general purpose C++ runtime system for parallel and distributed applications of any scale. + +## Containers + +* [C++ B-tree](https://code.google.com/p/cpp-btree/) - A template library that implements ordered in-memory containers based on a B-tree data structure. + +## GUI +*Graphic User Interface* + +* [GTK+](http://www.gtk.org/) - A multi-platform toolkit for creating graphical user interfaces. +* [gtkmm](http://www.gtkmm.org/en/) - The official C++ interface for the popular GUI library GTK+. +* [wxWidgets](http://wxwidgets.org/) - a C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. +* [Qwt](http://qwt.sourceforge.net/) - Qt Widgets for Technical Applications. +* [QwtPlot3D](http://qwtplot3d.sourceforge.net/) - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. + +## Graphics + +* [Ogre 3D](http://www.ogre3d.org/) - One of the most popular open-source graphics rendering engines. + +## Internationalization + +* [IBM ICU](http://site.icu-project.org/) - A set of C/C++ and Java libraries providing Unicode and Globalization support. +* [gettext](http://www.gnu.org/software/gettext/) - GNU `gettext'. + +## Machine Learning + +* [OpenCV](http://opencv.org/) - Computer Vision. + +## Mocking + +* [googlemock](http://code.google.com/p/googlemock/) - A library for writing and using C++ mock classes. + +## Multimedia + +* [SFML](http://www.sfml-dev.org/index.php) - Simple and Fast Multimedia Library. +* [SDL](http://www.libsdl.org/) - Simple DirectMedia Layer. + +## Networking + +* [ACE](http://www.cs.wustl.edu/~schmidt/ACE.html) - An OO Network Programming Toolkit in C++. +* [Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming. +* [Casablanca](http://casablanca.codeplex.com/) - C++ REST SDK. +* [cpp-netlib](http://cpp-netlib.org/) - A collection of open-source libraries for high level network programming. +* [POCO](http://pocoproject.org/) - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. + +## Serialization + +* [protobuf](http://code.google.com/p/protobuf/) - Protocol Buffers - Google's data interchange format. + +## Testing + +* [CppUnit](http://sourceforge.net/projects/cppunit/) - C++ port of JUnit. +* [googletest](http://code.google.com/p/googletest/) - Google C++ Testing Framework. + +## Web Application Framework + +* [CppCMS](http://cppcms.com/) - A Free High Performance Web Development Framework (not a CMS). +* [Wt](http://www.webtoolkit.eu/wt) - A C++ library for developing web applications. + +# Compilers +*List of C/C++ compilers* + +* [Clang]() - . +* [GCC]() - . +* [Intel C++ Compiler]() - . +* [Microsoft Visual C++]() - . + +# Software +*Software for creating a development environment.* + +## Integrated Development Environments +*nominal IDEs.* + +* [Code::Blocks]() - . +* [Dev-C++]() - . +* [Eclipse CDT]() - . +* [KDevelop]() - . +* [Microsoft Visual Studio]() - . +* [NetBeans]() - . +* [Qt Creator]() - . +* [Xcode]() - . + + +# Resources +*Various resources, such as books, websites and articles, for improving your C++ development skills and knowledge.* + +## C++ Websites +*Useful C++ related websites.* + +* [C++ reference](http://cppreference.com/) - C++98, C++03, C++11, C++14 reference. + +## C++ Books +*Fantastic C++ related books.* + +## C++ Videos +*Fantastic C++ related videos.* + +# Contributing +Please see [CONTRIBUTING](https://github.com/fffaraz/awesome-cpp/blob/master/CONTRIBUTING.md) for details.