Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Open Source Boost

Boost is used in a variety of Open Source Projects, both applications and libraries. Indeed many Open Source libraries developed around Boost have in the past been judged of high enough quality to be absorbed into the main Boost source tree, a process that will no doubt continue into the future. Others are in highly specialized niche markets, ranging from probability theory to astronomy, via mass spectroscopy: whatever your field of interest you'll find something of value in Boost.

Algocoders

Algocoders has been using boost since last 6+ years with a mission to help people build a better software eco-system by standing on the shoulder of giants.

If it wasn't for Boost, then it could have been really difficult for us to build our framework based on sound mathematical foundation of computer science using modern C++. It is the pioneering efforts at Boost towards "Using and Extending C++11, Boost and Beyond" which has motivated us to devote ourself in developing bullet-size capsules in the form of tiny booklets with industrial-set framework to lift the thin veil with initial focus on practical usage of C++11 vis-a-vis mathematical foundation behind it.

Enthused by boost, we are working tirelessly towards publishing a series of books (or booklets) which will bridge the gap between esoteric and street-side ones. Initial focus will be on C++11, Boost, Loki, STL, Algorithms, Data Structures, Multi-threading, Design Patterns, gcc, Clang, valgrind.

First book in this series is Foundation of Algorithms in C++11, Volume 1: Using and Extending C++11, Boost and Beyond (published December 2012) Table of Contents Sample Chapter 1

List of books in progress:

  • Smart Pointers : Tips and Techniques in C++ : Using and Extending C++11, Boost and Beyond
  • C++11 FAQs : Using and Extending C++11, Boost and Beyond
  • Concepts & Traits C++ : Using and Extending C++11, Boost and Beyond

We use almost all the libraries in Boost including trunk and branches, especially Spirit, Phoenix, Proto, MPL, Fusion.

Adobe Software Libraries

The Adobe Software Libraries provide components for modeling the human interface appearance and behavior in a software application. The Adobe Software Libraries depend on many parts of Boost including Boost.Any, Boost.Bind, Boost.Function, Boost.MPL, Boost.Operators, Boost.Range, Boost.StaticAssert, Boost.Thread, and Boost.TypeTraits.

Currently Boost and the Adobe Software Libraries are in use in around 30 Adobe products.

LyX Document Editor

The LyX Document Editor is an advanced open source document processor that encourages an approach to writing based on the structure of your documents, not their appearance. LyX produces high quality, professional output, using LaTeX, an industrial strength typesetting engine.

LyX uses many parts of Boost, including Array, Boost.Bind, Boost.Regex, Boost.TypeTraits, Boost.Function, and Boost.Signals.

CodeSynthesis XML Schema to C++ Data Binding Compiler (XSD) by Code Synthesis Tools CC

CodeSynthesis XML Schema to C++ Data Binding Compiler (XSD) is an open-source, cross-platform XML Data Binding implementation for C++. Provided with an XML instance specification (XML Schema), it generates C++ classes that represent the given vocabulary as well as parsing and serialization code. You can then access the data stored in XML using types and functions that semantically correspond to your application domain rather than dealing with elements, attributes, and text in a direct representation of XML such as DOM or SAX.

XSD uses Boost.Regex and Boost.FileSystem libraries from Boost. Boost.Regex is used to perform transformations on file, type and member names. Boost.FileSystem is used to capture and manipulate XML Schema include and import paths. Additionally, we are planning to provide an optional mapping of XML Schema date and time types to C++ types from the Boost Boost.DateTime library.

CodeShop

I am happy to announce Amsterdam based CodeShop has been using Boost since 2005 on all of it's projects (and CodeShop memebers have been using Boost since 2001).

We used it on the following:

OpenZoep

An open source voip stack (xmpp-siprtp(port)audio/codecs), capable of pc2pc calls and pc2pstn calls - it's a message based sdk, so you could write your own Gtalk or Skype ...

Boost is used everywhere: from the xmpp implementation (Boost.Function, Boost.Asio) to the codecs-wrapper (Boost.SmartPointers) - and more. Boost made the code a lot easier, more fun, safer and faster to develop. Bjam was used as build system.

See description and trac&svn.

Abonja / Whitelabelvideo

Online videosharing platform: you can upload and watch flashvideo online, but at the same time run your pc client and download all your preferences automatically for viewing later at home

Boost and C++ are used for the serverside tooling. Bjam is used as build system.

www.abonja.nl and www.whitelabelvideo.nl (Dutch only: a javascript sdk for viewing and uploading - Boost is used serverside also).

Code from above and other projects made available as plain download or as library.

Pieces address 'simple' problems like a windows registry wrapper to more system like parts as for instance a drm implementation. Boost is used all over (__filesystem, Boost.Thread, Boost.Asio, Boost.Spirit etc); Boost.Build is used as build system.

CGAL

CGAL is the Computational Geometry Algorithms Library, an open source C++ library providing generic components such as triangulations, convex hulls algorithms, boolean operations of polygons and many other things. "We currently use the following Boost libraries : Boost.Operators, Boost.Iterator, Boost.Tuple, Boost.ConceptCheck, Boost.MPL, Boost.Bind, Boost.Optional and Boost.SmartPointers."

