Professional Documents
Culture Documents
com/fffaraz/awesomecpp
Star
2,160
AwesomeC/C++
AcuratedlistofawesomeC/C++frameworks,libraries,
resources,andshinythings.Inspiredbyawesome...stuff.
AwesomeC/C++
StandardLibraries
Frameworks
ArtificialIntelligence
AsynchronousEventLoop
Audio
Biology
CLI
Compression
Concurrency
Containers
Cryptography
Database
Debug
GameEngine
GUI
Graphics
ImageProcessing
Internationalization
Interprocesscommunication
JSON
Logging
MachineLearning
Math
Multimedia
Networking
Physics
Robotics
ScientificComputing
Scripting
Serialization
Video
VirtualMachines
WebApplicationFramework
XML
Miscellaneous
Software
Compiler
OnlineCompiler
Debugger
IntegratedDevelopmentEnvironment
BuildSystems
StaticCodeAnalysis
Resources
APIDesign
Articles
Books
CodingStyle
Videos
Websites
OtherAwesomeLists
Contributing
StandardLibraries
C++StandardLibraryincludingSTLContainers,STLAglorithm,STLFunctional,etc.
C++StandardLibraryAcollectionofclassesandfunctions,whicharewritteninthecorelanguageand
partoftheC++ISOStandarditself.
StandardTemplateLibraryTheStandardTemplateLibrary(STL).
CPOSIXlibraryAspecificationofaCstandardlibraryforPOSIXsystems.
ISOC++StandardsCommitteeISO/IECJTC1/SC22/WG21TheC++StandardsCommittee.website
TheGNUCLibraryThepurposeofthismanualistotellyouhowtousethefacilitiesoftheGNUCLibrary.
Frameworks
C++genericframeworksandlibraries.
ApacheC++StandardLibraryAcollectionofalgorithms,containers,iterators,andotherfundamental
components.[Apache2]
APRApachePortableRuntime.Anotherlibraryofcrossplatformutilityfunctions.[Apache2]
ASLAdobeSourceLibrariesprovidespeerreviewedandportableC++sourcelibraries.[MIT]
Boost:zap:AlargecollectionofgenericC++libraries.[Boost]website
BDETheBDEDevelopmentEnvironmentfromBloombergLabs.[MIT]
CinderAcommunitydeveloped,freeandopensourcelibraryforprofessionalqualitycreativecoding.
[BSD]
CxxomfortAsmall,headeronlylibrarythatbackportstoC++03someoftheniftyC++11goodies.[MIT]
Dlib:zap:AgeneralpurposecrossplatformC++librarydesignedusingcontractprogrammingand
modernC++techniques.[Boost]
EASTLPublicpartofEASTL.[BSD]
ffeadcppFrameworkforEnterpriseApplicationDevelopment.[Apache2]
FollyAnopensourceC++librarydevelopedandusedatFacebook.[Apache2]
JUCEAnallencompassingC++classlibraryfordevelopingcrossplatformsoftware.[CoreModule:ISC,
Rest:GPL2/GPL3/Commercial]website
libPhenomlibPhenomisaneventingframeworkforbuildinghighperformanceandhighscalabilitysystems
inC.[Apache2]
LibSourceyC++11eventedIOforrealtimevideostreamingandhighperformancenetworking
applications.[LGPL]
LibUAmultiplatformutilitylibrarywritteninC.[BSD]
LokiAC++libraryofdesigns,containingflexibleimplementationsofcommondesignpatternsandidioms.
[MIT]
MiLiMinimalheadersonlyC++Library.[Boost]
OpenFrameworksAcrossplatformopensourcetoolkitforcreativecodinginC++.[MIT]website
Qt:zap:AcrossplatformapplicationandUIframework.[LGPL]
ReasonAcrossplatformframeworkdesignedtobringtheeaseofuseofJava,.Net,orPythonto
developerswhorequiretheperformanceandstrengthofC++.[GPL2]
ROOTAsetofOOframeworkswithallthefunctionalityneededtohandleandanalyzelargeamountsof
datainaveryefficientway.UsedatCERN.[LGPL]
STLportAnexemplaryversionofSTL.[Free]
STXXLStandardTemplateLibraryforExtraLargeDataSets.[Boost]
Ultimate++AC++crossplatformrapidapplicationdevelopmentframework.[BSD]
uSTLThesmallSTLlibrary.[MIT]
WindowsTemplateLibraryAC++libraryfordevelopingWindowsapplicationsandUIcomponents.[Public]
Yomm11OpenmultimethodsforC++11.[Boost]
ArtificialIntelligence
btskGameBehaviorTreeStarterKit.[zlib]
EvolvingObjectsAtemplatebased,ANSIC++evolutionarycomputationlibrarywhichhelpsyoutowrite
yourownstochasticoptimizationalgorithmsinsanelyfast.[LGPL]
NeuAC++11framework,collectionofprogramminglanguages,andmultipurposesoftwaresystem
designedfor:thecreationofartificialintelligenceapplications.[BSD]
AsynchronousEventLoop
Boost.AsioAcrossplatformC++libraryfornetworkandlowlevelI/Oprogramming.[Boost]
libevAfullfeaturedandhighperformanceeventloopthatislooselymodelledafterlibevent,butwithoutits
limitationsandbugs.[BSDandGPL]
libeventAneventnotificationlibrary.[BSD]
libuvCrossplatformasychronousI/O.[BSD]
Audio
Audio,Sound,Music,DigitizedVoiceLibraries
FMODAneasytousecrossplatformaudioengineandaudiocontentcreationtoolforgames.[Freefor
noncommercial/Commercial]
MaximilianC++AudioandMusicDSPLibrary.[MIT]
OpenALOpenAudioLibraryAcrossplatformaudioAPI.[BSD/LGPL/Commercial]
OpusAtotallyopen,royaltyfree,highlyversatileaudiocodec.[BSD]
SpeexAfreecodecforfreespeech.ObsoletedbyOpus.[BSD]
TonicEasyandefficientaudiosynthesisinC++.[Unlicense]
VorbisOggVorbisisafullyopen,nonproprietary,patentandroyaltyfree,generalpurposecompressed
audioformat.[BSD]
Biology
Bioinformatics,Genomics,Biotech
libsequenceAC++libraryforrepresentingandanalyzingpopulationgeneticsdata.[GPL]
SeqAnAlgorithmsanddatastructuresfortheanalysisofsequenceswiththefocusonbiologicaldata.
[BSD/3clause]
VcflibAC++libraryforparsingandmanipulatingVCFfiles.[MIT]
WhamStructuralvariants(SVs)inGenomesbydirectlyapplyingassociationteststoBAMfiles.[MIT]
CLI
Console/TerminalUserInterface,CommandLineInterface
Boost.Program_optionsAlibrarytoobtainprogramoptionsviaconventionalmethodssuchascommand
lineandconfigfile.[Boost]
gflagsCommandlineflagsmoduleforC++.[BSD]
NcursesAterminaluserinterfaces.[MIT]
termboxAClibraryforwritingtextbaseduserinterfaces.[BSD]
Compression
CompressionandArchivingLibraries
bzip2Afreelyavailable,patentfree,highqualitydatacompressor.[BSD]
dobozCompressionlibrarywithveryfastdecompression.[zlib]
PhysicsFSAlibrarytoprovideabstractaccesstovariousarchives.Itisintendedforuseinvideogames,
andthedesignwassomewhatinspiredbyQuake3'sfilesubsystem.[zlib]
KArchiveAlibraryforcreating,reading,writingandmanipulatingfilearchiveslikezipandtar.Italso
providestransparentcompressionanddecompressionofdata,usingformatslikegzip,viaasubclassof
QIODevice.[LGPL]
LZ4ExtremelyFastCompressionalgorithm.[BSD]
LZHAMLosslessdatacompressionlibrarywithacompressionratiosimilartoLZMAbutwithmuchfaster
decompression.[BSD]
LZMA:zap:Thedefaultandgeneralcompressionmethodof7zformat.[PublicDomain]
LZMATAnextremelyfastrealtimelosslessdatacompressionlibrary.[GPL]
minizSingleCsourcefileDeflate/InflatecompressionlibrarywithzlibcompatibleAPI,ZIParchive
reading/writing,PNGwriting.[Unlicense]
MinizipZlibwithlatestbugfixesthatsupportsPKWAREdiskspanning,AESencryption,andIObuffering.
[zlib]
smazSmallstringscompressionlibrary.[BSD]
SnappyAfastcompressor/decompressor.[BSD]
ZLibAverycompactcompressionlibraryfordatastreams.[zlib]
ZZIPlibProvidesreadaccessonZIParchives.[MPL/LGPL]
Concurrency
ConcurrencyandMultithreading
Boost.ComputeAC++GPUComputingLibraryforOpenCL.[Boost]
BoltAC++templatelibraryoptimizedforGPUs.[Apache2]
C++ReactAreactiveprogramminglibraryforC++11.[Boost]
IntelTBBIntelThreadingBuildingBlocks.[GPL2withruntimeexception]
LibclsphAnOpenCLbasedGPUacceleratedSPHfluidsimulationlibrary.[MIT]
OpenCLTheopenstandardforparallelprogrammingofheterogeneoussystems.
OpenMPTheOpenMPAPI.
ThrustAparallelalgorithmslibrarywhichresemblestheC++StandardTemplateLibrary(STL).[Apache2]
HPXAgeneralpurposeC++runtimesystemforparallelanddistributedapplicationsofanyscale.[Boost]
VexCLAC++vectorexpressiontemplatelibraryforOpenCL/CUDA.[MIT]
Containers
C++BtreeAtemplatelibrarythatimplementsorderedinmemorycontainersbasedonaBtreedata
structure.[Apache2]
HashmapsImplementationofopenaddressinghashtablealgorithmsinC++.[MIT]
Cryptography
CryptographyandEncryptionLibraries
BcryptAcrossplatformfileencryptionutility.Encryptedfilesareportableacrossallsupportedoperating
systemsandprocessors.
BeeCrypt
BotanAcryptolibraryforC++.[BSD2]
Crypto++AfreeC++classlibraryofcryptographicschemes.[Boost]
GnuPGAcompleteandfreeimplementationoftheOpenPGPstandard.[GPL]
GnuTLSAsecurecommunicationslibraryimplementingtheSSL,TLSandDTLSprotocols.[LGPL2.1]
Libgcrypt
libmcrypt
LibreSSLAfreeversionoftheSSL/TLSprotocolforkedfromOpenSSLin2014.[?]
libsodiumP(ortable|ackageable)NaClbasedcryptolibrary,opinionatedandeasytouse.[ISC]
LibTomCryptAfairlycomprehensive,modularandportablecryptographictoolkit.[WTFPL]
NettleAlowlevelcryptographiclibrary.[LGPL]
OpenSSLArobust,commercialgrade,fullfeatured,andOpenSourcecryptographylibrary.[Apache]
retterAcollectionofhashfunctions,ciphers,tools,libraries,andmaterialsrelatedtocryptography.
TinyAES128inCAsmallandportableimplementationoftheAES128ECBencryptionalgorithm
implementedinC.[PublicDomain]
Database
DatabaseLibraries,SQLServers,ODBCDrivers,andTools
hiberliteC++Objectrelationalmappingforsqlite3.[BSD]
HiredisAminimalisticCclientlibraryfortheRedisdatabase.[BSD]
LevelDBAfastkeyvaluestoragelibrary.[BSD]
LMDBVeryfastembeddedkey/valuestorewithfullACIDsemantics.[OpenLDAP]
MongoDBCDriverMongoDBclientlibraryforC.[Apacheversion2.0]
MongoDBC++DriverC++driverforMongoDB.[Apacheversion2.0]
MongoDBLibbsonABSONutilitylibrary.[Apacheversion2.0]
MySQL++AC++wrapperforMySQL'sCAPI.[LGPL]
RocksDBEmbeddedkeyvaluestoreforfaststoragefromfacebook.[BSD]
SQLiteAcompletelyembedded,fullfeaturedrelationaldatabaseinafew100kthatyoucanincluderight
intoyourproject.[PublicDomain]
Debug
DebuggingLibraries,MemoryLeakandResourceLeakDetection,UnitTesting
Boost.TestBoostTestLibrary.[Boost]
CatchAmodern,C++native,headeronly,frameworkforunittests,TDDandBDD.[Boost]
CeleroC++BenchmarkingFramework.[Apache2.0]
CMockaunittestingframeworkforCwithsupportformockobjects.[Apache2]
CppUnitC++portofJUnit.[LGPL2]
CTestTheCMaketestdriverprogram.[BSD]
googletestGoogleC++TestingFramework.[BSD]
igdebugheapMultiplatformdebugheapusefulfortrackingdownmemoryerrors.[BSD]
libtapWritetestsinC.[GPL2]
MemTrackTrackingmemoryallocationsinC++.
microprofileProfilerwithwebviewformultipleplatforms.[PublicDomain]
minUnitAminimalunittestingframeworkforCwrittenusingonly2macros.[PublicDomain]
RemoterySingleCFileProfilerwithWebViewer.[Apache2]
UnitTest++AlightweightunittestingframeworkforC++.[MIT/XConsortiumlicense]
GameEngine
AllegroAcrossplatformlibrarymainlyaimedforvideogamesandmultimediaprogramming.[zlib]
Cocos2dxAmultiplatformframeworkforbuilding2dgames,interactivebooks,demosandother
graphicalapplications.[Commercial?]
delta3dArobustsimulationplatform.[LGPL2]
GamePlayAcrossplatformnativeC++gameframeworkforcreating2D/3Dmobileanddesktopgames.
[Apache2]
GodotAfullyfeatured,opensource,MITlicensed,gameengine.[MIT]
GritCommunityprojecttobuildafreegameengineforimplementingopenworld3Dgames.[MIT]
IrrlichtAhighperformancerealtime3DenginewritteninC++.[zlib]
PolycodeAcrossplatformframeworkforcreativecodeinC++(withLuabindings).[MIT]website
Torque2DAnopensourceandcrossplatformC++enginebuiltfor2Dgamedevelopment.[MIT]website
Torque3DAnopensourceC++enginebuiltfor3Dgamedevelopment.[MIT]website
GUI
GraphicUserInterface
CEGUIFlexible,crossplatformGUIlibrary.
FLTKFast,light,crossplatformC++GUItoolkit.[GPL2]
GTK+Amultiplatformtoolkitforcreatinggraphicaluserinterfaces.[LGPL]
gtkmmTheofficialC++interfaceforthepopularGUIlibraryGTK+.[LGPL]
imguiImmediateModeGraphicalUserInterfacewithminimaldependencies.[MIT]
libRocketlibRocketisaC++HTML/CSSgameinterfacemiddleware.[MIT]
MyGUIFast,flexibleandsimpleGUI.[MIT]
QCustomPlotQtplottingwidgetwithoutfurtherdependencies.[GPLv3]
QwtQtWidgetsforTechnicalApplications.[OwnbasedonLGPL]
QwtPlot3DAfeaturerichQt/OpenGLbasedC++programminglibrary,providingessentiallyabunchof
3Dwidgets.[zlib]
OtterUIOtterUIisaUserInterfacedevelopmentsolutionforembeddedsystemsandinteractive
entertainmentsoftware.[MIT]
PDCursesPublicdomaincurseslibrarywithbothsourcecodeandprecompiledlibraryavailable.
[PublicDomain]
SciterSciterisanembeddableHTML/CSS/scriptingengineaimedtobeusedasanUIlayerofmodern
desktopapplications.[Free/Commercial]
wxWidgetsAC++librarythatletsdeveloperscreateapplicationsforWindows,MacOSX,Linuxandother
platformswithasinglecodebase.[OwnLGPL]
Graphics
bgfxAcrossplatformrenderinglibrary.[BSD]
CairoA2Dgraphicslibrarywithsupportformultipleoutputdevices.[LGPL2orMozillaMPL]
Horde3DAsmall3Drenderingandanimationengine.[EPL]
magnumC++11andOpenGL2D/3Dgraphicsengine.[MIT]website
Ogre3D:zap:Asceneoriented,realtime,flexible3Drenderingengine(asopposedtoagameengine)
writteninC++.[MIT]
OpenSceneGraphAnopensourcehighperformance3Dgraphicstoolkit.[OSGPL]
Panda3DAframeworkfor3DrenderingandgamedevelopmentforPythonandC++.[BSD]
SkiaAcomplete2DgraphiclibraryfordrawingText,Geometries,andImages.[BSD]webpage
urho3dCrossplatformrenderingandgameengine.[Manydifferent,mostlyMIT]
ImageProcessing
Boost.GILGenericImageLibrary.
CImgAsmall,opensource,C++toolkitforimageprocessing.[OwnLGPLorGPL]
CxImageAnimageprocessingandconversionlibrarytoload,save,display,transformBMP,JPEG,GIF,
PNG,TIFF,MNG,ICO,PCX,TGA,WMF,WBMP,JBG,J2Kimages.[zlib]
FreeImageAnopensourcelibrarythatsupportspopulargraphicsimageformatsandothersasneededby
today'smultimediaapplications.[GPL2orGPL3]
GDCMGrassrootsDICOMlibrary.
ITKAnopensource,crossplatformsystemforimageanalysis.[Apache2.0fromITK4.0]
libvipsAfastimageprocessinglibrarywithlowmemoryneeds.[LGPL]website
Magick++ImageMagickprograminterfacesforC++.[Apache2.0]
MagickWndImageMagickprograminterfacesforC.[Apache2.0]
OpenCV:zap:Opensourcecomputervision.[BSD]
tesseractocrAnOCRengine.[Apache2.0]
VIGRAAgenericC++computervisionlibraryforimageanalysis.[MITX11]
VTKOpensource,freelyavailablesoftwaresystemfor3Dcomputergraphics,imageprocessingand
visualization.[BSD]
Internationalization
gettextGNU`gettext'.[GPL2]
IBMICUAsetofC/C++andJavalibrariesprovidingUnicodeandGlobalizationsupport.[ICU]
libiconvAnencodingconversionlibrarybetweendifferentcharacterencodings.[GPL]
Interprocesscommunication
ApacheThriftEfficientcrosslanguageIPC/RPC,worksbetweenC++,Java,Python,PHP,C#,andmany
moreotherlanguages.OriginallydevelopedbyFacebook.[Apache2]
Cap'nProtoFastdatainterchangeformatandcapabilitybasedRPCsystem.[MIT]
gRPCAhighperformance,opensource,generalpurposeRPCframework.[BSD]website
libjsonrpccppJSONRPCframeworkforC++serversandclients.[MIT]
nanomsgAsimplehighperformanceimplementationofseveral"scalabilityprotocols".[MIT]website
simplerpccppAsimpleRPCwrappergeneratortoC/C++functions.[BSD]
xmlrpccAlightweightRPClibrarybasedonXMLandHTTP.[BSD]
ZeroMQHighspeed,modularasynchronouscommunicationlibrary.[LGPL]
JSON
Boost.PropertyTreeApropertytreeparser/generatorthatcanbeusedtoparseXML/JSON/INI/Infofiles.
[Boost]
frozenJSONparserandgeneratorforC/C++.[GPL&GPL2]
JanssonClibraryforencoding,decodingandmanipulatingJSONdata.[MIT]
jbsonjbsonisalibraryforbuilding&iteratingBSONdata,andJSONdocumentsinC++14.[Boost]
JeayeSONAverysane(headeronly)C++JSONlibrary.[BSD]
jsonJSONforModernC++.[MIT]
JSON++AJSONparserinC++.[MIT]
JsonCppAC++libraryforinteractingwithJSON.[MIT]
jsonparserVerylowfootprintJSONparserwritteninportableANSIC.[BSD]
json11AtinyJSONlibraryforC++11.[MIT]
jsonvoorheesJSONlibraryforC++.SupportforC++11.Nodependencies,fastanddevfriendly.
[Apache2]
juteVerysimpleC++JSONParser.[PublicDomain]
libjsonAJSONparserandprinterlibraryinC.easytointegratewithanymodel.[LGPL]
libjsonLightweightJSONlibrary.[?]
LIBUCL:zap:Universalconfigurationlibraryparser[?]
PicoJSONAheaderfileonly,JSONparserserializerinC++.[BSD]
qtjsonAsimpleclassforparsingJSONdataintoaQVarianthierarchyandviceversa.[GPLv3]
QJsonAqtbasedlibrarythatmapsJSONdatatoQVariantobjects.[LGPL2]
RapidJSON:zap:AfastJSONparser/generatorforC++withbothSAX/DOMstyleAPI.[MIT]
YAJLAfaststreamingJSONparsinglibraryinC.[ISC]
Logging
Boost.LogDesignedtobeverymodularandextensible.[Boost]
easyloggingppSingleheaderonlyC++logginglibrary.[MIT]website
G3logAsynchronousloggerwithDynamicSinks.[PublicDomain]
Log4cppAlibraryofC++classesforflexibleloggingtofiles,syslog,IDSAandotherdestinations.[LGPL]
log4cplusAsimpletouseC++loggingAPIprovidingthreadsafe,flexible,andarbitrarilygranularcontrol
overlogmanagementandconfiguration.[BSD&Apache2.0]
spdlogSuperfast,headeronly,C++logginglibrary.
templogAverysmallandlightweightC++librarywhichyoucanusetoaddloggingtoyourC++
applications.[Boost]
MachineLearning
CaffeAfastframeworkforneuralnetworks.[BSD]
CCVCbased/Cached/CoreComputerVisionLibrary,AModernComputerVisionLibrary.[BSD]
MinervaAfastandflexiblesystemfordeeplearning.[Apache2]
mlpackAscalablec++machinelearninglibrary.[LGPLv3]
OpenCV:zap:OpenSourceComputerVisionLibrary.[BSD]website
RecommenderClibraryforproductrecommendations/suggestionsusingcollaborativefiltering(CF).[BSD]
SHOGUNTheShogunMachineLearningToolbox.[GPLv3]
sofiamlThesuiteoffastincrementalalgorithmsformachinelearning.[Apache2]
Math
ApopheniaAClibraryforstatisticalandscientificcomputing[GPL2]
ArmadilloAhighqualityC++linearalgebralibrary,aimingtowardsagoodbalancebetweenspeedand
easeofuse.Thesyntax(API)isdeliberatelysimilartoMatlab.[MPL2]
blazehighperformanceC++mathlibraryfordenseandsparsearithmetic.[BSD]
ceressolverC++libraryformodelingandsolvinglargecomplicatednonlinearleastsquaresproblems
fromgoogle.[BSD]
CGalCollectionofefficientandreliablegeometricalgorithms.[LGPL&GPL]
cmlfreeC++mathlibraryforgamesandgraphics.[Boost]
EigenAhighlevelC++libraryoftemplateheadersforlinearalgebra,matrixandvectoroperations,
numericalsolversandrelatedalgorithms.[MPL2]
GMTLGraphicsMathTemplateLibraryisacollectionoftoolsimplementingGraphicsprimitivesin
generalizedways.[GPL2]
GMPAC/C++libraryforarbitraryprecisionarithmetic,operatingonsignedintegers,rationalnumbers,
andfloatingpointnumbers.[LGPL3&GPL2]
Multimedia
GStreamerAlibraryforconstructinggraphsofmediahandlingcomponents.[LGPL]
LIVE555StreamingMediaMultimediastreaminglibraryusingopenstandardprotocols(RTP/RTCP,
RTSP,SIP).[LGPL]
libVLClibVLC(VLCSDK)mediaframework.[GPL]
QtAvAmultimediaplaybackframeworkbasedonQtandFFmpegtowriteaplayereasily.[LGPL]website
SDL:zap:SimpleDirectMediaLayer.[zlib]
SFML:zap:SimpleandFastMultimediaLibrary.[zlib]
Networking
ACEAnOONetworkProgrammingToolkitinC++.[?MIT?]
Boost.Asio:zap:AcrossplatformC++libraryfornetworkandlowlevelI/Oprogramming.[Boost]
CasablancaC++RESTSDK.[Apache2]
cppnetlibAcollectionofopensourcelibrariesforhighlevelnetworkprogramming.[Boost]
Dyad.cAsynchronousnetworkingforC.[MIT]
libcurlMultiprotocolfiletransferlibrary.[MIT/Xderivatelicense]
libjingleGoogletalkvoiceandP2Pinteroperabilitylibrary.[BSD]
MongooseExtremelylightweightwebserver.[GPL2]
MuduoAC++nonblockingnetworklibraryformultithreadedserverinLinux.[BSD]
net_skeletonTCPclient/serverlibraryforC/C++.[GPL2]
nope.cAClanguagebasedultralightsoftwareplatformforscalableserversideandnetworking
applications.Thinknode.jsforCprogrammers.[GPL2]
OnionHTTPserverlibraryinCdesignedtobelightweightandeasytouse.[Apache2/GPL2]
POCO:zap:C++classlibrariesandframeworksforbuildingnetworkandinternetbasedapplicationsthat
runondesktop,server,mobileandembeddedsystems.[Boost]website
ProxygenFacebook'scollectionofC++HTTPlibrariesincludinganeasytouseHTTPserver.[BSD]
RakNetAcrossplatform,opensource,C++networkingengineforgameprogrammers.[BSD]
TufoAnasynchronouswebframeworkforC++builtontopofQt.[LGPL2]
WebSocket++C++/BoostAsiobasedwebsocketclient/serverlibrary.[BSD]
Physics
Dynamicssimulationengines
Box2DA2Dphysicsengineforgames.[BSDlike]
BulletA3Dphysicsengineforgames.[zlib]website
ChipmunkAfastandlightweight2Dgamephysicslibrary.[MIT]website
LiquidFunA2Dphysicsengineforgames.[BSDlike]
NewtonDynamicsAnintegratedsolutionforrealtimesimulationofphysicsenvironments.[zlib]
ODEOpenDynamicsEngineAnopensource,highperformancelibraryforsimulatingrigidbody
dynamics.[BSD&LGPL]
ofxBox2dopenFrameworkswrapperforBox2D.[BSDlike]
SimbodyHighperformanceC++multibodydynamics/physicslibraryforsimulatingarticulated
biomechanicalandmechanicalsystemslikevehicles,robots,andthehumanskeleton.[Apache2]
Robotics
MOOSIvPAsetofopensourceC++modulesforprovidingautonomyonroboticplatforms,inparticular
autonomousmarinevehicles.
MRPTMobileRobotProgrammingToolkit.[BSD]
PCLPointCloudLibraryisastandalone,largescale,openprojectfor2D/3Dimageandpointcloud
processing[BSD]website
RoboticsLibrary(RL)AselfcontainedC++libraryforrobotkinematics,motionplanningandcontrol.[BSD]
RobWorkAcollectionofC++librariesforsimulationandcontrolofrobotsystems.[Apache2]
ROSRobotOperatingSystemprovideslibrariesandtoolstohelpsoftwaredeveloperscreaterobot
applications.[BSD]
ScientificComputing
FFTWAClibraryforcomputingtheDFTinoneormoredimensions.[GPL]
GSLGNUscientificlibrary.[GPL]
Scripting
ChaiScriptAneasytouseembeddedscriptinglanguageforC++.[BSD]website
LuaAminimalandfastscriptingengineforconfigurationfilesandbasicapplicationscripting.[MIT]
luacxxC++11APIforcreatingLuabindings.[MIT]
SWIGAwrapper/interfaceGeneratorthatletyoulinkyourc++codetoJavascript,Perl,PHP,Python,Tcl
andRuby.[GPL/Outputnotlicensed]
V7AnembeddedJavaScriptengine.[GPL2]
V8AfastJavaScriptenginebyGooglethatcanbeembeddedintoanyC++application.[BSD]
Serialization
cerealAC++11libraryforserialization.[BSD]
FlatBuffersAMemoryefficientserializationlibrary.[Apache2]
MessagePackEfficientbinaryserializationformat"likeJSON"forC/C++.[Apache2]website
protobufProtocolBuffersGoogle'sdatainterchangeformat.[BSD]
protobufcProtocolBuffersimplementationinC.[BSD]
SimpleBinaryEncodingencodinganddecodingapplicationmessagesinbinaryformatforlowlatency
applications.[Apache2]
Video
libvpxVP8/VP9CodecSDK.[BSD]
FFmpegAcomplete,crossplatformsolutiontorecord,convertandstreamaudioandvideo.
[LGPL2/GPL2]
libde265Openh.265videocodecimplementation.[LGPL]website
OpenH264OpenSourceH.264Codec.[BSD]website
TheoraAfreeandopenvideocompressionformat.[BSD]
VirtualMachines
CarpVM"interesting"VMinC.Let'sseehowthisgoes.[GPLv3]
MicroPythonAimstoputanimplementationofPython3.xonamicrocontroller.[MIT]
TinyVMAsmall,fast,lightweightvirtualmachinewritteninpureANSIC.[MIT]
WebApplicationFramework
CivetwebProvideseasytouse,powerful,C/C++embeddablewebserverwithoptionalCGI,SSLandLua
support.[MIT]
CppCMSAFreeHighPerformanceWebDevelopmentFramework(notaCMS).[LGPLv3]
CrowCrowisC++microwebframework(inspiredbyPythonFlask).[BSD]
Koreultrafastandflexiblewebserver/frameworkforwebapplicationsdevelopedinC.[ISC]
libOnionlightweightlibrarytohelpyoucreatewebserversinCprogramminglanguage.[LGPLv3]
QDjangoAwebframeworkwritteninC++andbuiltontopoftheQtlibrary.Wherepossibleittriestofollow
django'sAPI,henceitsname.[LGPL]
WtAC++libraryfordevelopingwebapplications.[GPL/Commercial]
XML
XMLiscrap.Really.Therearenoexcuses.XMLisnastytoparseforhumans,andit'sadisastertoparseeven
forcomputers.There'sjustnoreasonforthathorriblecraptoexist.LinusTorvalds
Boost.PropertyTreeApropertytreeparser/generatorthatcanbeusedtoparseXML/JSON/INI/Infofiles.
[Boost]
ExpatAnXMLparserlibrarywritteninC.[MIT]
Libxml2TheXMLCparserandtoolkitofGnome.[MIT]
libxml++AnXMLParserforC++.[LGPL2]
PugiXMLAlightweight,simpleandfastXMLparserforC++withXPathsupport.[MIT]
RapidXmlAnattempttocreatethefastestXMLparserpossible,whileretaininguseability,portabilityand
reasonableW3Ccompatibility.[Boost]
TinyXMLAsimple,small,minimal,C++XMLparserthatcanbeeasilyintegratingintootherprograms.
[zlib]
TinyXML2Asimple,small,efficient,C++XMLparserthatcanbeeasilyintegratingintootherprograms.
[zlib]
TinyXML++AcompletelynewinterfacetoTinyXMLthatusesMANYoftheC++strengths.Templates,
exceptions,andmuchbettererrorhandling.[MIT]
XercesC++AvalidatingXMLparserwritteninaportablesubsetofC++.[Apache2]
Miscellaneous
Usefullibrariesortoolsthatdon'tfitinthecategoriesaboveormaybejustnotcategorisedyet
BetterStringAnalternativetothestringlibraryforCwhichismorefunctionalanddoesnothavebuffer
overflowoverrunproblems.AlsoincludesaC++wrapper.[BSD,GPL2]
Boost.SignalsAnimplementationofamanagedsignalsandslotssystem.[Boost]
C++FormatSmall,safeandfastformattinglibraryforC++.[BSD]
casacoreAsetofc++corelibrariesderivedfromaips++.[LGPL]
CppVerbalExpressionsC++regularexpressionsmadeeasy.[MIT]
QtVerbalExpressionsThisQtlibisbasedoffoftheC++VerbalExpressionslibrary.[MIT]
csmartpointersSmartpointersforthe(GNU)Cprogramminglanguage.[MIT]
cxxprettyprintAprettyprintinglibraryforC++containers.[Boost]
DynaPDFAneasytousePDFgenerationlibrary.[Commercial]
gccpoisonAsimpleheaderfilefordeveloperstobanunsafeC/C++functionsfromapplications.
googlemockAlibraryforwritingandusingC++mockclasses.[BSD]
HTTPParser:zap:Ahttprequest/responseparserforC.[MIT]
KlibSmallandlightweightimplementationsofcommonalgorithmsanddatastructures.[MIT]
libsigc++AtypesafecallbacksystemforstandardC++.[LGPL]
libcpuidAsmallClibraryforx86CPUdetectionandfeatureextraction.[BSD]
libevilTheEvilLicenseManager.[GPLv3]
libnihAlightweightlibraryofCfunctionsandstructures.[GPL2.1]
libusbAuniversalUSBlibrarywhichallowsforportableaccesstoUSBdevices.[LGPL2]
PCREAregularexpressionClibraryinspiredbytheregularexpressioncapabilitiesinPerl.[BSD]
PHPCPPAlibrarytobuildPHPextensionswithC++.[Apache2]website
RemoteCallFrameworkInterprocesscommunicationframeworkforC++.[GPL2/Commercial]
ScintillaAfreesourcecodeeditingcomponent.[MIT]
SDSSimpleDynamicStringslibraryforC.[BSD]
SerialCommunicationLibraryCrossplatform,SerialPortlibrarywritteninC++.[MIT]
sigslotC++Signal/SlotLibrary.[PublicDomain]
SLDRSuperLightDNSResolver.[GPL2/Commercial]
SLRESuperLightRegularExpressionlibrary.[GPL2/Commercial]
StageMobilerobotsimulator.[GPL2]
stbArangeofsinglefilelibrariesforC/C++.[PublicDomain]
VarTypesAfeaturerich,objectorientedframeworkformanagingvariablesinC++/Qt4.[LGPL]
ZBarAbarcodescannerlibrary,whichallowstoscanphotos/images/videostreamsforbarcodesand
returntheirvalue.[LGPL2]
ZXingAnopensource,multiformat1D/2DbarcodeimageprocessinglibraryimplementedinJava,with
portstootherlanguages.[Apache]
Software
Softwareforcreatingadevelopmentenvironment.
Compiler
ListofC/C++compilers
8ccASmallCCompiler.
cCompileandexecuteC"scripts"inonego![MIT]
ClangACcompilerforLLVM.SupportsC11.DevelopedbyApple.[NCSA]
GCCGNUCompilerCollection.SupportsC11andOpenMP.[GNUGPL3]
PCCAveryoldCcompiler.SupportsC99.
IntelC++CompilerDevelopedbyIntel.
LLVMCollectionofmodularandreusablecompilerandtoolchaintechnologies.
MicrosoftVisualC++MSVC,developedbyMicrosoft.
OpenWatComWatcomC,C++,andFortrancrosscompilersandtools.[SybaseOpenWatcomPublic
License]
OracleSolarisStudioC,C++andFortrancompilerforSPARCandx86.SupportsC++11.Availableon
LinuxandSolaris.[OTNDeveloperLicense]
TCCTinyCCompiler.[LGPL]
OnlineCompiler
ListofonlineC/C++compilers
codepadAnonlinecompiler/interpreter,andasimplecollaborationtool.
CodeTwistAsimpleonlinecompiler/interpreter,whereyoucanpasteyourC,C++orJavacodeand
executeitonlineandseeresults.
coliruOnlinecompiler/shellwithsupportforvariousC++compilers.
CompilerExplorerAninteractivecompilerwithassemblyoutputavailable.
CompileOnlineCompileandExecuteC++onlineonLinux.
IdeoneAnonlinecompileranddebuggingtoolwhichallowsyoutocompilesourcecodeandexecuteit
onlineinmorethan60programminglanguages.
RextesterOnlinecompilerwhichprovidesseveralcompilers(Clang,GCC,MSVC)andseveraleditors.
Rise4FunOnlineVisualC++compiler.
WandboxAnonlineClang/GCCcompilerwithBoostavailable.
Debugger
ListofC/C++debuggers
ComparisonofdebuggersAlistofDebuggersfromWikipedia.
GDBGNUDebugger.
ValgrindAtoolformemorydebugging,memoryleakdetection,andprofiling.
x64_dbgAnopensourcex64/x32debuggerforwindows.
IntegratedDevelopmentEnvironment
ListofC/C++nominalIDEs.
AnjutaDevStudioTheGNOMEIDE.[GPL3]
AppCodeanIDEforObjectiveC,C,C++,andJavaScriptdevelopmentbuiltonJetBrainsIntelliJIDEA
platform.
CLionCrossplatformC/C++IDEfromJetBrains.Inprerelease/earlyaccessstadium.
Code::BlocksAfreeC,C++andFortranIDE.
CodeLiteAnothercrossplaform,freeC/C++IDE.[GPL2withanexceptionforplugins]
DevC++AportableC/C++/C++11IDE.
EclipseCDTAfullyfunctionalCandC++IDEbasedontheEclipseplatform.
GeanySmall,fast,crossplatformIDE.[GPL]
IBMVisualAgeAfamilyofcomputerintegrateddevelopmentenvironmentsfromIBM.
IronymodeAC/C++minormodeforEmacspoweredbylibclang.
KDevelopAfree,opensourceIDE.
MicrosoftVisualStudioAnIDEfromMicrosoft.
NetBeansAnIDEfordevelopingprimarilywithJava,butalsowithotherlanguages,inparticularPHP,
C/C++,andHTML5.
QtCreator:zap:AcrossplatformC++,JavaScriptandQMLIDEwhichispartoftheSDKforQt.
rtagsAc/c++client/serverindexerwithforintegrationwithemacsbasedonclang.
XcodeDevelopedbyApple.
YouCompleteMeYouCompleteMeisafast,asyoutype,fuzzysearchcodecompletionengineforVim.
BuildSystems
BearAtooltogeneratecompilationdatabaseforclangtooling.
BiicodeSimple,filebaseddependencymanager.
CMakeCrossplatformfreeandopensourcesoftwareformanagingthebuildprocessofsoftwareusinga
compilerindependentmethod.[BSD]
CPMAC++PackageManagerbasedonCMakeandGit.
FASTBuildHighperformance,opensourcebuildsystemsupportinghighlyscalablecompilation,caching
andnetworkdistribution.
NinjaAsmallbuildsystemwithafocusonspeed.
SconsAsoftwareconstructiontoolconfiguredwithPythonscipt.
tundraHighperformancecodebuildsystemdesignedtogivethebestpossibleincrementalbuildtimes
evenforverylargesoftwareprojects.
tupFilebasedbuildsystemthatmonitorsinthebackgroundforchangedfiles.
PremakeAtoolconfiguredwithluascipttogenerateprojectfilesforVisualStudio,GNUMake,Xcode,
Code::Blocks,andmoreacrossWindows,MacOSX,andLinux.
StaticCodeAnalysis
Listoftoolsforimprovingqualityandreducingdefectsbycodeanalysis
CppcheckAtoolforstaticC/C++codeanalysis.source
includewhatyouuseAtoolforusewithclangtoanalyzeincludesinCandC++sourcefiles.
OCLintAstaticsourcecodeanalysistooltoimprovequalityandreducedefectsforC,C++andObjective
C.source
ClangStaticAnalyzerAsourcecodeanalysistoolthatfindsbugsinC,C++,andObjectiveCprograms.
ListoftoolsforstaticcodeanalysisAlistoftoolsforstaticcodeanalysisfromWikipedia.
Resources
Variousresources,suchasbooks,websites,andarticlesforimprovingyourC++developmentskillsand
knowledge.
APIDesign
BeautifulNativeLibraries
DesigningQtStyleC++APIs
Articles
FantasticC/C++relatedarticles.
CppCon2014SpeakerMaterialsSpeakermaterialsfromCppCon2014.
C++Now2014PresentationsPresentationmaterialspresentedatC++Now2014.
C++Now2013PresentationsPresentationmaterialspresentedatC++Now2013.
C++Now2012PresentationsPresentationmaterialspresentedatC++Now2012.
Books
FantasticC/C++relatedbooks.
ListofFreeC/C++Books
FreeCBooksvhf/freeprogrammingbooks/C.
FreeC++Booksvhf/freeprogrammingbooks/C++.
6FreeeBooksOnC++GameProgrammingLearnhowtocreategraphicsAndvideogamesinC++.
CodingStyle
C++DosandDon'tsTheChromiumProjects>ForDevelopers>CodingStyle>C++DosandDon'ts.
googlestyleguideStyleguidesforGoogleoriginatedopensourceprojects.
GoogleC++StyleGuide
GNUCodingStandard
Linuxkernelcodingstyle
Talks
CppConTalks:zap:TheC++conference.
QuickgamedevelopmentwithC++11/C++14CppCon2014talkbyVittorioRomeo.
Videos
FantasticC/C++relatedvideos.
AwesomeCProgrammingTutorialsinHiDef[HD]AcollectionofdetailedCProgrammingLanguage
TutorialsforBeginnersandNewProgrammers.
C++byVoidRealms.
C++QtProgrammingbyVoidRealms.
C++ProgrammingTutorialsPlaylistTheNewBostonOfficialBuckysC++ProgrammingTutorialsPlaylist.
C++ProgrammingTutorialsfromthenewbostonTheseareallofthenewboston'sC++programming
tutorials.
C++GUIwithQtPlaylistOfficialPlaylistforthenewbostonC++GUIwithQttutorials.
CProgrammingTutorialsAllofTheNewBoston'sCprogrammingtutorialsarerighthere.
BoQian'splaylistBoostLibrary,C++StandardLibrary,ModernC++,AdvancedC++,AdvancedSTL,...
Websites
UsefulC/C++relatedwebsites.
StandardC++:zap:News,Status&DiscussionaboutStandardC++.
CppConTheC++Conference.
C++referenceC++98,C++03,C++11,C++14reference.
cplusplus.comTheC++ResourcesNetwork.
CFAQCfrequentlyaskedquestions.
C++FAQC++frequentlyaskedquestions.
C++FQALiteC++frequentlyquestionedanswers.
GuruoftheWeekAregularseriesofC++programmingproblemscreatedandwrittenbyHerbSutter.
MeetingC++
Weblogs
UsefulC/C++relatedweblogs.
CodingForSpeedCodingForSpeedDOTCOM,LessExecutionTime.
EricNiebler
StickyBits
PaulFultzII'sBlog
OtherAwesomeProjects
Collectionofusefulcodes,snippets,...
algorithmsAlgorithms&DataStructuresinC++.
calgorithmsCalgorithmslibrary.
C/C++AwesomePackContainssomeawesomec++codes,packedinone.
OtherAwesomeLists
Otheramazinglyawesomelists
listsListof(awesome)listscuratedonGitHub.
awesomeawesomenessAcuratedlistofawesomeawesomeness.
awesomeAcuratedlistofawesomelists.
AwesomeCAcuratedlistofawesomeCframeworks,libraries,resourcesandothershinythings.
freeprogrammingbooksListofFreelyAvailableProgrammingBooks.
paperswelovePapersfromthecomputersciencecommunitytoreadanddiscuss.
awesomealgorithmsAcuratedlistofawesomeplacestolearnand/orpracticealgorithms.
awesometalksAlotofscreencasts,recordingsofusergroupgatheringsandconferencetalks.
ProjectsAlistofpracticalprojectsthatanyonecansolveinanyprogramminglanguage.
Contributing
PleaseseeCONTRIBUTINGfordetails.