
Boost is a set of
libraries for the
C++ programming language that provides support for tasks and structures such as
linear algebra,
pseudorandom number generation, multithreading,
image processing,
regular expressions, and
unit testing
Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior.
Unit testing describes tests that are run at the unit-level to contrast testing at the Integration ...
. It contains 164 individual libraries (as of version 1.76).
All of the Boost libraries are
licensed under the
Boost Software License
Boost is a set of library (computing), libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generator, pseudorandom number generation, multithreading, image proces ...
, designed to allow Boost to be used with both
free and
proprietary software projects. Many of Boost's founders are on the
C++ standards committee, and several Boost libraries have been accepted for incorporation into the
C++ Technical Report 1, the
C++11 standard (e.g. smart pointers, thread, regex, random, ratio, tuple) and the
C++17 standard (e.g. filesystem, any, optional, variant, string_view).
The Boost community emerged around 1998, when the first version of the standard was released. It has grown continuously since then and now plays a big role in the standardization of C++. Even though there is no formal relationship between the Boost community and the standardization committee, some of the developers are active in both groups.
Design
The libraries are aimed at a wide range of C++ users and application domains. They range from general-purpose libraries like the
smart pointer library, to
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
abstractions like ''Boost FileSystem'', to libraries primarily aimed at other library developers and advanced C++ users, like the
template metaprogramming (MPL) and
domain-specific language (DSL) creation (Proto).
In order to ensure efficiency and flexibility, Boost makes extensive use of
templates. Boost has been a source of extensive work and research into
generic programming and
metaprogramming in C++.
Most Boost libraries are
header based, consisting of
inline function
In the C (programming language), C and C++ programming languages, an inline function is one qualified with the Keyword (computer programming), keyword inline; this serves two purposes:
# It serves as a compiler directive that suggests (but doe ...
s and templates, and as such do not need to be built in advance of their use. Some Boost libraries coexist as independent libraries.
Associated people
The original founders of Boost that are still active in the community includes
David Abrahams. An author of several books on C++, Nicolai Josuttis, contributed to the Boost
array library in 2001. There are mailing lists devoted to Boost library use and library development, active .
License
Boost is licensed under its own
free,
open-source license, known as the Boost Software License. It is a permissive license in the style of the
BSD license and the
MIT license
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
, but without requiring
attribution for redistribution in
binary form
Binary form is a musical form in 2 related sections, both of which are usually repeated. Binary is also a structure used to choreograph dance. In music this is usually performed as A-A-B-B.
Binary form was popular during the Baroque music, Baro ...
. The license has been
OSI-approved since February 2008
and is considered a
free software license,
compatible with the
GNU General Public License, by the
Free Software Foundation.
See also
*
Apache Portable Runtime – used by the
Apache HTTP Server
The Apache HTTP Server ( ) is a free and open-source software, free and open-source cross-platform web server, released under the terms of Apache License, Apache License 2.0. It is developed and maintained by a community of developers under the ...
*
GLib – the equivalent upon which
GNOME is built
*
KDE Frameworks – the equivalent upon which
KDE Software Compilation is built
*
List of C++ template libraries
*
Software using the Boost license (category)
*
Standard Template Library
References
Further reading
*
*
*
*
*
*
*
*
External links
*
{{Parallel computing
C++
C++ libraries
Data structures libraries and frameworks
Free computer libraries
Free software programmed in C++
Generic programming
Software using the Boost license