Tag Archives: curated list

A community-Curated List of conferences around the world for Android developers.

via AndroidStudyGroup/conferences · GitHub.

Send a pull-request which adds a file to the _conferences/ directory with a new file representing the conference. The file should be named with the conference name, the year, and with an .md extension (for example, my-cool-conference-2016.md).

A curated list of awesome AngularJS Courses, tutorial, libraries and software.

Click to Read

Help us on making AngularJS tutorial more resourcefull. Please take a quick gander at the contribution guidelines first.


A curated list of awesome big data frameworks, ressources and other awesomeness.

A curated list of awesome big data frameworks, resources and other awesomeness. Inspired byawesome-php, awesome-python, awesome-ruby, hadoopecosystemtable & big-data. Click to Read>>

Your contributions are always welcome!

A curated list of awesome Swift frameworks, libraries and software.

README.md Added Basis 2 days ago


Awesome Swift

A curated list of awesome Swift frameworks, libraries and software. Inspired by awesome-php.


  • SwiftOverlays – GUI library for displaying various popups and notifications.

JSON/XML Manipulation

  • SwiftyJSON – The better way to deal with JSON data in Swift.
  • json-swift – A basic library for working with JSON in Swift.
  • Argo – JSON parsing library for Swift, inspired by Aeson.
  • ObjectMapper – JSON Object mapping written in Swift.
  • SWXMLHash – Simple XML parsing in Swift.
  • Alamofire-SwiftyJSON – Alamofire extension for serialize NSData to SwiftyJSON.
  • Starscream – WebSockets Library


Databases implemented in Swift.

  • Realm – A mobile database that runs directly inside phones, tablets or wearables.
  • SQLite.swift – A pure Swift framework wrapping SQLite3. Small. Simple. Safe.
  • SwiftData – A simple and effective wrapper around the SQLite3 C API written completely in Swift.
  • Squeal – A Swift wrapper for SQLite databases.
  • SQLiteDB – Basic SQLite wrapper for Swift.


Libraries for testing codebases and generating test data.

  • Quick – A behavior-driven development test framework for Swift and Objective-C.
  • Sleipnir – A BDD-style framework for Swift.
  • Nimble – A Matcher Framework for Swift.


Libraries for generating documentation files.

  • jazzy – A soulful way to generate docs for Swift & Objective-C


Libraries for one-to-many communications.

  • EmitterKit – An elegant event framework built in Swift


Libraries for working with event and task queues.

  • TaskQueue – A Task Queue Class developed in Swift.
  • Dispatcher – Queues, timers, and task groups in Swift


Swift libraries and wrappers for HTTP clients.

  • Alamofire – an HTTP networking library written in Swift.
  • SwiftHTTP – Thin wrapper around NSURLSession in swift. Simplifies HTTP requests.
  • Net – HttpRequest wrapper written in Swift.


Libraries for caching.

  • HanekeSwift – A lightweight generic cache for iOS written in Swift with extra love for images.


Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.

  • CryptoSwift – Crypto related functions and helpers for Swift implemented in Swift programming language.
  • SHA256-Swift – Swift framework wrapping CommonCrypto’s SHA256 methods.
  • SwiftSSL – An Elegant crypto toolkit in Swift.


Libraries for generating and working with log files.

  • XCGLogger – A debug log framework for use in Swift projects.
  • Swell – A logging utility for Swift and Objective C.

Third Party APIs

Libraries for accessing third party APIs.

  • Swifter – A Twitter framework for iOS & OS X written in Swift


  • Dollar.swift – A functional tool-belt for Swift Language similar to Lo-Dash or Underscore in Javascript.
  • swiftz – A Swift library for functional programming.
  • ExSwift – JavaScript (Lo-Dash, Underscore) & Ruby inspired set of Swift extensions for standard types and classes.
  • Observable-Swift – Value Observing and Events for Swift.
  • PromiseKit – A delightful Promises implementation for iOS.
  • Promise – Simple promises library in Swift.
  • SwiftTask – Promise + progress + pause + cancel, using SwiftState (state machine).
  • Pythonic.swift – Pythonic tool-belt for Swift – a Swift implementation of selected parts of Python standard library.
  • SWRoute – A tiny Swift wrapper. Allows you to route (hook) quite any function/method with another function/method or even a closure.
  • Euler – Swift Custom Operators for Mathematical Notation.
  • swix – Swift Matrix and Machine Learning Library.
  • Easy-Cal-Swift – Overload +-*/ operator for Swift, make it easier to use (and not so strict).
  • AlecrimCoreData – A simple Core Data wrapper library written in Swift.
  • Async – Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch.
  • SwiftState – Elegant state machine for Swift.
  • LlamaKit – Collection of must-have functional Swift tools.
  • ReactKit – Swift Reactive Programming.
  • Basis – A number of foundational functions, types, and typeclasses.


  • acli – commandline tool to download curated libraries from github (very beta)


Various resources, such as books, websites and articles, for improving your Swift development skills and knowledge.

Swift Websites

Swift Books

Swift Videos

Swift Playgrounds

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness list.


Your contributions are always welcome! Please submit a pull request or create an issue to add a new framework, library or software to the list. Do not submit a project, which hasn’t been updated in the past 6 months or is not awesome.

A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things.


Awesome C/C++

A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-… stuff.

Standard Libraries

C++ Standard Library – including STL Containers, STL Aglorithm, STL Functional, etc.


C++ generic frameworks and libraries.

  • Apache C++ Standard Library – A collection of algorithms, containers, iterators, and other fundamental components. [Apache2]
  • ASL – Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
  • Boost :star: – A large collection of generic C++ libraries. [Boost] website
  • BDE – The BDE Development Environment from Bloomberg Labs. [MIT]
  • Cinder – A community-developed, free and open source library for professional-quality creative coding. [BSD]
  • Cxxomfort – A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
  • Dlib :star: – A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost]
  • EASTL – Public part of EA-STL. [BSD]
  • ffead-cpp – Framework for Enterprise Application Development. [Apache2]
  • Folly – An open-source C++ library developed and used at Facebook. [Apache2]
  • 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 – An open source C++ toolkit for creative coding. [MIT]
  • Qt :star: – A cross-platform application and UI framework. [LGPL]
  • 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++. [GPLv2]
  • 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]
  • Ultimate++ – A C++ cross-platform rapid application development framework. [BSD]
  • Windows Template Library – A C++ library for developing Windows applications and UI components. [Public]
  • Yomm11 – Open multi-methods for C++11. [Boost]

Artificial Intelligence

  • 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]
  • Neu – A C++ 11 framework, collection of programming languages, and multipurpose software system designed for: the creation of artificial intelligence applications. [BSD]

Asynchronous Event Loop

  • Boost.Asio – A cross-platform C++ library for network and low-level I/O programming. [Boost]
  • 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]


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]
  • Maximilian – C++ Audio and Music DSP Library. [MIT]
  • OpenAL – Open Audio Library – A crossplatform audio API. [BSD/LGPL/Commercial]
  • Opus – A totally open, royalty-free, highly versatile audio codec. [BSD]
  • 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]


Bioinformatics, Genomics, Biotech

  • 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.


Compression and Archiving Libraries

  • bzip2 – A freely available, patent free, high-quality data compressor. [BSD]
  • doboz – Compression library with very fast decompression. [zlib]
  • 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]
  • LZ4 – Extremely Fast Compression algorithm. [BSD]
  • LZHAM – Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
  • LZMA :star: – The default and general compression method of 7z format. [LGPL]
  • 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]
  • Snappy – A fast compressor/decompressor. [BSD]
  • ZLib – A very compact compression library for data streams. [zlib]
  • ZZIPlib – Provides read access on ZIP-archives. [MPL/LGPL]


Concurrency and Multithreading

  • Boost.Compute – A C++ GPU Computing Library for OpenCL. [Boost]
  • Bolt – A C++ template library optimized for GPUs. [Apache2]
  • C++React – A reactive programming library for C++11. [Boost]
  • Intel TBB – Intel® Threading Building Blocks. [GPLv2 with runtime exception]
  • Libclsph – An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
  • OpenCL – The open standard for parallel programming of heterogeneous systems.
  • OpenMP – The OpenMP API.
  • Thrust – A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
  • 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]


  • C++ B-tree – A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
  • Hashmaps – Implementation of open addressing hash table algorithms in C++. [MIT]


