miroir
C++20 compile-time reflection library. (by 99syl)
reflecxx
A static reflection framework for C++, using libclang. (by jimmyorourke)
miroir | reflecxx | |
---|---|---|
3 | 5 | |
35 | 55 | |
- | - | |
3.6 | 10.0 | |
4 months ago | about 2 years ago | |
C++ | Python | |
MIT License | MIT 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.
miroir
Posts with mentions or reviews of miroir.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-01-19.
-
I implement a fast, macro-based namedtuple works under C++11
Fwiw, there is at least one without macros or external tools. https://github.com/BaguetteFramboise/miroir Whether it's as practical as macro based libraries or not is another question, ofc.
-
miroir: another c++20 static reflection library
Repository: https://github.com/SylEze/miroir
reflecxx
Posts with mentions or reviews of reflecxx.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-01-19.
- I implement a fast, macro-based namedtuple works under C++11
- reflecxx: A static reflection library framework and tooling. Auto serialization and more.
-
Unable to use asio.hpp when using conan
I haven't used the cmake_find_package generator much myself. People like it because it lets you write your cmake in a mostly conan agnostic way. If you don't care about that, I find the plain cmake generator much easier to use. You can inspect the generated conanbuildinfo.cmake file to see the targets, and call conan_basic_setup(TARGETS ). Then you link against targets that look like CONAN_PKG::boost or similar. I usually wrap conan setup in a cmake utility file like this: https://github.com/jimmyorourke/reflecxx/blob/main/test/cmake/ConanSetup.cmake
-
Is there any good binary serializer & deserializer for C / C++?
I have a library and tooling that using code generation will allow you to automatically generate serialization/deserialization to your custom binary format. It uses the visitor pattern and code generation for static reflection (eg iterating over fields of a struct). Check it out at https://github.com/jimmyorourke/reflecxx. Particularly it includes an automatic to/from json, which you could use as a starting point for how to write your own visitor.
-
figcone - Read JSON, YAML, TOML, XML or INI configuration by declaring a struct
You might be interested in a project I've put together that uses libclang to generate static reflection metadata that can then be used for generic parsing or serialization: https://github.com/jimmyorourke/reflecxx. It has examples of automatic to/from json.
What are some alternatives?
When comparing miroir and reflecxx you can also consider the following projects:
metapp - C++ runtime reflection library
metacpp - Meta C++ Library and Tool
namedtuple - Implementation of super-fast C++-styled namedtuple, for compile-time reflection.
TextLayoutSampler - Utility to display text via multiple Windows API's simultaneously (D2D, DWrite, GDI, GDI+).
Protobuf - Protocol Buffers - Google's data interchange format
Bitsery - Your binary serialization library
Kaitai Struct - Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Nim / Perl / PHP / Python / Ruby
cereal - A C++11 library for serialization