What modern C++ libraries should be in my toolbox? [closed]
I've been out of the C++ game for about 10 years and I want to get back in and start on a commercial app. What libraries are in use these days?
- User interface (e.g, wxWidgets, Qt)
- Database
- General purpose (e.g. Boost, Loki, STL)
- Threading
- Testing
- Network/sockets
I looking to be cross-platform compatible (as much as possible out-of-the-box).
What libraries to do you rely on? What features do they provide that make them "indispensable"?
See my answer below for a summary.
Cross-platform libraries that are free for commercial (or non-commercial) applications
Feel free to expand this list
- General Purpose
- Boost
- Loki
- MiLi
- POCO
- STL (of course)
- STXXL (STL re-implementation for extra large data sets)
- Qt
- ASL
- JUCE
- Audio
- FMOD
- Synthesis ToolKit
- Database
- SOCI
- OTL
- LMDB++
- Design
- IoC Frameworks
- Hypodermic
- PocoCapsule
- Wallaroo
- IoC Frameworks
- Documents
- LibreOffice API
- PoDoFo
- Graphics
- Allegro
- OGRE
- SFML
- GUI
- FLTK
- GTK
- Qt
- Qwt
- wxWidgets
- VTK
- Hashing
- MurmurHash3
- Imaging
- Boost.GIL
- CImg
- DevIL
- EasyBMP
- FreeImage
- ITK
- OpenCV
- Logging
- Boost.Log
- log4cxx
- Pantheios
- Mocking
- Google Mock
- Hippo Mocks
- Turtle (C++ mock object library for Boost)
- Multimedia
- openframework
- Cinder
- SDL
- Networking
- ACE
- Boost.Asio
- ICE
- Testing
- Boost.Test
- Google Test
- UnitTest++
- doctest
- Threading
- Boost.Thread
- Version Control
- libgit2
- Web Application Framework
- CppCMS
- Wt
- XML
- Libxml2
- pugixml
- RapidXml
- TinyXML
- Xerces-C++
Links to additional lists of open source C++ libraries:
http://en.cppreference.com/w/cpp/links/libs
Sorry for repeating some of the stuff already written, but:
- UI: Qt
- Database: SOCI
- General purpose: Boost, Loki, STLSoft Libraries, ASL
- Threading: Boost.Thread
- Testing: Boost.Test
- Build tools: Boost.Build, SCons
(Should at least get you started)
On Windows...
ATL for COM development WTL for user interface
CGAL is an excellent c++ library for computational geometry
www.cgal.org
http://loki-lib.sourceforge.net/ might also be good addition.
It's another template library, which introduces typelists, and implementations for various design patterns.
I never used it, but I read Alexandrescu's book to get a better understanding of templates.