icubaby is a C++ Library to Immediately Convert Unicode. It is a portable, header-only, dependency-free library for C++ 17 or later. Fast, minimal, and easy to use for converting sequences of text between any of the Unicode UTF encodings. Simple to use and exceptionally simple to integrate into a project, it does not allocate dynamic memory and neither throws or catches exceptions.
Homepage
Download
Recent Releases
1.2.505 Sep 2026 20:42
minor feature:
- Add nodiscard decorations
- The pad field becomes unnamed. Change the eval of the size of uint_least8_t
- Use to_underlying() instead of static cast to uint8
- Add a default class to the byte transcoder state switch
- Add parentheses to avoid gcc warning
- Use cmake FetchContent for googletest
- Policy CMP0140 was added in cmake version 3.25
1.2.415 Oct 2024 10:39
minor feature:
- Relax the type constraint on the transcoder template arguments
- Add a CMake option which disables both Google Test and the unit tests
- Add a CMake option for a standalone build which includes the test executables
1.2.215 Jun 2024 11:01
minor feature:
- Update the CMake files to that we call add_test() for each of the test executables. This enables use of CTest to execute the collection of tests.
1.2.128 May 2024 08:02
minor feature:
- Eliminated use of raw integer and fixed-width integer types (the latter are not required by the C++ standard). The uint_leastXX_t types are used instead.
- Added some missing includes.
- A few more cases when we can conditionally use C++ 20 ranges.
- transcoder::partial() is now always a non-static const member function. In cases whether the function simply returns a constant, it was sometimes a static member function. Although pleasing to some static analysis tools, this was inconsistent with the generic transcoder interface.
- Added a simple performance test harness.
- Eliminated magic numbers in the UTF-8 and UTF-16 converters.
- A small UTF-16 decoder optimization.
1.2.016 Apr 2024 10:31
minor feature:
- Fix for a compilation error when composing a range adaptor such as std::views::transform()
- Improved the documentation s examples by limiting the line length to better match the documentation width.
|