Cryptography and Encryption Libraries

  • Bcrypt – A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors.
  • BeeCrypt
  • Botan – A crypto library for C++. [BSD-2]
  • Crypto++ – A free C++ class library of cryptographic schemes. [Boost]
  • GnuPG – A complete and free implementation of the OpenPGP standard. [GPL]
  • GnuTLS – A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPLv2.1]
  • Libgcrypt
  • libmcrypt
  • 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]
  • LibTomCrypt – A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
  • Nettle – A low-level cryptographic library. [LGPL]
  • OpenSSL – A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache]
  • Tiny AES128 in C – A small and portable implementation of the AES128 ECB encryption algorithm implemented in C. [PublicDomain]


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. [BSD]
  • LMDB – Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
  • MySQL++ – A C++ wrapper for MySQL’s C API. [LGPL]
  • RocksDB – Embedded key-value store for fast storage from facebook. [BSD]
  • SQLite – A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]


Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing

  • Boost.Test – Boost Test Library. [Boost]
  • Catch – A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
  • CppUnit – C++ port of JUnit. [LGPLv2]
  • CTest – The CMake test driver program. [BSD]
  • googletest – Google C++ Testing Framework. [BSD]
  • ig-debugheap – Multiplatform debug heap useful for tracking down memory errors. [BSD]
  • libtap – Write tests in C. [GPLv2]
  • MemTrack – Tracking memory allocations in C++.
  • microprofile – Profiler with web-view for multiple platforms. [PublicDomain]
  • minUnit – A minimal unit testing framework for C written using only 2 macros. [PublicDomain]
  • Remotery – Single C File Profiler with Web Viewer. [Apache2]
  • UnitTest++ – A lightweight unit testing framework for C++. [MIT/X Consortium license]

Game Engine

  • Cocos2d-x – A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [Commercial?]
  • Grit – Community project to build a free game engine for implementing open world 3D games. [MIT]
  • Irrlicht – An open source high performance realtime 3D engine written in C++. [zlib]
  • Polycode – Open-Source Framework for creating games in C++ (with Lua bindings). [MIT]


