uni-algo
tiny-utf8
uni-algo | tiny-utf8 | |
---|---|---|
4 | 2 | |
245 | 534 | |
2.0% | - | |
8.9 | 0.0 | |
4 months ago | over 1 year ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
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
- 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
-
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?
hikogui - Modern accelerated GUI
rust-lexical - Fast numeric to- and from-string conversion routines.
quick-lint-js - quick-lint-js finds bugs in JavaScript programs
replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed.
simdutf - Unicode routines (UTF8, UTF16, UTF32) and Base64: billions of characters per second using SSE2, AVX2, NEON, AVX-512, RISC-V Vector Extension. Part of Node.js and Bun.
json - A C++11 library for parsing and serializing JSON to and from a DOM container in memory.
utf8 - UTF-8 support for Nix
ImGuiColorTextEdit - Colorizing text editor for ImGui
fuif - Free Universal Image Format
vvenc - VVenC, the Fraunhofer Versatile Video Encoder
vvdec - VVdeC, the Fraunhofer Versatile Video Decoder
pfr - std::tuple like methods for user defined types without any macro or boilerplate code