uni-algo
tomlplusplus
uni-algo | tomlplusplus | |
---|---|---|
4 | 23 | |
245 | 1,405 | |
2.0% | - | |
8.9 | 6.4 | |
4 months ago | about 2 months ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | MIT 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
tomlplusplus
-
how to handle config files in c++?
Unless you want to make your own config file parser as an exercise (which is a good idea) I'd recommend using toml++.
-
Cmake fetchContent not working in a docker container.
It's a public repo - this one: https://github.com/marzer/tomlplusplus but thank you
-
Poxy - a Doxygen frontend - v0.9.0 released
For a live demo, see the toml++ homepage: https://marzer.github.io/tomlplusplus/
-
Preferred way to read in application settings/config in C++
Added bonus, tomlplusplus is a solid C++ implementation, actively updated, and easy to drop into a project (header only, CMake, vcpkg, Conan, etc.). Very easy to use for what I've needed.
-
toml++ v3.2.0 released
Key links: - Homepage: https://marzer.github.io/tomlplusplus/ - Repository: https://github.com/marzer/tomlplusplus - "What is TOML?": https://toml.io/
-
CMake for toml not working
cmake_minimum_required(VERSION 3.23) project(testProj) set(CMAKE_CXX_STANDARD 23) set(FETCHCONTENT_BASE_DIR ${PROJECT_SOURCE_DIR}/${CMAKE_PROJECT_NAME}/libs CACHE PATH "Missing description." FORCE) include(FetchContent) FetchContent_Declare( tomlplusplus GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git GIT_TAG v3.1.0 ) FetchContent_MakeAvailable(tomlplusplus) add_executable(testProj testProj/src/main.cpp) target_link_libraries(testProj tomlplusplus)
- toml++: Header-Only TOML Config File Parser And Serializer For C++
-
What are some use cases of using shared_ptr in a single threaded program?
I use them in toml++ to store the path of the source document for all the data nodes parsed from that document. Storing it as a separate std::string allocation for every single object would have been very wasteful, and the alternative would have been to make an overall document class that owned everything, which I didn't want to do, so shared_ptr was a good compromise.
-
toml++ v3.1.0 released
Key links: - Homepage: https://marzer.github.io/tomlplusplus/ - Repository: https://github.com/marzer/tomlplusplus - "What is TOML?": https://toml.io/
-
What are some projects that taught you a lot?
toml++ was both my first 'public'/open-source project, and my first ever attempt at a parser. There's a few things I'd do differently now if I were to write it from scratch, but I've learned a lot along the way (particularly about making things build 'clean' on multiple platforms).
What are some alternatives?
hikogui - Modern accelerated GUI
toml11 - TOML for Modern C++
quick-lint-js - quick-lint-js finds bugs in JavaScript programs
Magic Enum C++ - Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
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.
toml - Tom's Obvious, Minimal Language
utf8 - UTF-8 support for Nix
toml - Python lib for TOML
tiny-utf8 - Unicode (UTF-8) capable std::string
json_test_data - Test data for nlohmann/json
cmkr - Modern build system based on CMake and TOML.
tree-sitter-html - HTML grammar for Tree-sitter