One minor quibble I had with the documentation. The examples section has a prominent section for libfmt, but I felt that std::format should be at least as prominent. I was of course reassured to find std::format mentioned in the reference section, and it worked just fine, so all good there.
I can add that. Right now it says above the example you can replace all the calls to fmt:: with std:: in the example, but clearly it could be better.
A minor gap I came across was C++23 std::byteswap and related endian support. Less of a practical concern nowadays, but it would be nice for Boost.Int128 to "just work" there too.
byteswap is currently available: https://develop.int128.cpp.al/bit.html#byteswap. As for the endian functions that would be a good addition.
It seems necessary to use BOOST_INT128_UINT128_C macro to initialise a std::array<boost::int128::uint128_t, 35>. A C++ language constraint? Certainly could be me doing it "wrong". (But it works)
BOOST_INT128_UINT128_C is offered for two reasons. First, is that it is analogous to UINT64_C, etc. that people are already used to. Second, BOOST_INT128_INT128_C can be used to initialize INT128_MIN whereas a literal cannot.
I recommend to ACCEPT Boost.Int128, it is a worthwhile addition to the boost toolbox, and documented and implemented to a high standard.
Thank you for your review! Matt