Graphic User Interface

  • CEGUI – Flexible, cross-platform GUI library.
  • FLTK – Fast, light, cross-platform C++ GUI toolkit. [GPLv2]
  • 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]
  • MyGUI – Fast, flexible and simple GUI. [MIT]
  • Ncurses – A terminal user interfaces. [MIT]
  • 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]
  • OtterUI – OtterUI is a User Interface development solution for embedded systems and interactive entertainment software. [MIT]
  • PDCurses – Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
  • 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]


  • bgfx – A cross-platform rendering library. [BSD]
  • Cairo – A 2D graphics library with support for multiple output devices. [LGPLv2 or Mozilla MPL]
  • Horde3D – A small 3D rendering and animation engine. [EPL]
  • magnum – C++11 and OpenGL 2D/3D graphics engine. [MIT] website
  • Ogre 3D :star: – 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]
  • Panda3D – A framework for 3D rendering and game development for Python and C++. [BSD]
  • Skia – A complete 2D graphic library for drawing Text, Geometries, and Images. [bSD] webpage
  • urho3d – Cross-platform rendering and game engine. [Many different, mostly 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]
  • FreeImage – An open source library that supports popular graphics image formats and others as needed by today’s multimedia applications. [GPLv2 or GPLv3]
  • GDCM – Grassroots DICOM library.
  • ITK – An open-source, cross-platform system for image analysis. [Apache 2.0 from ITK 4.0]
  • Magick++ – ImageMagick program interfaces for C++. [Apache 2.0]
  • MagickWnd – ImageMagick program interfaces for C. [Apache 2.0]
  • OpenCV :star: – Open source computer vision. [BSD]
  • tesseract-ocr – An OCR engine. [Apache 2.0]
  • 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]


  • gettext – GNU `gettext’. [GPLv2]
  • 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]


  • frozen – JSON parser and generator for C/C++. [GPL & GPLv2]
  • 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]
  • JSON++ – A JSON parser in C++. [MIT]
  • json-parser – Very low footprint JSON parser written in portable ANSI C. [BSD]
  • json11 – A tiny JSON library for C++11. [MIT]
  • 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. [?]
  • 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. [LGPLv2]
  • RapidJSON :star: – A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
  • YAJL – A fast streaming JSON parsing library in C. [ISC]


  • Boost.Log – Designed to be very modular and extensible. [Boost]
  • easyloggingpp – Single header only C++ logging library. [MIT] website
  • Log4cpp – A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
  • templog – A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]

Machine Learning

  • Caffe – A fast framework for neural networks. [BSD]
  • CCV – C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
  • mlpack – A scalable c++ machine learning library. [LGPLv3]
  • OpenCV :star: – Open Source Computer Vision Library. [BSD] website
  • Recommender – C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
  • SHOGUN – The Shogun Machine Learning Toolbox. [GPLv3]
  • sofia-ml – The suite of fast incremental algorithms for machine learning. [Apache2]


  • Armadillo – A high quality C++ linear algebra library, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2]
  • blaze – high-performance C++ math library for dense and sparse arithmetic. [BSD]
  • 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]
  • cml – free C++ math library for games and graphics. [Boost]
  • Eigen – A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
  • GMTL – Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPLv2]
  • GMP – A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPLv3 and GPLv2]


  • GStreamer – A library for constructing graphs of media-handling components. [LGPL]
  • LIVE555 Streaming Media – Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
  • libVLC – libVLC (VLC SDK) media framework. [GPL]
  • QtAv – A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL]website
  • SDL :star: – Simple DirectMedia Layer. [zlib]
  • SFML :star: – Simple and Fast Multimedia Library. [zlib]


  • ACE – An OO Network Programming Toolkit in C++. [?MIT?]
  • Boost.Asio :star: – A cross-platform C++ library for network and low-level I/O programming. [Boost]
  • Casablanca – C++ REST SDK. [Apache2]
  • cpp-netlib – A collection of open-source libraries for high level network programming. [Boost]
  • Dyad.c – Asynchronous networking for C. [MIT]
  • libcurl – Multiprotocol file transfer library. [MIT/X derivate license]
  • Mongoose – Extremely lightweight webserver. [GPLv2]
  • Muduo – A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
  • net_skeleton – TCP client/server library for C/C++. [GPLv2]
  • nope.c – A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPLv2]
  • Onion – HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPLv2]
  • POCO :star: – C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] website
  • RakNet – A cross platform, open source, C++ networking engine for game programmers. [BSD]
  • Tufão – An asynchronous web framework for C++ built on top of Qt. [LGPLv2]
  • WebSocket++ – C++/Boost Asio based websocket client/server library. [BSD]
  • ZeroMQ – High-speed, modular asynchronous communication library. [LGPL]


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]
  • Simbody – High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]


  • 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

  • FFTW – A C library for computing the DFT in one or more dimensions. [GPL]
  • GSL – GNU scientific library. [GPL]


  • ChaiScript – An easy to use embedded scripting language for C++. [BSD] website
  • Lua – A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
  • luacxx – C++11 API for creating Lua bindings. [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]
  • V7 – An embedded JavaScript engine. [GPLv2]
  • V8 – A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]


  • Cap’n Proto – Fast data interchange format and capability-based RPC system. [MIT]
  • cereal – A C++11 library for serialization. [BSD]
  • FlatBuffers – A Memory efficient serialization library. [Apache2]
  • MessagePack – Efficient binary serialization format “like JSON” for C/C++. [Apache2] website
  • 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]
  • Thrift – Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developer by Twitter. [Apache2]


  • libvpx – VP8/VP9 Codec SDK. [BSD]
  • FFmpeg – A complete, cross-platform solution to record, convert and stream audio and video. [LGPLv2/GPL2]
  • libde265 – Open h.265 video codec implementation. [LGPL] website
  • OpenH264 – Open Source H.264 Codec. [BSD] website
  • Theora – A free and open video compression format. [BSD]

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]
  • 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]
  • 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]
  • Wt – A C++ library for developing web applications. [GPL/Commercial]


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

  • 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++. [LGPLv2]
  • 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]


Useful libraries or tools that don’t fit in the categories above or maybe just not categorised yet

  • C++ Format – Small, safe and fast formatting library for C++. [BSD]
  • casacore – A set of c++ core libraries derived from aips++. [LGPL]
  • cxx-prettyprint – A pretty printing library for C++ containers. [Boost]
  • DynaPDF – An easy-to-use PDF generation library. [Commercial]
  • gcc-poison – A simple header file for developers to ban unsafe C/C++ functions from applications.
  • googlemock – A library for writing and using C++ mock classes. [BSD]
  • HTTP Parser :star: – A http request/response parser for C. [MIT]
  • libcpuid – A small C library for x86 CPU detection and feature extraction. [BSD]
  • libevil – The Evil License Manager. [GPLv3]
  • libusb – A universal USB library which allows for portable access to USB devices. [LGPLv2]
  • PCRE – A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
  • Remote Call Framework – Inter-process communication framework for C++. [GPLv2/Commercial]
  • Scintilla – A free source code editing component. [MIT]
  • Serial Communication Library – Cross-platform, Serial Port library written in C++. [MIT]
  • SDS – Simple Dynamic Strings library for C. [BSD]
  • SLDR – Super Light DNS Resolver. [GPLv2/Commercial]
  • SLRE – Super Light Regular Expression library. [GPLv2/Commercial]
  • Stage – Mobile robot simulator. [GPLv2]
  • 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. [LGPLv2]
  • CppVerbalExpressions – C++ regular expressions made easy. [MIT]
  • QtVerbalExpressions – This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
  • PHP-CPP – A library to build PHP extensions with C++. [Apache2] 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, GPLv2]


Software for creating a development environment.


List of C/C++ compilers

  • Clang – Developed by Apple.
  • GCC – GNU Compiler Collection.
  • 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]
  • TCC – Tiny C Compiler. [LGPL]

Online Compiler

List of online C/C++ compilers

  • codepad – An online compiler/interpreter, and a simple collaboration tool.
  • CodeTwist – A simple online compiler/interpreter, where you can paste your C, C++ or Java code and execute it online and see results.
  • 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.


List of C/C++ debuggers

  • Comparison of debuggers – A list of Debuggers from Wikipedia.
  • GDB – GNU Debugger.
  • Valgrind – A tool for memory debugging, memory leak detection, and profiling.
  • x64_dbg – An open-source x64/x32 debugger for windows.

Integrated Development Environment

List of C/C++ nominal IDEs.

  • AppCode – an IDE for Objective-C, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEA platform.
  • CLion – Cross-platform C/C++ IDE from JetBrains. In pre-release/early access stadium.
  • Code::Blocks – A free C, C++ and Fortran IDE.
  • CodeLite – Another cross-plaform, free C/C++ IDE. [GPLv2 with an exception for plugins]
  • 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.
  • 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 :star: – 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.

Build Systems

  • Bear – A tool to generate compilation database for clang tooling.
  • Biicode – Simple, file-based dependency manager.
  • CMake – Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
  • 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.
  • Ninja – A small build system with a focus on speed.
  • Scons – A software construction tool configured with Python scipt.
  • 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 lua scipt to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux.

Static Code Analysis

List of tools for improving quality and reducing defects by code analysis


Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.

API Design


Fantastic C/C++ related articles.


Fantastic C/C++ related books.

Coding Style



Fantastic C/C++ related videos.


Useful C/C++ related websites.


Useful C/C++ related weblogs.

Other Awesome Projects

Collection of useful codes, snippets, …

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.
  • free-programming-books – List of Freely Available Programming Books.
  • papers-we-love – Papers from the computer science community to read and discuss.
  • awesome-php – Awesome PHP libraries, resources and shiny things.
  • awesome-python – Awesome Python frameworks, libraries and software.
  • awesome-sysadmin – Awesome open source sysadmin resources.
  • awesome-talks – A lot of screencasts, recordings of user group gatherings and conference talks.
  • github-cheat-sheet – A list of cool features of Git and GitHub.
  • ToolsOfTheTrade – Tools of The Trade, from Hacker News.
  • cheatsheets.org – The largest collection of reference cards for developers.
  • cheat-sheets.org – All cheat sheets, round-ups, quick reference cards, quick reference guides and quick reference sheets in one page.
  • thefreecountry.com – A collection of free programming resources, free webmasters’ resources, free security resources and free utilities.


Please see CONTRIBUTING for details.

A curated list of amazingly awesome Elixir libraries, resources and shiny things.

tests Made entries in categories also sorted alphabetically. 17 days ago
.gitignore Added script for checking formatting #41 a month ago
.travis.yml Fixing travis. a month ago
CONTRIBUTING.md Made entries in categories also sorted alphabetically. 17 days ago
README.md add learnelixir.com to Websites section 5 days ago

A curated list of amazingly awesome Elixir libraries, resources and shiny thing inspired by awesome-php.


Libraries and tools for working with actors and such.

  • exactor – Helpers for easier implementation of actors in Elixir.
  • poolboy – A hunky Erlang worker pool factory.
  • workex – Backpressure and flow control in EVM processes.

Algorithms and Datastructures

Libraries and implementations of algorithms and datastructures.

  • array – An Elixir wrapper library for Erlang’s array.
  • datastructures – A collection of protocols, implementations and wrappers to work with datastructures.
  • fsm – Finite state machine as a functional data structure.
  • hash_ring_ex – A consistent hash ring implemention for Elixir.
  • key2value – Erlang 2-way Set Associative Map.
  • lfsr – Elixir implementation of a binary Galois Linear Feedback Shift Register.
  • the_fuzz – Fuzzy string matching algorithm implementations.
  • trie – Erlang Trie Implementation.


Libraries for implementing authentications schemes.

  • apache_passwd_md5 – Apache/APR Style Password Hashing.
  • htpasswd – Apache httpasswd file reader/writer in Elixir.
  • oauther – An OAuth 1.0 implementation for Elixir.

Build Tools

Project build and automation tools.

  • coffee_rotor – Rotor plugin to compile CoffeeScript files.
  • ExMake – A modern, scriptable, dependency-based build tool loosely based on Make principles.
  • reltool_util – Erlang reltool utility functionality application.
  • rotor – Super-simple build system for Elixir.
  • sass_elixir – A sass plugin for elixir projects.


Libraries for caching data.

  • con_cache – ConCache is an ETS based key/value storage.

Cloud Infrastructure and Management

Applications, tools and libraries for your own cloud service.

  • Cloudi – CloudI is for back-end server processing tasks that require soft-realtime transaction.
  • nodefinder – Strategies for automatic node discovery in Erlang.
  • sidejob – Parallel worker and capacity limiting library for Erlang.
  • sidetask – SideTask is an alternative to Task.Supervisor using Basho’s sidejob library with parallelism and capacity limiting.

Code Analysis

Libraries and tools for analysing, parsing and manipulation codebases.

  • coverex – Coverage Reports for Elixir.
  • dialyxir – Mix tasks to simplify use of Dialyzer in Elixir projects.
  • excoveralls – Coverage report tool for Elixir with coveralls.io integration.
  • exprof – A simple code profiler for Elixir using eprof.

Command Line Applications

Anything helpfull for building CLI applications.

  • anubis – Command Line application framework for Elixir.


Libraries and tools working with configurations

  • conform – Easy release configuration for Elixir apps.
  • dotenv – A port of dotenv to Elixir.
  • ex_conf – Simple Elixir Configuration Management.
  • figaro – Simple Elixir project configuration.


Libraries and implementations working with CSV.

  • cesso – CSV handling library for Elixir.
  • csvlixir – A CSV reading/writing application for Elixir.
  • ex_csv – CSV for Elixir.

Date and Time

Libraries for working with dates and times.

  • chronos – An elixir date/time library.
  • kalends – Kalends is a datetime library in pure Elixir with up-to-date timezone support using the Olson database.
  • moment – Parse, validate, manipulate, and display dates in Elixir.
  • timex – Easy to use Date and Time modules for Elixir.
  • timex_interval – A date/time interval library for Elixir projects, based on Timex.


Libraries and tools for debugging code and applications.

  • booter – Boot an Elixir application step by step.
  • dbg – Distributed tracing for Elixir.

Files and Directories

Libraries and implementations for working with files and directories.

  • dir_walker – DirWalker lazily traverses one or more directory trees, depth first, returning successive file names.
  • Radpath – Path library for Elixir inspired by Python’s Enhpath

Framework Components

Standalone component from web development frameworks.

  • cors_plug – An elixir plug that adds CORS headers to requests and responds to preflight requests (OPTIONS) .
  • exrecaptcha – Simple reCaptcha display/verify code for Elixir applications.
  • flinch – Resource layer for Phoenix and Ecto projects for auto-generated RESTful CRUD APIs.
  • plug – A specification and conveniences for composable modules in between web applications.
  • plug_cors – CORS Plug.
  • plug_jwt – Plug for JWT authentication.
  • trailing_format_plug – An elixir plug to support legacy APIs that use a rails-like trailing format.
  • webassembly – Web DSL for Elixir.


Web development frameworks.

  • dynamo – Dynamo is an experimental web framework that runs on Elixir.
  • phoenix – Elixir Web Framework targeting full-featured, fault tolerant applications with realtime functionality.
  • placid – A REST toolkit for building highly-scalable and fault-tolerant HTTP APIs with Elixir.
  • sugar – Modular web framework for Elixir.
  • weber – Web framework for Elixir inspired by Rails.


Libraries for geocoding addresses and working with latitudes and longitudes.

  • geo – A collection of GIS functions for Elixir.


Hardware related things like I/O interfaces and such.

  • elixir_ale – Elixir access to hardware I/O interfaces such as GPIO, I2C, and SPI.


Libraries for working with HTTP and scraping websites.

  • cauldron – An HTTP/SPDY server as a library.
  • exvcr – HTTP request/response recording library for elixir, inspired by VCR.
  • httpoison – Yet Another HTTP client for Elixir powered by hackney.
  • httpotion – Fancy HTTP client for Elixir, based on ibrowse.
  • httprot – HTTP client library.


Libraries for working with and manipulating images.

  • exexif – Pure elixir library to extract tiff and exif metadata from jpeg files.
  • mogrify – An Elixir wrapper for ImageMagick command line.


Libraries and implementations working with JSON.

  • exjson – JSON parser and genarator in Elixir.
  • jazz – Yet another library to handle JSON in Elixir.
  • joken – Encodes and decodes JSON Web Tokens.
  • jsex – json for elixir.
  • json – Native JSON library for Elixir.
  • jsx – an erlang application for consuming, producing and manipulating json.
  • jsxn – jsx but with maps.
  • poison – Poison is a new JSON library for Elixir focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.


Libraries and tools working with Markdown and such.

  • discount – Elixir NIF for discount, a Markdown parser.
  • earmark – Markdown parser for Elixir.
  • stmd – Elixir NIF for stmd (C implementation), a CommonMark parser.


Useful libraries or tools that don’t fit in the categories above.

  • address_us – Library for parsing US Addresses into their individual parts.
  • Apex – Awesome Print for Elixir.
  • charm – Use ansi terminal characters to write colors and cursor positions.
  • dynamic_compile – Compile and load erlang modules from string input.
  • erlang_term – Provide the in-memory size of Erlang terms, ignoring where these are stored.
  • ex_rated – Simple and flexible rate-limiting for API’s or anything.* ex2ms – Translates Elixir functions to match specifications for use with ets.
  • exprint – A printf / sprintf library for Elixir, works as a wrapper for :io.format.
  • exquisite – LINQ-like match_spec generation for Elixir.
  • funnel – Streaming Elixir API built upon ElasticSearch’s percolation.
  • keys1value – Erlang set associative map for key lists.
  • mdef – Easily define multiple function heads in elixir.
  • porcelain – Porcelain implements a saner approach to launching and communicating with external OS processes from Elixir.
  • radpath – A path library for Elixir inspired by Python path libraries.
  • reprise – Simplified module reloader for Elixir.
  • spawndir – Spawns processes from the file system.


Libraries and tools for using network related stuff.

  • chatty – A basic IRC client that is most useful for writing a bot.
  • ExIrc – IRC client adapter for Elixir projects.
  • hedwig – XMPP Client/Bot Framework for Elixir.
  • reagent – reagent is a socket acceptor pool for Elixir.
  • socket – Socket wrapping for Elixir.
  • wpa_supplicant – Elixir interface to the wpa_supplicant.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • amnesia – Mnesia wrapper for Elixir.
  • atlas – Object Relational Mapper for Elixir.
  • dexts – Disk Elixir Terms Storage, dest wrapper.
  • ecto – A database wrapper and language integrated query for Elixir.
  • exleveldb – Elixir wrapper around Basho’s eleveldb module for LevelDB.
  • exredis – Redis client for Elixir.
  • exts – Elixir Terms Storage, ets wrapper.
  • hstore – Hstore support for Postgrex.
  • postgrex – PostgreSQL driver for Elixir.
  • ssdb_elixir – ssdb client for Elixir with focus on performance.
  • tirexs – An Elixir based DSL for managing the ElasticSearch related stuff.


Libraries for working with OTP related things.

  • core – Library for selective receive OTP processes.
  • libex_config – Helpers for accessing OTP application configuration.

Package Management

Libraries and tools for package and dependency management.

  • Hex – A package manager for the Erlang ecosystem.


Special protocol and format libraries.

  • exprotobuf – Protocol Buffers in Elixir made easy.
  • message_pack – MessagePack Implementation for Elixir.


Libraries for working with event and task queues.

  • exrabbit – RabbitMQ bindings and DSL for Elixir.
  • heapq – A Heap-based Priority Queue Implementation in Elixir.
  • pqueue – Erlang Priority Queue Implementation.

Release Management

Libraries and tools for release management.

  • exrm – Automatically generate a release for your Elixir project.
  • exrm_rpm – Create a rpm for your elixir release with ease.


Libraries and web tools for developing REST-ful APIs.

  • lazymaru – Elixir copy of grape for creating REST-like APIs.
  • signaturex – Simple key/secret based authentication for APIs.
  • urna – Urna is a simple DSL around cauldron to implement REST services.

Static Page Generation

Tools and libraries for generating static websites and content.

  • coil – Minimalistic static content engine.
  • obelisk – Static blog and website generator.


Libraries around the topic statistics.


Libraries for testing codebases and generating test data.

  • amrita – A polite, well mannered and thoroughly upstanding testing framework for Elixir.
  • excheck – Property-based testing library for Elixir (QuickCheck style).
  • faker – Faker is pure Elixir library for generating fake data.
  • hound – Elixir library for writing integration tests and browser automation.
  • meck – A mocking library for Erlang.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • calliope – An elixir haml parser.
  • cldr – cldr is a library to use information from CLDR data.
  • colorful – Elixir macros to decorate characters on CUI.
  • colors – Colors util written in Elixir.
  • decimal – Arbitrary precision decimal arithmetic for Elixir.
  • dicer – A dice roller expression evaluator.
  • event_source_encoder – Encode data into EventSource compliant data.
  • exmoji – Emoji encoding swiss army knife for Elixir/Erlang.
  • inflex – An Inflector library for Elixir.
  • pinyin – chinese pinyin lib for elixir.
  • quickrand – Quick Random Number Generation.
  • saltie – Saltie is a pseudo-encryption library primarily used for obfuscating numerical identifiers to opaque strings.
  • uuid – UUID generator and utilities for Elixir.
  • uuid_erl – Erlang Native UUID Generation.

Third Party APIs

Libraries for accessing third party APIs.

  • balanced – Balanced Api Client for Elixir.
  • currently – A tool to display cards currently assigns on Trello.
  • dpd_client – An API client for the DPD service.
  • dropbox – Dropbox Core API client for Elixir.
  • ex_omegle – A minimal Omegle chat client library for Elixir.
  • ex_statsd – A statsd client implementation for Elixir.
  • exgravatar – An Elixir module for generating Gravatar urls.
  • extwitter – Twitter client library for elixir.
  • facebook – Facebook Graph API Wrapper written in Elixir.
  • forecast_io – Simple wrapper for Forecast.IO API.
  • hexoku – Heroku API client and Heroku Mix tasks for Elixir projects.
  • link_shrinkex – Elixir library for creating short URLs using Google’s URL Shortener API.
  • mailgun – Elixir Mailgun Client.
  • parse_client – Elixir client for the parse.com REST API.
  • parsex – ParsEx is an Elixir HTTP Client for communicating with Parse.com’s Restful API.
  • poxa – Open Pusher implementation compatible with Pusher libraries.
  • reap – Reap is a simple Elixir library for working with the refheap API.
  • simplex – An Elixir library for interacting with the Amazon SimpleDB API.

Translations and Internationalizations

Libraries providing translations or internationalizations.

  • linguist – Elixir Internationalization library.


Libraries and implementations for validation of data.

  • vex – An extensible data validation library for Elixir.


Libraries and implementations working with XML.

  • exmerl – Elixir wrapper for xmerl.
  • quinn – XML parser for Elixir.
  • xml_builder – Elixir library for generating xml.


Various resources, such as books, websites and articles, for improving your Elixir development skills and knowledge.


Fantastic books and e-books.

  • Elixir for the functional Rubyist – Not yet released. By Johnny Winn.
  • Elixir in Action – A brief intro to the language followed by a more detailed look at building production-ready systems in Elixir by Saša Jurić (2014).
  • Erlang in Anger – This book intends to be a little guide about how to be the Erlang medic in a time of war by Fred Hebert (2014).
  • Introducing Elixir – A gentle introduction to the language, with lots of code examples and exercises by Simon St. Laurent and J. David Eisenberg (2013).
  • Programming Elixir – The book provides introduction to functional and concurrent programming with Elixir by Dave Thomas (2014).
  • The Little Elixir & OTP Guidebook – A book for learning Elixir and OTP through small to medium-sized projects by Benjamin Tan Wei Hao (2014).
  • Études for Elixir – A collection of exercises to program in Elixir by J. David Eisenberg (2013) (Github Repo).


Editors and IDEs useable for Elixir/Erlang

  • Atom – Elixir language support for Atom.
  • Jetbrains – Elixir for IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, Android Studio, 0xDBE.

Other Awesome Lists

Other amazingly awesome lists can be found at jnv/lists.

  • Awesome Erlang – A curated list of awesome Erlang libraries, resources and shiny things.


Elixir-releated reading materials.


Cool video tutorials.

  • Elixir Sips – Tiny screencasts for learning Elixir.


Useful web and Elixir-related websites and newsletters.


Please see CONTRIBUTING for details.

A curated list of awesome Machine Learning frameworks, libraries and software.

via josephmisiti/awesome-machine-learning · GitHub.

A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php. Other awesome lists can be found in the awesome-awesomeness list.

If you want to contribute to this list (please do), send me a pull request or contact me @josephmisiti

For a list of free machine learning books available for download, go here

Table of Contents


General-Purpose Machine Learning

  • Recommender – A C library for product recommendations/suggestions using collaborative filtering (CF).
  • Accord-Framework -The Accord.NET Framework is a complete framework for building machine learning, computer vision, computer audition, signal processing and statistical applications.

Computer Vision

  • CCV – C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library


Computer Vision

  • OpenCV – OpenCV has C++, C, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS.
  • DLib – DLib has C++ and Python interfaces for face detection and training general object detectors.
  • EBLearn – Eblearn is an object-oriented C++ library that implements various machine learning models *

General-Purpose Machine Learning

  • MLPack
  • DLib – A suite of ML tools designed to be easy to imbed in other applications
  • ecogg
  • shark
  • Vowpal Wabbit (VW) – A fast out-of-core learning system.
  • sofia-ml – Suite of fast incremental algorithms.
  • Shogun – The Shogun Machine Learning Toolbox
  • Caffe – A deep learning framework developed with cleanliness, readability, and speed in mind. [DEEP LEARNING]
  • CUDA – This is a fast C++/CUDA implementation of convolutional [DEEP LEARNING]
  • Stan – A probabilistic programming language implementing full Bayesian statistical inference with Hamiltonian Monte Carlo sampling
  • BanditLib – A simple Multi-armed Bandit library.

Natural Language Processing

  • MIT Information Extraction Toolkit – C, C++, and Python tools for named entity recognition and relation extraction
  • CRF++ – Open source implementation of Conditional Random Fields (CRFs) for segmenting/labeling sequential data & other Natural Language Processing tasks.

Speech Recognition

  • Kaldi – Kaldi is a toolkit for speech recognition written in C++ and licensed under the Apache License v2.0. Kaldi is intended for use by speech recognition researchers.

Sequence Analysis

  • ToPS – This is an objected-oriented framework that facilitates the integration of probabilistic models for sequences over a user defined alphabet.


Natural Language Processing

  • Clojure-openNLP – Natural Language Processing in Clojure (opennlp)
  • Infections-clj – Rails-like inflection library for Clojure and ClojureScript

General-Purpose Machine Learning

  • Touchstone – Clojure A/B testing library
  • Clojush – he Push programming language and the PushGP genetic programming system implemented in Clojure
  • Infer – Inference and machine learning in clojure
  • Clj-ML – A machine learning library for Clojure built on top of Weka and friends
  • Encog – Clojure wrapper for Encog (v3) (Machine-Learning framework that specialises in neural-nets)
  • Fungp – A genetic programming library for Clojure
  • Statistiker – Basic Machine Learning algorithms in Clojure.
  • clortex – General Machine Learning library using Numenta’s Cortical Learning Algorithm
  • comportex – Functionally composable Machine Learning library using Numenta’s Cortical Learning Algorithm

Data Analysis / Data Visualization

  • Incanter – Incanter is a Clojure-based, R-like platform for statistical computing and graphics.
  • PigPen – Map-Reduce for Clojure.
  • Envision – Clojure Data Visualisation library, based on Statistiker and D3 ## Erlang

General-Purpose Machine Learning

  • Disco – Map Reduce in Erlang


Natural Language Processing

  • go-porterstemmer – A native Go clean room implementation of the Porter Stemming algorithm.
  • paicehusk – Golang implementation of the Paice/Husk Stemming Algorithm.
  • snowball – Snowball Stemmer for Go.
  • go-ngram – In-memory n-gram index with compression.

General-Purpose Machine Learning

  • Go Learn – Machine Learning for Go
  • go-pr – Pattern recognition package in Go lang.
  • bayesian – Naive Bayesian Classification for Golang.
  • go-galib – Genetic Algorithms library written in Go / golang
  • Cloudforest – Ensembles of decision trees in go/golang.
  • gobrain – Neural Networks written in go

Data Analysis / Data Visualization

  • go-graph – Graph library for Go/golang language.
  • SVGo – The Go Language library for SVG generation


General-Purpose Machine Learning

  • haskell-ml – Haskell implementations of various ML algorithms.
  • HLearn – a suite of libraries for interpreting machine learning models according to their algebraic structure.
  • hnn – Haskell Neural Network library.
  • hopfield-networks – Hopfield Networks for unsupervised learning in Haskell.


Natural Language Processing

  • CoreNLP – Stanford CoreNLP provides a set of natural language analysis tools which can take raw English language text input and give the base forms of words
  • Stanford Parser – A natural language parser is a program that works out the grammatical structure of sentences
  • Stanford POS Tagger – A Part-Of-Speech Tagger (POS Tagger
  • Stanford Name Entity Recognizer – Stanford NER is a Java implementation of a Named Entity Recognizer.
  • Stanford Word Segmenter – Tokenization of raw text is a standard pre-processing step for many NLP tasks.
  • Tregex, Tsurgeon and Semgrex – Tregex is a utility for matching patterns in trees, based on tree relationships and regular expression matches on nodes (the name is short for “tree regular expressions”).
  • Stanford Phrasal: A Phrase-Based Translation System
  • Stanford English Tokenizer – Stanford Phrasal is a state-of-the-art statistical phrase-based machine translation system, written in Java.
  • Stanford Tokens Regex – A tokenizer divides text into a sequence of tokens, which roughly correspond to “words”
  • Stanford Temporal Tagger – SUTime is a library for recognizing and normalizing time expressions.
  • Stanford SPIED – Learning entities from unlabeled text starting with seed sets using patterns in an iterative fashion
  • Stanford Topic Modeling Toolbox – Topic modeling tools to social scientists and others who wish to perform analysis on datasets
  • Twitter Text Java – A Java implementation of Twitter’s text processing library
  • MALLET – A Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.
  • OpenNLP – a machine learning based toolkit for the processing of natural language text.
  • LingPipe – A tool kit for processing text using computational linguistics.
  • ClearTK – ClearTK provides a framework for developing statistical natural language processing (NLP) components in Java and is built on top of Apache UIMA.
  • Apache cTAKES – Apache clinical Text Analysis and Knowledge Extraction System (cTAKES) is an open-source natural language processing system for information extraction from electronic medical record clinical free-text.

General-Purpose Machine Learning

  • JSAT – Numerous Machine Learning algoirhtms for classification, regresion, and clustering.
  • MLlib in Apache Spark – Distributed machine learning library in Spark
  • Datumbox – Machine Learning framework for rapid development of Machine Learning and Statistical applications
  • Mahout – Distributed machine learning
  • Stanford Classifier – A classifier is a machine learning tool that will take data items and place them into one of k classes.
  • Weka – Weka is a collection of machine learning algorithms for data mining tasks
  • Meka – An open source implementation of methods for multi-label classification and evaluation (extension to Weka).
  • ORYX – Simple real-time large-scale machine learning infrastructure.
  • H2O – ML engine that supports distributed learning on data stored in HDFS.
  • WalnutiQ – object oriented model of the human brain
  • ELKI – Java toolkit for data mining. (unsupervised: clustering, outlier detection etc.)
  • Neuroph – Neuroph is lightweight Java neural network framework
  • java-deeplearning – Distributed Deep Learning Platform for Java, Clojure,Scala
  • htm.java – General Machine Learning library using Numenta’s Cortical Learning Algorithm

Speech Recognition

  • CMU Sphinx – Open Source Toolkit For Speech Recognition purely based on Java speech recognition library.

Data Analysis / Data Visualization

  • Hadoop – Hadoop/HDFS
  • Spark – Spark is a fast and general engine for large-scale data processing.
  • Impala – Real-time Query for Hadoop


Natural Language Processing

  • Twitter-text-js – A JavaScript implementation of Twitter’s text processing library
  • NLP.js – NLP utilities in javascript and coffeescript
  • natural – General natural language facilities for node
  • Knwl.js – A Natural Language Processor in JS
  • Retext – Extensible system for analysing and manipulating natural language

Data Analysis / Data Visualization

General-Purpose Machine Learning

  • Convnet.js – ConvNetJS is a Javascript library for training Deep Learning models[DEEP LEARNING]
  • Clustering.js – Clustering algorithms implemented in Javascript for Node.js and the browser
  • Decision Trees – NodeJS Implementation of Decision Tree using ID3 Algorithm
  • Node-fann – FANN (Fast Artificial Neural Network Library) bindings for Node.js
  • Kmeans.js – Simple Javascript implementation of the k-means algorithm, for node.js and the browser
  • LDA.js – LDA topic modeling for node.js
  • Learning.js – Javascript implementation of logistic regression/c4.5 decision tree
  • Machine Learning – Machine learning library for Node.js
  • Node-SVM – Support Vector Machine for nodejs
  • Brain – Neural networks in JavaScript
  • Bayesian-Bandit – Bayesian bandit implementation for Node and the browser.
  • Synaptic – Architecture-free neural network library for node.js and the browser


General-Purpose Machine Learning

  • PGM – A Julia framework for probabilistic graphical models.
  • DA – Julia package for Regularized Discriminant Analysis
  • Regression – Algorithms for regression analysis (e.g. linear regression and logistic regression)
  • Local Regression – Local regression, so smooooth!
  • Naive Bayes – Simple Naive Bayes implementation in Julia
  • Mixed Models – A Julia package for fitting (statistical) mixed-effects models
  • Simple MCMC – basic mcmc sampler implemented in Julia
  • Distance – Julia module for Distance evaluation
  • Decision Tree – Decision Tree Classifier and Regressor
  • Neural – A neural network in Julia
  • MCMC – MCMC tools for Julia
  • GLM – Generalized linear models in Julia
  • Online Learning
  • GLMNet – Julia wrapper for fitting Lasso/ElasticNet GLM models using glmnet
  • Clustering – Basic functions for clustering data: k-means, dp-means, etc.
  • SVM – SVM’s for Julia
  • Kernal Density – Kernel density estimators for julia
  • Dimensionality Reduction – Methods for dimensionality reduction
  • NMF – A Julia package for non-negative matrix factorization
  • ANN – Julia artificial neural networks

Natural Language Processing

Data Analysis / Data Visualization

  • Graph Layout – Graph layout algorithms in pure Julia
  • Data Frames Meta – Metaprogramming tools for DataFrames
  • Julia Data – library for working with tabular data in Julia
  • Data Read – Read files from Stata, SAS, and SPSS
  • Hypothesis Tests – Hypothesis tests for Julia
  • Gadfly – Crafty statistical graphics for Julia.
  • Stats – Statistical tests for Julia
  • RDataSets – Julia package for loading many of the data sets available in R
  • DataFrames – library for working with tabular data in Julia
  • Distributions – A Julia package for probability distributions and associated functions.
  • Data Arrays – Data structures that allow missing values
  • Time Series – Time series toolkit for Julia
  • Sampling – Basic sampling algorithms for Julia

Misc Stuff / Presentations

  • DSP – Digital Signal Processing (filtering, periodograms, spectrograms, window functions).
  • JuliaCon Presentations – Presentations for JuliaCon
  • SignalProcessing – Signal Processing tools for Julia
  • Images – An image library for Julia


General-Purpose Machine Learning

  • Torch7
    • cephes – Cephes mathematical functions library, wrapped for Torch. Provides and wraps the 180+ special mathematical functions from the Cephes mathematical library, developed by Stephen L. Moshier. It is used, among many other places, at the heart of SciPy.
    • graph – Graph package for Torch
    • randomkit – Numpy’s randomkit, wrapped for Torch
    • signal – A signal processing toolbox for Torch-7. FFT, DCT, Hilbert, cepstrums, stft
    • nn – Neural Network package for Torch
    • nngraph – This package provides graphical computation for nn library in Torch7.
    • nnx – A completely unstable and experimental package that extends Torch’s builtin nn library
    • optim – An optimization library for Torch. SGD, Adagrad, Conjugate-Gradient, LBFGS, RProp and more.
    • unsup – A package for unsupervised learning in Torch. Provides modules that are compatible with nn (LinearPsd, ConvPsd, AutoEncoder, …), and self-contained algorithms (k-means, PCA).
    • manifold – A package to manipulate manifolds
    • svm – Torch-SVM library
    • lbfgs – FFI Wrapper for liblbfgs
    • vowpalwabbit – An old vowpalwabbit interface to torch.
    • OpenGM – OpenGM is a C++ library for graphical modeling, and inference. The Lua bindings provide a simple way of describing graphs, from Lua, and then optimizing them with OpenGM.
    • sphagetti – Spaghetti (sparse linear) module for torch7 by @MichaelMathieu
    • LuaSHKit – A lua wrapper around the Locality sensitive hashing library SHKit
    • kernel smoothing – KNN, kernel-weighted average, local linear regression smoothers
    • cutorch – Torch CUDA Implementation
    • cunn – Torch CUDA Neural Network Implementation
    • imgraph – An image/graph library for Torch. This package provides routines to construct graphs on images, segment them, build trees out of them, and convert them back to images.
    • videograph – A video/graph library for Torch. This package provides routines to construct graphs on videos, segment them, build trees out of them, and convert them back to videos.
    • saliency – code and tools around integral images. A library for finding interest points based on fast integral histograms.
    • stitch – allows us to use hugin to stitch images and apply same stitching to a video sequence
    • sfm – A bundle adjustment/structure from motion package
    • fex – A package for feature extraction in Torch. Provides SIFT and dSIFT modules.
    • OverFeat – A state-of-the-art generic dense feature extractor
  • Numeric Lua
  • Lunatic Python
  • SciLua
  • Lua – Numerical Algorithms
  • Lunum

Demos and Scripts

  • Core torch7 demos repository.
    • linear-regression, logistic-regression
    • face detector (training and detection as separate demos)
    • mst-based-segmenter
    • train-a-digit-classifier
    • train-autoencoder
    • optical flow demo
    • train-on-housenumbers
    • train-on-cifar
    • tracking with deep nets
    • kinect demo
    • filter-bank visualization
    • saliency-networks
  • Training a Convnet for the Galaxy-Zoo Kaggle challenge(CUDA demo)
  • Music Tagging – Music Tagging scripts for torch7
  • torch-datasets – Scripts to load several popular datasets including:
    • BSR 500
    • CIFAR-10
    • COIL
    • Street View House Numbers
    • MNIST
    • NORB
  • Atari2600 – Scripts to generate a dataset with static frames from the Arcade Learning Environment


Computer Vision

  • Contourlets – MATLAB source code that implements the contourlet transform and its utility functions.
  • Shearlets – MATLAB code for shearlet transform
  • Curvelets – The Curvelet transform is a higher dimensional generalization of the Wavelet transform designed to represent images at different scales and different angles.
  • Bandlets – MATLAB code for bandlet transform

Natural Language Processing

  • NLP – An NLP library for Matlab

General-Purpose Machine Learning

Data Analysis / Data Visualization

  • matlab_gbl – MatlabBGL is a Matlab package for working with graphs.
  • gamic – Efficient pure-Matlab implementations of graph algorithms to complement MatlabBGL’s mex functions.


Computer Vision

  • OpenCVDotNet – A wrapper for the OpenCV project to be used with .NET applications.
  • Emgu CV – Cross platform wrapper of OpenCV which can be compiled in Mono to e run on Windows, Linus, Mac OS X, iOS, and Android.

Natural Language Processing

  • Stanford.NLP for .NET – A full port of Stanford NLP packages to .NET and also available precompiled as a NuGet package.

General-Purpose Machine Learning

  • Accord.MachineLearning – Support Vector Machines, Decision Trees, Naive Bayesian models, K-means, Gaussian Mixture models and general algorithms such as Ransac, Cross-validation and Grid-Search for machine-learning applications. This package is part of the Accord.NET Framework.
  • Vulpes – Deep belief and deep learning implementation written in F# and leverages CUDA GPU execution with Alea.cuBase.
  • Encog – An advanced neural network and machine learning framework. Encog contains classes to create a wide variety of networks, as well as support classes to normalize and process data for these neural networks. Encog trains using multithreaded resilient propagation. Encog can also make use of a GPU to further speed processing time. A GUI based workbench is also provided to help model and train neural networks.
  • Neural Network Designer – DBMS management system and designer for neural networks. The designer application is developed using WPF, and is a user interface which allows you to design your neural network, query the network, create and configure chat bots that are capable of asking questions and learning from your feed back. The chat bots can even scrape the internet for information to return in their output as well as to use for learning.

Data Analysis / Data Visualization

  • numl – numl is a machine learning library intended to ease the use of using standard modeling techniques for both prediction and clustering.
  • Math.NET Numerics – Numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Supports .Net 4.0, .Net 3.5 and Mono on Windows, Linux and Mac; Silverlight 5, WindowsPhone/SL 8, WindowsPhone 8.1 and Windows 8 with PCL Portable Profiles 47 and 344; Android/iOS with Xamarin.
  • Sho – Sho is an interactive environment for data analysis and scientific computing that lets you seamlessly connect scripts (in IronPython) with compiled code (in .NET) to enable fast and flexible prototyping. The environment includes powerful and efficient libraries for linear algebra as well as data visualization that can be used from any .NET language, as well as a feature-rich interactive shell for rapid development.

Objective C

General-Purpose Machine Learning

  • MLPNeuralNet – Fast multilayer perceptron neural network library for iOS and Mac OS X. MLPNeuralNet predicts new examples by trained neural network. It is built on top of the Apple’s Accelerate Framework, using vectorized operations and hardware acceleration if available.


Computer Vision

  • SimpleCV – An open source computer vision framework that gives access to several high-powered computer vision libraries, such as OpenCV. Written on Python and runs on Mac, Windows, and Ubuntu Linux.

Natural Language Processing

  • NLTK – A leading platform for building Python programs to work with human language data.
  • Pattern – A web mining module for the Python programming language. It has tools for natural language processing, machine learning, among others.
  • Quepy – A python framework to transform natural language questions to queries in a database query language
  • TextBlob – Providing a consistent API for diving into common natural language processing (NLP) tasks. Stands on the giant shoulders of NLTK and Pattern, and plays nicely with both.
  • YAlign – A sentence aligner, a friendly tool for extracting parallel sentences from comparable corpora.
  • jieba – Chinese Words Segmentation Utilities.
  • SnowNLP – A library for processing Chinese text.
  • loso – Another Chinese segmentation library.
  • genius – A Chinese segment base on Conditional Random Field.
  • nut – Natural language Understanding Toolkit
  • Rosetta – Text processing tools and wrappers (e.g. Vowpal Wabbit)

General-Purpose Machine Learning

  • Bayesian Methods for Hackers – Book/iPython notebooks on Probabilistic Programming in Python
  • Featureforge A set of tools for creating and testing machine learning features, with a scikit-learn compatible API
  • MLlib in Apache Spark – Distributed machine learning library in Spark
  • scikit-learn – A Python module for machine learning built on top of SciPy.
  • SimpleAI Python implementation of many of the artificial intelligence algorithms described on the book “Artificial Intelligence, a Modern Approach”. It focuses on providing an easy to use, well documented and tested library.
  • astroML – Machine Learning and Data Mining for Astronomy.
  • graphlab-create – A library with various machine learning models (regression, clustering, recommender systems, graph analytics, etc.) implemented on top of a disk-backed DataFrame.
  • BigML – A library that contacts external servers.
  • pattern – Web mining module for Python.
  • NuPIC – Numenta Platform for Intelligent Computing.
  • Pylearn2 – A Machine Learning library based on Theano.
  • hebel – GPU-Accelerated Deep Learning Library in Python.
  • gensim – Topic Modelling for Humans.
  • PyBrain – Another Python Machine Learning Library.
  • Crab – A flexible, fast recommender engine.
  • python-recsys – A Python library for implementing a Recommender System.
  • thinking bayes – Book on Bayesian Analysis
  • Restricted Boltzmann Machines -Restricted Boltzmann Machines in Python. [DEEP LEARNING]
  • Bolt – Bolt Online Learning Toolbox
  • CoverTree – Python implementation of cover trees, near-drop-in replacement for scipy.spatial.kdtree
  • nilearn – Machine learning for NeuroImaging in Python
  • Shogun – The Shogun Machine Learning Toolbox
  • Pyevolve – Genetic algorithm framework.
  • Caffe – A deep learning framework developed with cleanliness, readability, and speed in mind.
  • breze – Theano based library for deep and recurrent neural networks
  • pyhsmm – library for approximate unsupervised inference in Bayesian Hidden Markov Models (HMMs) and explicit-duration Hidden semi-Markov Models (HSMMs), focusing on the Bayesian Nonparametric extensions, the HDP-HMM and HDP-HSMM, mostly with weak-limit approximations.
  • mrjob – A library to let Python program run on Hadoop.
  • SKLL – A wrapper around scikit-learn that makes it simpler to conduct experiments.
  • neurolabhttps://code.google.com/p/neurolab/
  • Spearmint – Spearmint is a package to perform Bayesian optimization according to the algorithms outlined in the paper: Practical Bayesian Optimization of Machine Learning Algorithms. Jasper Snoek, Hugo Larochelle and Ryan P. Adams. Advances in Neural Information Processing Systems, 2012.

Data Analysis / Data Visualization

  • SciPy – A Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • NumPy – A fundamental package for scientific computing with Python.
  • Numba – Python JIT (just in time) complier to LLVM aimed at scientific Python by the developers of Cython and NumPy.
  • NetworkX – A high-productivity software for complex networks.
  • Pandas – A library providing high-performance, easy-to-use data structures and data analysis tools.
  • Open Mining – Business Intelligence (BI) in Python (Pandas web interface)
  • PyMC – Markov Chain Monte Carlo sampling toolkit.
  • zipline – A Pythonic algorithmic trading library.
  • PyDy – Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion based around NumPy, SciPy, IPython, and matplotlib.
  • SymPy – A Python library for symbolic mathematics.
  • statsmodels – Statistical modeling and econometrics in Python.
  • astropy – A community Python library for Astronomy.
  • matplotlib – A Python 2D plotting library.
  • bokeh – Interactive Web Plotting for Python.
  • plotly – Collaborative web plotting for Python and matplotlib.
  • vincent – A Python to Vega translator.
  • d3py – A plottling library for Python, based on D3.js.
  • ggplot – Same API as ggplot2 for R.
  • Kartograph.py – Rendering beautiful SVG maps in Python.
  • pygal – A Python SVG Charts Creator.
  • PyQtGraph – A pure-python graphics and GUI library built on PyQt4 / PySide and NumPy.
  • pycascading
  • Petrel – Tools for writing, submitting, debugging, and monitoring Storm topologies in pure Python.
  • Blaze – NumPy and Pandas interface to Big Data.
  • emcee – The Python ensemble sampling toolkit for affine-invariant MCMC.
  • windML – A Python Framework for Wind Energy Analysis and Prediction
  • vispy – GPU-based high-performance interactive OpenGL 2D/3D data visualization library
  • cerebro2 A web-based visualization and debugging platform for NuPIC.
  • NuPIC Studio An all-in-one NuPIC Hierarchical Temporal Memory visualization and debugging super-tool!

Misc Scripts / iPython Notebooks / Codebases

Kaggle Competition Source Code


Natural Language Processing

  • Treat – Text REtrieval and Annotation Toolkit, definitely the most comprehensive toolkit I’ve encountered so far for Ruby
  • Ruby Linguistics – Linguistics is a framework for building linguistic utilities for Ruby objects in any language. It includes a generic language-independant front end, a module for mapping language codes into language names, and a module which contains various English-language utilities.
  • Stemmer – Expose libstemmer_c to Ruby
  • Ruby Wordnet – This library is a Ruby interface to WordNet
  • Raspel – raspell is an interface binding for ruby
  • UEA Stemmer – Ruby port of UEALite Stemmer – a conservative stemmer for search and indexing
  • Twitter-text-rb – A library that does auto linking and extraction of usernames, lists and hashtags in tweets

General-Purpose Machine Learning

Data Analysis / Data Visualization

  • rsruby – Ruby – R bridge
  • data-visualization-ruby – Source code and supporting content for my Ruby Manor presentation on Data Visualisation with Ruby
  • ruby-plot – gnuplot wrapper for ruby, especially for plotting roc curves into svg files
  • plot-rb – A plotting library in Ruby built on top of Vega and D3.
  • scruffy – A beautiful graphing toolkit for Ruby
  • SciRuby
  • Glean – A data management tool for humans
  • Bioruby
  • Arel



General-Purpose Machine Learning

  • h2o – A framework for fast, parallel, and distributed machine learning algorithms at scale — Deeplearning, Random forests, GBM, KMeans, PCA, GLM
  • Clever Algorithms For Machine Learning
  • Machine Learning For Hackers
  • nnet – nnet: Feed-forward Neural Networks and Multinomial Log-Linear Models
  • rpart – rpart: Recursive Partitioning and Regression Trees
  • randomForest – randomForest: Breiman and Cutler’s random forests for classification and regression
  • lasso2 – lasso2: L1 constrained estimation aka ‘lasso’
  • gbm – gbm: Generalized Boosted Regression Models
  • e1071 – e1071: Misc Functions of the Department of Statistics (e1071), TU Wien
  • tgp – tgp: Bayesian treed Gaussian process models
  • rgp – rgp: R genetic programming framework
  • arules – arules: Mining Association Rules and Frequent Itemsets
  • frbs – frbs: Fuzzy Rule-based Systems for Classification and Regression Tasks
  • rattle – rattle: Graphical user interface for data mining in R
  • ahaz – ahaz: Regularization for semiparametric additive hazards regression
  • arules – arules: Mining Association Rules and Frequent Itemsets
  • bigrf – bigrf: Big Random Forests: Classification and Regression Forests for Large Data Sets
  • bigRR – bigRR: Generalized Ridge Regression (with special advantage for p >> n cases)
  • bmrm – bmrm: Bundle Methods for Regularized Risk Minimization Package
  • Boruta – Boruta: A wrapper algorithm for all-relevant feature selection
  • bst – bst: Gradient Boosting
  • C50 – C50: C5.0 Decision Trees and Rule-Based Models
  • caret – caret: Classification and Regression Training
  • CORElearn – CORElearn: Classification, regression, feature evaluation and ordinal evaluation
  • CoxBoost – CoxBoost: Cox models by likelihood based boosting for a single survival endpoint or competing risks
  • Cubist – Cubist: Rule- and Instance-Based Regression Modeling
  • earth – earth: Multivariate Adaptive Regression Spline Models
  • elasticnet – elasticnet: Elastic-Net for Sparse Estimation and Sparse PCA
  • ElemStatLearn – ElemStatLearn: Data sets, functions and examples from the book: “The Elements of Statistical Learning, Data Mining, Inference, and Prediction” by Trevor Hastie, Robert Tibshirani and Jerome Friedman
  • evtree – evtree: Evolutionary Learning of Globally Optimal Trees
  • frbs – frbs: Fuzzy Rule-based Systems for Classification and Regression Tasks
  • GAMBoost – GAMBoost: Generalized linear and additive models by likelihood based boosting
  • gamboostLSS – gamboostLSS: Boosting Methods for GAMLSS
  • glmnet – glmnet: Lasso and elastic-net regularized generalized linear models
  • glmpath – glmpath: L1 Regularization Path for Generalized Linear Models and Cox Proportional Hazards Model
  • GMMBoost – GMMBoost: Likelihood-based Boosting for Generalized mixed models
  • grplasso – grplasso: Fitting user specified models with Group Lasso penalty
  • grpreg – grpreg: Regularization paths for regression models with grouped covariates
  • hda – hda: Heteroscedastic Discriminant Analysis
  • ipred – ipred: Improved Predictors
  • kernlab – kernlab: Kernel-based Machine Learning Lab
  • klaR – klaR: Classification and visualization
  • lars – lars: Least Angle Regression, Lasso and Forward Stagewise
  • LiblineaR – LiblineaR: Linear Predictive Models Based On The Liblinear C/C++ Library
  • LogicReg – LogicReg: Logic Regression
  • maptree – maptree: Mapping, pruning, and graphing tree models
  • mboost – mboost: Model-Based Boosting
  • mvpart – mvpart: Multivariate partitioning
  • ncvreg – ncvreg: Regularization paths for SCAD- and MCP-penalized regression models
  • nnet – nnet: Feed-forward Neural Networks and Multinomial Log-Linear Models
  • oblique.tree – oblique.tree: Oblique Trees for Classification Data
  • pamr – pamr: Pam: prediction analysis for microarrays
  • party – party: A Laboratory for Recursive Partytioning
  • partykit – partykit: A Toolkit for Recursive Partytioning
  • penalized – penalized: L1 (lasso and fused lasso) and L2 (ridge) penalized estimation in GLMs and in the Cox model
  • penalizedLDA – penalizedLDA: Penalized classification using Fisher’s linear discriminant
  • penalizedSVM – penalizedSVM: Feature Selection SVM using penalty functions
  • quantregForest – quantregForest: Quantile Regression Forests
  • randomForest – randomForest: Breiman and Cutler’s random forests for classification and regression
  • randomForestSRC – randomForestSRC: Random Forests for Survival, Regression and Classification (RF-SRC)
  • rattle – rattle: Graphical user interface for data mining in R
  • rda – rda: Shrunken Centroids Regularized Discriminant Analysis
  • rdetools – rdetools: Relevant Dimension Estimation (RDE) in Feature Spaces
  • REEMtree – REEMtree: Regression Trees with Random Effects for Longitudinal (Panel) Data
  • relaxo – relaxo: Relaxed Lasso
  • rgenoud – rgenoud: R version of GENetic Optimization Using Derivatives
  • rgp – rgp: R genetic programming framework
  • Rmalschains – Rmalschains: Continuous Optimization using Memetic Algorithms with Local Search Chains (MA-LS-Chains) in R
  • rminer – rminer: Simpler use of data mining methods (e.g. NN and SVM) in classification and regression
  • ROCR – ROCR: Visualizing the performance of scoring classifiers
  • RoughSets – RoughSets: Data Analysis Using Rough Set and Fuzzy Rough Set Theories
  • rpart – rpart: Recursive Partitioning and Regression Trees
  • RPMM – RPMM: Recursively Partitioned Mixture Model
  • RSNNS – RSNNS: Neural Networks in R using the Stuttgart Neural Network Simulator (SNNS)
  • RWeka – RWeka: R/Weka interface
  • RXshrink – RXshrink: Maximum Likelihood Shrinkage via Generalized Ridge or Least Angle Regression
  • sda – sda: Shrinkage Discriminant Analysis and CAT Score Variable Selection
  • SDDA – SDDA: Stepwise Diagonal Discriminant Analysis
  • svmpath – svmpath: svmpath: the SVM Path algorithm
  • tgp – tgp: Bayesian treed Gaussian process models
  • tree – tree: Classification and regression trees
  • varSelRF – varSelRF: Variable selection using random forests
  • caret – Unified interface to ~150 ML algorithms in R.
  • SuperLearner and subsemble – Multi-algorithm ensemble learning packages.
  • Introduction to Statistical Learning
  • fpc – fpc: Flexible procedures for clustering

Data Analysis / Data Visualization


Natural Language Processing

  • ScalaNLP – ScalaNLP is a suite of machine learning and numerical computing libraries.
  • Breeze – Breeze is a numerical processing library for Scala.
  • Chalk – Chalk is a natural language processing library.
  • FACTORIE – FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala. It provides its users with a succinct language for creating relational factor graphs, estimating parameters and performing inference.

Data Analysis / Data Visualization

  • MLlib in Apache Spark – Distributed machine learning library in Spark
  • Scalding – A Scala API for Cascading
  • Summing Bird – Streaming MapReduce with Scalding and Storm
  • Algebird – Abstract Algebra for Scala
  • xerial – Data management utilities for Scala
  • simmer – Reduce your data. A unix filter for algebird-powered aggregation.
  • PredictionIO – PredictionIO, a machine learning server for software developers and data engineers.
  • BIDMat – CPU and GPU-accelerated matrix library intended to support large-scale exploratory data analysis.

General-Purpose Machine Learning

  • Conjecture – Scalable Machine Learning in Scalding
  • brushfire – decision trees for scalding
  • ganitha – scalding powered machine learning
  • adam – A genomics processing engine and specialized file format built using Apache Avro, Apache Spark and Parquet. Apache 2 licensed.
  • bioscala – Bioinformatics for the Scala programming language
  • BIDMach – CPU and GPU-accelerated Machine Learning Library.
  • Figaro – a Scala library for constructing probabilistic models.
  • h2o-sparkling – H2O and Spark interoperability.


General-Purpose Machine Learning

  • swix – A bare bones library that includes a general matrix language and wraps some OpenCV for iOS development.


  • Some of the python libraries were cut-and-pasted from vinta
  • The few go reference I found where pulled from this page