Boost 1.90.0 closed for major changes
Release closed for major code changes. Still open for serious problem fixes.
conan install boost
vcpkg install boost
sudo apt install libboost-all-dev
sudo dnf install boost-devel
sudo yum install boost-devel
sudo pacman -S boost
brew install boost
Popular terms:
Release closed for major code changes. Still open for serious problem fixes.
C++ Now conference is accepting talk proposals until March 15.
Boost 1.89.0 is available with updates to Asio, Beast, and several other libraries.
Boost 1.89.0 is available with updates to Asio, Beast, and several other libraries.
#include <iostream>
int main()
{
std::cout << "Hello, Boost.";
}
Tap into quick answers, networking, and chat with 24,000+ members.
Tap into quick answers, networking, and chat with 24,000+ members.
Tap into quick answers, networking, and chat with 24,000+ members.
Tap into quick answers, networking, and chat with 24,000+ members.
conan install boost
vcpkg install boost
sudo apt install libboost-all-dev
sudo dnf install boost-devel
sudo yum install boost-devel
sudo pacman -S boost
brew install boost
Commit count by Boost release for this library.
Our research team at Penn State, in collaboration with Worcester Polytechnic Institute and NASA's John H. Glenn Research Center, set out to build something that had never been deployed in a real space system before: a multi-objective reinforcement-learning cognitive engine capable of autonomously optimizing radio communications aboard the International Space Station. The engine used deep neural network ensembles to manage radio resource allocation in real time, adjusting modulation and coding schemes, roll-off factors, and transmit power to simultaneously optimize six competing objectives: bit error rate, throughput, occupied bandwidth, spectral efficiency, transmit power efficiency, and DC power consumption.
We wrote the engine in C++11 for maximum portability between ground-based and space-based radio platforms. Unlike our original MATLAB prototypes, C++ does not come equipped with high-level constructs for networking, serialization, or matrix algebra. We needed production-quality libraries that could handle real-time UDP communications with commercial DVB-S2 satellite modems and allow us to save and restore the complete state of a learning system between orbital passes, all while meeting the strict licensing constraints imposed by ITAR and export control regulations.
Choosing the right software libraries was one of the most consequential decisions in the entire project. Because our export-controlled software was destined for redistribution on NASA's STRS (Space Telecommunications Radio System) Repository, we required libraries with permissive, non-copyleft licenses. GPL and LGPL libraries were off the table. This constraint alone eliminated the majority of candidates.
Boost stood out immediately. Its permissive license meant we could integrate it into our cognitive engine and contribute the code to the STRS Repository without any risk of violating redistribution requirements. But licensing was only the starting point. What truly set Boost apart was the maturity and reliability of its libraries. When you are building a system that will operate on the International Space Station, you cannot afford to debug flaky networking or unreliable serialization code. Boost gave us battle-tested components that worked.
Our cognitive engine communicates with multiple external modems simultaneously. The ViaSat DVB-S2 receiver sends real-time signal quality telemetry over UDP, while the ML605 transmitter modem requires raw Ethernet frames to embed action tuples into Advanced Orbiting Systems (AOS) frames for uplink to the ISS. Each interface has different protocol requirements, different timing constraints, and different failure modes.
Boost.Asio handled all of this elegantly. Its asynchronous I/O model allowed us to manage concurrent UDP listeners and transmitters without resorting to low-level socket programming or platform-specific APIs. The abstraction layer meant that the same networking code we developed on our ground workstations could be ported to different target platforms with minimal modification. For a system that must operate reliably within a 40-millisecond round-trip time window between ground and orbit, the deterministic performance of Boost.Asio was critical.
One of the key research questions in our experiment was whether a cognitive engine that retains its learned neural network weights from a previous ground station pass outperforms one that must relearn from scratch at the beginning of every contact window. Each ISS pass over a ground station lasts only minutes, and every second spent relearning is a second of suboptimal communications performance.
Boost.Serialization made it possible to archive and restore the complete state of our reinforcement-learning system, including all neural network weights, the training buffer contents, and application-specific parameters, to human-readable text files. When the engine restarts for a new pass, it can load the serialized state and resume with full knowledge of what it previously learned. This capability is foundational to the entire concept of persistent cognitive communications: a radio that gets smarter over time, pass after pass. The library's ability to serialize complex, nested C++ object hierarchies transparently saved us weeks of development time that would otherwise have been spent writing custom persistence code.
Boost's influence on our project extended beyond the two libraries we used directly. MLPack, the machine learning library we selected for our neural network implementation, uses Boost internally. Armadillo, our matrix algebra library, also integrates with the Boost ecosystem. This meant that our entire software stack shared a common foundation, which simplified the build process, reduced dependency conflicts, and made the system more maintainable. When multiple critical libraries in your project all trust Boost as their own dependency, that tells you something important about its quality and standing in the C++ community.
Our implemented cognitive engine completed on-orbit experiments with the ISS via the SCaN Testbed in May 2017. The cognitive engine was tested through a total of 20 flight passes over NASA Glenn Research Center's ground station providing performance results across a variety of link profiles. To the best of our knowledge, this marked one of the first published experiments of using a cognitive engine with a space-based asset and demonstrated that reinforcement learning-based multi-objective optimization is both feasible as well as useful for satellite communications.
The modular, object-oriented architecture we built was designed so that only the application-specific module needs to be swapped to adapt the engine for entirely different missions or optimization objectives. This reusability was central to NASA's vision for cognitive communications: systems that can be deployed across diverse missions without requiring a complete software rewrite each time.
Boost helped our small academic-government research team to punch well above our weight. Instead of spending months building and testing networking and serialization infrastructure from scratch, we were able to focus on what made our project unique: the cognitive algorithms themselves. For any team building mission-critical C++ systems under tight timelines and strict licensing constraints, Boost is not just a convenience, it is a force multiplier.
When you're building software that needs to operate flawlessly with the limited flight pass opportunities of the International Space Station, you need libraries you can rely on. Boost delivered production-grade tools with licensing compliant to NASA requirements, enabling our team to prioritize the science.
— Prof. Sven G. Bilén, The Pennsylvania State University
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Use, modify, and distribute Boost libraries freely. No binary attribution needed.