uni-algo
Unicode Algorithms Implementation for C/C++ (by uni-algo)
tiny-utf8
Unicode (UTF-8) capable std::string (by DuffsDevice)
uni-algo | tiny-utf8 | |
---|---|---|
4 | 2 | |
298 | 549 | |
0.0% | -0.2% | |
8.9 | 4.3 | |
over 1 year ago | 3 months ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
uni-algo
Posts with mentions or reviews of uni-algo.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-07-07.
- uni-algo: Unicode Algorithms Implementation for C/C++
-
uni-algo v0.7.0: constexpr Unicode library and some talk about C++ safety
Safe layer is just bounds checks that work in all cases that I need, before that I was coping with -D_GLIBCXX_DEBUG (doesn't have safe iterators for std::string and std::string_view and that I need the most) and MSVC debug iterators (better but slow as hell in debug). You can read more about the implementation here: https://github.com/uni-algo/uni-algo/blob/main/doc/SAFE_LAYER.md Nothing interesting it's possible to implement all of this even in C++98 but no one cared back then and it's a shame that it's not in C++ standard so we cannot choose to use safe or unsafe std::string for example and must rely on implementations in compilers that are simply incomplete in many cases or implement it from scratch.
-
New Unicode library
Why call your files modules? "Modular programming" or "Modular architecture" is pretty standard term in programming I don't think there are a good synonym for "module" word so I plan to use "Modules" and "C++20 Modules" to avoid ambiguity. You have one cpp file in the project. Any reason for that? Including Unicode data files that may be pretty big into header files hurts compilation speed. C++20 Modules will help with that and I plan to support it. I'd also recommend supporting CMake I will support CMake it just I didn't need it in my development stage. Overall, looks very nice. Thank you. I made a post on GitHub with some of my plans: https://github.com/uni-algo/uni-algo/issues/3
tiny-utf8
Posts with mentions or reviews of tiny-utf8.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-04.
-
tiny-utf8 VS codepoint-iterator - a user suggested alternative
2 projects | 4 Jun 2023
-
How to use Rcpp::wrap() to convert C++ data types?
I've recently been trying to use the tiny-utf8 library in Rcpp in order to handle unicode, but I am having serious issues trying to understand how the "wrap" part of it works. For the "as" part, I've received some help on Stack Overflow, which works great, but without a wrap(), it seems that I cannot convert the data type into those of Rcpp. I've been reading this post and trying to replicate it, but with utter failure after long hours, due likely to a lack of knowledge in C++ templates. Could someone give some pointers as to how I might go about doing this? I am at the end of my wits at this point.
What are some alternatives?
When comparing uni-algo and tiny-utf8 you can also consider the following projects:
simdutf - Unicode routines (UTF8, UTF16, UTF32) and Base64: billions of characters per second using SSE2, AVX2, NEON, AVX-512, RISC-V Vector Extension, LoongArch64, POWER. Part of Node.js, WebKit/Safari, Ladybird, Chromium, Cloudflare Workers and Bun.
SocialNetwork - Design and C++ implementation of a simple social network system
hikogui - Modern accelerated GUI
vvdec - VVdeC, the Fraunhofer Versatile Video Decoder
utf8 - UTF-8 support for Nix
rust-lexical - Fast numeric to- and from-string conversion routines.