Open source C libraries: algorithms, data structures, concurrency, networking & more. Peer-reviewed, portable, battle-tested since 1998. boost.org

Joined March 2017
185 Photos and videos
Level up your C skills! Sharpen your code with the latest from the Boost Libraries, powerful, peer-reviewed, and production-ready New in Boost: Bloom – High-performance Bloom filters → boost.org/libs/bloom Hash2 – Modern, flexible hashing library → boost.org/libs/hash2 MQTT5 – Next-gen MQTT protocol support → boost.org/libs/mqtt5 Explore all Boost libraries → boost.org/libs
5
3
21
8,133
Passing messages between two threads via a mutex-guarded std::queue? Every push/pop is ~200ns uncontended. A lock-free SPSC queue does it in under 20ns. Same threads, 10x faster What's your mutex costing you? 🧵👇
1
1
31
2,252
Boost Blueprint 064: Boost.Lockfree (spsc_queue) A wait-free bounded queue for exactly one producer and one consumer: the most common inter-thread pattern No mutex, no contention, no syscalls. Cache-line padded against false sharing. Sub 20ns push/pop. One writer, one reader: the fastest primitive in portable C Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
2
2
28
772
Spring dynamics. Orbital mechanics. Chemical kinetics. The physics is 3 lines of ODEs Then comes the part nobody warns you about: 400 lines of stepping logic, error control, and adaptive step-sizing. And a week of debugging it What if you could just write the equations? 🧵👇
1
31
2,498
Boost Blueprint 063: Boost.Odeint Write your system as a function, pick a stepper (Runge-Kutta, Dormand-Prince, Adams-Bashforth, implicit methods when things get stiff) and let the library handle adaptation, error control, and dense output Those 400 hand rolled lines? Now a function call with a tolerance Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
1
5
33
871
You've probably held polymorphic objects in std::vector<unique_ptr<Base>> Trouble is they scatter across the heap, so iterating a million costs you twice: vtable dispatch and cache misses. And it's the cache misses that really sting 🧵👇
2
48
7,950
Boost Blueprint 062: Boost.PolyCollection. It groups objects contiguously by concrete type instead of scattering them behind pointers Same interface you know, but iteration stays in cache and the dedicated algorithms devirtualize on top. Reach for it when traversal is your bottleneck Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
2
2
41
1,464
Classic C metaprogramming lives in the type system. You compute on types and nothing survives to run time But a tuple holds both: types and values What if compile-time and run-time shared the same abstractions? 🧵👇
1
35
3,326
Boost Blueprint 061: Boost.Hana It unifies type level and value level metaprogramming. Treat types as values, and the same operations (transform, filter, fold) run over a list of types or a tuple of values. All in one syntax Metaprogramming that used to mean recursive metafunctions becomes ordinary code. C 14 and up Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
1
1
23
987
co_await shipped in C 20. Sockets, timers, and an event loop to actually run it? Nope You got the async syntax, but no async I/O. So what's your coroutine server actually built on? 🧵👇
4
43
6,174
Boost Blueprint 060: Boost.Asio (C 20 coroutines) co_spawn a coroutine, co_await a socket read, mix async ops with || and &&. Asio is what turns co_await from a language feature into a real I/O framework The same library that kicked off async C back in 2003 now powers the coroutine era, and on Linux 5.10 , it can run on io_uring under the hood Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
2
2
29
1,174
Your CPU processes 10M elements in a few seconds. The GPU beside it? Under 100ms. A 30x improvement just sitting there Could use OpenCL, but the boilerplate is 200 lines before you touch a single kernel What if programming the GPU felt like using the STL? 🧵👇
3
2
59
6,957
Boost Blueprint 059: Boost.Compute It's the STL, but on the GPU. Write transform, sort, reduce (same calls you already know) and it handles kernel generation, memory transfer, and dispatch for you That 200 line wall becomes ~10 lines of C you can actually read. And that 30x? It's yours Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
3
2
52
1,537
C 26 adds native contracts. Your codebase won't be on C 26 for years Meanwhile, assert() still vanishes in release builds. So what do you do right now? 🧵👇
1
2
28
4,158
Boost Blueprint 058: Boost.Contract Preconditions, postconditions, class invariants checked at runtime, enforceable in every build mode, on whatever standard you actually ship In Boost since 2018, independent of C 26's P2900. Contract enforcement in release builds today. No C 26 toolchain required Level up your C architecture. Follow @Boost_Libraries for the #BoostBlueprint series #cpp
4
20
1,013