ALPS

ALPS is an open source project to develop codes for the accurate simulation of quantum lattice models, such as quantum magnets, electronic systems and Bose-Einstein condensates. The main Boost libraries used are: Boost.Graph, Boost.Random, Boost.MultiIndex, Boost.ProgramOptions, Boost.LexicalCast, Boost.Serialization, Boost.Regex, Boost.Tuple, Boost.FileSystem, Boost.SmartPointers, Boost.Bind, Boost.Functional and Boost.TypeTraits

SmartWin++

SmartWin++ is a 100% free GUI library for developing Windows applications, it's free both as in "free beer" and as in "free speech", you can freely use SmartWin++ for commercial applications and for Open Source applications!

Open VRML

Open VRML is a free cross-platform runtime for VRML. The basic OpenVRML distribution includes libraries you can use to add VRML support to an application, and Lookat, a simple stand-alone VRML browser.

Bayes++

Bayes++ is an open source library that represents and implements a wide variety of numerical algorithms for Bayesian Filtering of discrete systems from the Australian Centre for Field Robotics. Bayes++ makes particularly heavy use of Boost.Ublas for matrix and numeric computations.

Kohonen Neural Network Library (KNNL)

Kohonen neural network library is a set of classes and functions for design, train and use Kohonen networks (self organizing maps).

KNNL Uses Boost.Bind, Boost.Function, Boost.TypeTraits Boost.ProgramOptions.

The C++/Tk Library

The C++/Tk Library is an open source C++ interface to the Tk GUI Library.

GluCat

GluCat is a library of template classes which model the universal Clifford algebras over the real or complex fields, with arbitrary dimension and arbitrary signature.

OpenMS

OpenMS is an open source C++ library for LC/MS data management, reduction, evaluation, visualization, storage and sophisticated statistical analyses. It can be used to develop mass spectrometry related applications.

libpdf++

libpdf++ is an object-oriented library for generating PDF (portable document format) files. It is designed in a way that the objects in the document are mapped directly to classes in the library.

Regina

Regina is a suite of mathematical software for 3-manifold topologists. It focuses upon the study of 3-manifold triangulations and includes support for normal surfaces and angle structures.

MetaFS

