Refureku - Reflection library for C++

  •        41

Refureku is a powerful C++17 RTTI free runtime reflection library based on Kodgen. It allows to retrieve information on namespaces, structs/classes, fields, methods, non-member variables, non-member functions, enums and enum values at runtime.

Features:

  • Easy to integrate in a software like a game engine
  • Reflect namespaces, structs, classes, methods, fields, variables, functions, enums and enum values
  • Support structs/classes with or without inheritance (multiple inheritance supported)
  • Can look for a struct/class, enum, field or method by name, with additional filtering parameters
  • Function/Method call with any arguments and any return type (public, protected, private, virtual, override)
  • Variable/Field get/set any data of any type (public, protected, private)
  • Know at runtime if an instance of a reflected struct/class inherits or is the base of another reflected struct/class
  • Arbitrary properties (like tags) on any entity
  • Reflection metadata is regenerated only when a file changes
  • Can instantiate any objects just from an archetype (which is obtainable by name or id), with arbitrary parameters
  • Know at compile-time if a struct/class is reflected or not (can be combined with if constexpr expression)

https://github.com/jsoysouvanh/Refureku

Tags
Implementation
License
Platform

   




Related Projects

ponder - C++ reflection library

  •    C++

V1 replaced Boost with C++11. V2 added Lua bindings. V3 refactored to remove some warts, ease future development, and re-add serialisation. API is evolving. Ponder is a C++ multi-purpose reflection library. It provides an abstraction for most of the high-level concepts of C++: classes, enumerations, functions, properties.

reflection - The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection API that comes with PHP

  •    PHP

The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.

magic_get - std::tuple like methods for user defined types without any macro or boilerplate code

  •    C++

This C++14 library is meant for accessing structure elements by index and providing other std::tuple like methods for user defined types without any macro or boilerplate code. Distributed under the Boost Software License, Version 1.0.

Dynamic Reflection Library

  •    DotNet

The Dynamic Reflection Library is a small set of classes designed to greatly speed the use of .Net reflection to call constructors, member methods, property setters and getters including those with indexing arguments such as the Item (a.k.a. [] operator), and fields. It includ...


better-enums - C++ compile-time enum to string, iteration, in a single header file.

  •    C++

Reflective compile-time enum library with clean syntax, in a single header file, and without dependencies. In C++11, everything can be used at compile time. You can convert your enums, loop over them, find their max, statically enforce conventions, and pass along the results as template arguments or to constexpr functions. All the reflection is available for your metaprogramming needs.

Fasterflect - .NET Reflection Made Fast and Simple

  •    CSharp

.NET library that improves your productivity and application performance when performing reflection operations. It allows you to perform metadata lookup and reflection invocation intuitively while achieving greater performance than the built-in .NET Reflection.

CPP-Reflection - C++ Reflection Parser / Runtime Skeleton

  •    C++

I am in the process of refactoring this codebase to be more of a professional solution to C++ reflection, with an emphasis on "bring your own pipeline". I am excited to start working with the community, so please don't hesitate to contribute to this project if it's something you're interested in.

ffead-cpp - Framework for Enterprise Application Development, c++ framework, c++ web framework, c++ application framework, c++ rest framework, c++ soap framework, c++ web sites,c++ web applications, c++ driven web development - c++

  •    C++

ffead-cpp is a web-framework, application framework, utilities all bundled into one. It also provides an embedded HTTP/HTT2/Web-Socket compliant high-performance server core. It is a collection of modules all geared towards performing individual roles which together form the cohesive back-bone of ffead-cpp. It provides a very simple to use and maintain web-framework library with advanced features like Reflection, Dependency Injection (IOC), Inbuilt REST/SOAP support, Security/Authentication features. Moreover implementation for interfacing to caching tools like Memcached/Redis are provided in-built. Database integration/ORM framework (SDORM) solves all major issues with respect to interfacing with SQL/No-SQL database alike.

SharpCut - High Performance & Strong Typed Reflection

  •    

Delivers easy to use, high performance and strong type reflection library in a less than 50K DLL file. Supports .Net 2.0 and above.

stag-java - Speedy Type Adapter Generation

  •    Java

Stag improves Gson performance by automatically generating reflection-less TypeAdapters for your model objects. Gson is the essential JSON parsing library. It greatly simplifies what can be the verbose and boilerplate-ridden process of parsing JSON into model objects. It does this by leveraging reflection. Unfortunately, using reflection can be slow (particularly on the Android OS).

AgileDesign Utilities Library

  •    

This library provides common functionality usable for most software projects: Logger - Asynchronous logging wrapper on top of new Microsoft logging class TraceSource with simplified API NameOf - Avoid using string names using static reflection Left(), Right() and No...

go-conv - Fast conversions across various Go types with a simple API.

  •    Go

Notice: If you begin getting compilation errors use the v1 import path gopkg.in/cstockton/go-conv.v1 for an immediate fix and to future-proof.Package conv provides fast and intuitive conversions across Go types. This library uses reflection to be robust but will bypass it for common conversions, for example string conversion to any type will never use reflection. All functions are safe for concurrent use by multiple Goroutines.

Runtime - A Swift Runtime library for viewing type info, and the dynamic getting and setting of properties

  •    Swift

Runtime is a Swift library to give you more runtime abilities, including getting type metadata, setting properties via reflection, and type construction for native swift objects. TypeInfo exposes metadata about native Swift structs, protocols, classes, tuples and enums. It captures the properties, generic types, inheritance levels, and more.

rttr - C++ Reflection Library

  •    C++

RTTR is released under the terms of the MIT license, so it is free to use in your free or commercial projects. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

nameof - Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum

  •    C++

Header-only C++17 library provides nameof macros and functions to simply obtain the name of a variable, type, function, macro, and enum. Nameof returns std::string_view. If argument does not have name, returns empty string.

BetterReflection - :crystal_ball: Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API

  •    PHP

Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API. Be sure to read more in the feature documentation.

Reflection - Advanced Swift reflection including dynamic construction of types.

  •    Swift

Reflection provides an API for advanced reflection at runtime including dynamic construction of types.If you need any help you can join our Slack and go to the #help channel. Or you can create a Github issue in our main repository. When stating your issue be sure to add enough details, specify what module is causing the problem and reproduction steps.

PHP-Token-Reflection

  •    PHP

Library emulating the PHP internal reflection using just the tokenized source code

NSubversion for NET applications

  •    CSharp

NSubversion for .NET is simple and useful library, which give application in runtime mode, information about SVN, CVS tags used in source code, by the reflection SvnIdAttribute. Basic example. It's developed in C#, require .NET 2.0.