You are on page 1of 34

https://github.

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.

You might also like