MetaFS is a daemon for Linux (and Linux only) that allows you to access information about your files (such as MP3 tags or JPEG's EXIF tags) easily and consistently using extended attributes. It also allows you to perform fast searches using this information. MetaFS is extensible, so anyone can write plug-ins to access new types of metadata.

The ASN.1 Tool

Abstract Syntax Notation One (ASN.1) is a formal language for abstractly describing messages to be exchanged among an extensive range of applications involving the Internet, intelligent network, cellular phones, ground-to-air communications, electronic commerce, secure electronic services, interactive television, intelligent transportation systems, Voice Over IP and others.

The ASN.1 Tool includes two parts : an ASN.1 compiler "asnparser" which compiles the Abstract Syntax to c++ files, and a runtime library which is used to link with the c++ files generated by asnparser. Based on the works of Open H.323 projects, it is developed for the needs of H.450 series protocol.

DGD

DGD (Depression Glass Debug) is simple, easy to use C++ ostream extension created with a goal to produce nice, readable and easy to understand trace logs

FEAR

FEAR is a language independent open-source project providing portable support for the creation of genuine Artificial Intelligence within realistic simulated worlds.

XEngine

XEngine is a platform- and rendering-API-independent 3D engine for real-time visualization with support for programmable graphics pipeline architectures and is implemented in C++.

Spheral++

Spheral++ is a numerical tool for simulating the evolution of a set of fluid or solid materials subject to hydrodynamic, gravitational, and radiative effects. Spherical++ uses Boost.Python.

C++ XML Objects

C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML.

HippoDraw

HippoDraw provides a highly interactive data analysis environment. HippoDraw uses Boost.Python.

Orocos

The Orocos Robot Control Software Application Framework.

ECell

The E-Cell Project is an international research project aiming at developing necessary theoretical supports, technologies and software platforms to allow precise whole cell simulation.

VCS Made Easy

VCS Made Easy, or vcsme for short, is an utility whose main purpose is to simplify the maintenance of file trees managed by a version control system, such as the well known CVS or Subversion. Simply put, it automates the process of bringing all these directories to an up-to-date status with a single and simple command.

"The following Boost libraries were used: Boost.Format, Boost.SmartPointers, Boost.Utility and Boost.FileSystem."

Monotone

Monotone is a free distributed version control system. It provides a simple, single-file transactional version store, with fully disconnected operation and an efficient peer-to-peer synchronization protocol. It understands history-sensitive merging, lightweight branches, integrated code review and 3rd party testing. It uses cryptographic version naming and client-side RSA certificates. It has good internationalization support, has no external dependencies, runs on linux, solaris, OSX, windows, and other unixes, and is licensed under the GNU GPL.

"The followind Boost libraries were used: Boost.DateTime, Boost.FileSystem, Boost.Conversion, Boost.Optional, Boost.Random, Boost.Regex, Boost.SmartPointers, Boost.StaticAssert, Boost.Tokenizer, Boost.Tuple and Boost.Test."

Hydranode Engine

Hydranode Engine is a plugin-driven P2P client engine that relies heavily on Boost libraries. Hydranode codebase is licenced under GNU GPL, and is developed mainly by Alo Sarv. Currently in Beta phase, Hydranode runs on wide range of platforms, including Windows, Linux, BSD, Mac OS, Solaris etc.

"Hydranode Engine and plugins rely heavily on the following Boost libraries: Boost.Bind, Boost.Function, Boost.Lambda, Boost.MultiIndex, Boost.Signals, Threads, Boost.SmartPointers, Format, Boost.LexicalCast. Other Boost libraries being used include Boost.FileSystem, Boost.StringAlgorithms, Boost.DateTime, Boost.ProgramOptions, Boost.Spirit, Boost.Random, Boost.Tokenizer, Boost.TypeTraits, Boost.Tribool, Boost.Tuple and Boost.Any. Once Boost 1.33 is released, I'm also looking forward to using the Boost Iostreams library in Hydranode.

"All complex data structures in Hydranode are implemented using Boost.MultiIndex containers, which significantly reduced development time and kept code clean. Format is being used for all text formatting. Having Boost.Thread and Boost.FileSystem libraries available made cross-platform development lot easier in those areas."

Hugin

With hugin you can assemble a mosiac of photographs into a complete immersive panorama, stitch any series of overlapping pictures and much more.

Enblend

Enblend is a tool for compositing images. Given a set of images that overlap in some irregular way, Enblend overlays them in such a way that the seam between the images is invisible, or at least very difficult to see.

GNU Source-highlight

GNU Source-highlight, given a source file, produces a document with syntax highlighting. The colors and the styles can be specified (bold, italics, underline) by means of a configuration file, and some other options can be specified at the command line. The output format can be HTML, XHTML and ANSI color escape sequences. GNU Source Highlight is build around Boost.Regex

Luabind

Luabind is a library that helps you create bindings between C++ and lua. It has the ability to expose functions and classes, written in C++, to lua. It will also supply the functionality to define classes in lua and let them derive from other lua classes or C++ classes. Lua classes can override virtual functions from their C++ baseclasses. It is written towards lua 5.0, and does not work with lua 4.

C++/Tcl

C++/Tcl is a library that allows the easy integration of C++ and Tcl.

Mordor

The Modor project is a high performance I/O library. Issued under BSD license.

NOX

The NOX project is the original OpenFlow controller, and facilitates development of fast C++ controllers on Linux. NOX is a piece of the Software Defined Networking ecosystem. Specifically, it?s a platform for building network control applications.

QuantLib

The QuantLib project provides a comprehensive software framework for quantitative finance. QuantLib is a free/open-source library for modeling, trading, and risk management in real-life. Boost components used include Boost.SmartPointers, Boost.Iterator, and Boost.Test.

CBCanaylzer

CBCanaylzer is developed by the Department of Bioinformatics, at the University of Wuerzburg.

"CBCAnalyzer (CBC = compensatory base change) is a tool to create small'' phylogenetic trees from sequence alignments. To measure the distance of sequences the compensatory base changes are detected and counted. The bionj algorithm is then used to construct a tree. CBCAnalyzer is available on Windows, Linux and partly works on MacOSX.

"Boost libraries used: Boost.ProgramOptions - creates really nice output, and is both easy to extend and simple to handle. Boost.Iterator, Boost.Spirit - Saved a lot of my time, and makes the vast amount of biological file formats simple to support, Boost.SharedPointer, Boost.Lambda.

Profdist

Profdist is developed by the Department of Bioinformatics, at the University of Wuerzburg.

"Profdist is a tool for the construction of large phylogenetic trees based on profile distances. The input alignment data gets extended by random picking of rows, and a clustering technique is used to create profiles of the most frequent subtrees. The iterative approach allows working on large datasets. Currently the application is very limited by the quality of wxWidgets, and only available for Windows and Linux.

"The Boost libraries used were: Boost.StringAlgorithms, Boost.Ref, Boost.Iterator, Boost.Spirit, Boost.SharedPointer and Boost.Lambda."

The Yake Engine

The Yake Engine is a component-based, object-oriented engine written in C++ and primarily designed for VR applications and games. It abstracts typical low-level and middleware APIs and provides various low, mid and application level functionality as well as tools to create and import content.

Public Sector Credit Solutions

Public Sector Credit Solutions An open source project modelling sovereign rating debt ratings uses a Monte Carlo simulation which includes calls to Boost.Math normal and Cauchy random number generators. Public Sector Credit Framework

Python-Ogre

Python-Ogre is a Python bindings for Ogre 3D - a scene-oriented, flexible 3D engine.

Python-Ogre uses Boost.Python to expose next libraries to Python:

  • Ogre
  • Newton
  • ODE
  • OgreAL
  • CEGUI
  • OIS