[review] [hub] boost::container::hub review starts on April 16
Dear Boost community, The formal review of Joaquín M. López Muñoz's boost::container::hub container is scheduled for April 16 - April 26. Hub is a nearly drop-in replacement of C++26 std::hive that has excellent performance. https://github.com/joaquintides/hub/blob/develop/README.md#performance The codebase is fairly small (single 1800-LOC header), and due to the subject matter, it is proposed to be part of Boost.Container rather than as a separate library. You can find code and documentation here: https://github.com/joaquintides/hub Best, Ion
Hi All, Thank you Joaquín for writing and sharing the library, and sorry if this sounds ungrateful, but looking at the documentation, it doesn't look comfortable. It looks like it assumes one is already familiar with std::hive, but it is difficult for a regular C++ programmer to learn hive. Even the common source of truth -- cppreference.com -- doesn't have std::hive documented. Are the users expected to use https://eel.is/c++draft/sequences#hive as reference, and p0447r28 as motivation? I would expect a library to be self-contained: the documentation comes with the sources. Regards, &rzej; sob., 4 kwi 2026 o 23:11 Ion Gaztañaga via Boost <boost@lists.boost.org> napisał(a):
Dear Boost community,
The formal review of Joaquín M. López Muñoz's boost::container::hub container is scheduled for April 16 - April 26.
Hub is a nearly drop-in replacement of C++26 std::hive that has excellent performance.
https://github.com/joaquintides/hub/blob/develop/README.md#performance
The codebase is fairly small (single 1800-LOC header), and due to the subject matter, it is proposed to be part of Boost.Container rather than as a separate library.
You can find code and documentation here:
https://github.com/joaquintides/hub
Best,
Ion
_______________________________________________ Boost mailing list -- boost@lists.boost.org To unsubscribe send an email to boost-leave@lists.boost.org https://lists.boost.org/mailman3/lists/boost.lists.boost.org/ Archived at: https://lists.boost.org/archives/list/boost@lists.boost.org/message/CM7MHS7W...
No dia 10 de abr. de 2026, às 21:22, Andrzej Krzemienski via Boost <boost@lists.boost.org> escreveu:
Hi All, Thank you Joaquín for writing and sharing the library, and sorry if this sounds ungrateful, but looking at the documentation, it doesn't look comfortable. It looks like it assumes one is already familiar with std::hive, but it is difficult for a regular C++ programmer to learn hive. Even the common source of truth -- cppreference.com -- doesn't have std::hive documented.
Are the users expected to use https://eel.is/c++draft/sequences#hive as reference, and p0447r28 as motivation? I would expect a library to be self-contained: the documentation comes with the sources.
Hi Andrezj. Nothing ungrateful about your observations :-) This submission is a little bit of uncharted territory to me as the proposal is for a Boost.Container component rather than a library of its own (though this is going to be discussed during the review, I think), and this has led me to be somewhat hesitant about how extensive the documentation should be (which is currently just the README.md file in wait for eventual integration into Boost.Container docs). But your feedback is clear and I will extend the docs to be as self-contained as possible. I’ll do that before the review begins. Best, Joaquín M López Muñoz
sob., 11 kwi 2026 o 10:01 Joaquín M López Muñoz <joaquinlopezmunoz@gmail.com> napisał(a):
No dia 10 de abr. de 2026, às 21:22, Andrzej Krzemienski via Boost < boost@lists.boost.org> escreveu:
Hi All, Thank you Joaquín for writing and sharing the library, and sorry if this sounds ungrateful, but looking at the documentation, it doesn't look comfortable. It looks like it assumes one is already familiar with std::hive, but it is difficult for a regular C++ programmer to learn hive. Even the common source of truth -- cppreference.com -- doesn't have std::hive documented.
Are the users expected to use https://eel.is/c++draft/sequences#hive as reference, and p0447r28 as motivation? I would expect a library to be self-contained: the documentation comes with the sources.
Hi Andrezj. Nothing ungrateful about your observations :-) This submission is a little bit of uncharted territory to me as the proposal is for a Boost.Container component rather than a library of its own (though this is going to be discussed during the review, I think), and this has led me to be somewhat hesitant about how extensive the documentation should be (which is currently just the README.md file in wait for eventual integration into Boost.Container docs).
But your feedback is clear and I will extend the docs to be as self-contained as possible. I’ll do that before the review begins.
Ok, I understand the situation. In that case I would reduce my expectations. I would expect to find the following minimum information that would help users understand the motivation and determine if they want to use it: container::hub is a good choice when you perform frequent insertions and deletions, and the access to elements is via iterating over all elements in the sequence. Upon every erasure a hole is left, which is then skipped during the iterations. Subsequent insertions fill these holes. Its iterators are bidirectional iterators. Insertion and erasure require O(1) operations on T, and do not invalidate iterators to non-erased elements. Regards, &rzej;
El 12/04/2026 a las 15:36, Andrzej Krzemienski escribió:
sob., 11 kwi 2026 o 10:01 Joaquín M López Muñoz <joaquinlopezmunoz@gmail.com> napisał(a):
[...]
But your feedback is clear and I will extend the docs to be as self-contained as possible. I’ll do that before the review begins.
Ok, I understand the situation. In that case I would reduce my expectations. I would expect to find the following minimum information that would help users understand the motivation and determine if they want to use it:
container::hub is a good choice when you perform frequent insertions and deletions, and the access to elements is via iterating over all elements in the sequence. Upon every erasure a hole is left, which is then skipped during the iterations. Subsequent insertions fill these holes.
Its iterators are bidirectional iterators. Insertion and erasure require O(1) operations on T, and do not invalidate iterators to non-erased elements.
I've expanded significantly the README.md: https://github.com/joaquintides/hub?tab=readme-ov-file#hub-container Hopefully this will help reviewers/users. Best, Joaquín M López Muñoz
participants (4)
-
Andrzej Krzemienski -
Ion Gaztañaga -
Joaquin M López Muñoz -
Joaquín M López Muñoz