For reflection, the strongest matches are qlibs/reflect (This repository is a C++20 static reflection library that), austinbrunkhorst/cpp-reflection (This C++ reflection parser and runtime skeleton provides type) and fatih/structs (This library provides runtime type inspection, metadata extraction, and). schmittjoh/metadata and charlinfeng/reflect round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best Java reflection libraries ranked by stars and activity. Compare top open-source tools and pick the right one for your project.
C++20 Static Reflection library
This repository is a C++20 static reflection library that provides runtime type inspection and metadata discovery features, fitting the requested category well despite its compile-time foundation.
C++ Reflection Parser / Runtime Skeleton
This C++ reflection parser and runtime skeleton provides type inspection and metadata discovery features, fitting the search for a reflection utility despite its narrow scope.
Structs is a reflection utility and type inspection framework for Go. It provides tools for inspecting, converting, and validating data structures by extracting field names, tags, and values from Go objects. The library specializes in transforming Go structs into generic maps or slices for serialization and data manipulation. It utilizes tag-driven mapping to determine custom keys and exclusion rules during these transformations. The project covers broader capabilities including metadata extraction, type validation to verify if variables are structs or pointers, and initialization verificati
This library provides runtime type inspection, metadata extraction, and struct manipulation for Go, serving as a specialised utility for examining object fields and tags despite lacking dynamic method invocation.
Metadata is a PHP library for loading and managing class, method, and property metadata from inline annotations, YAML, XML, and PHP configuration files. It acts as an object-relational mapping support tool, helping persistence layers and serializers inspect PHP object structures through unified metadata drivers. The library parses configuration data using specialized drivers to populate internal metadata structures, abstracting disparate data sources into a single consistent interface for inspecting classes and properties. It supports chain-based driver fallback, allowing multiple metadata lo
This repository provides a dedicated metadata management library for PHP that handles annotation parsing and structure inspection, which aligns well with the search for a runtime reflection tool.
Reflection, Dict2Model, Model2Dict, Archive
This Swift library provides runtime type inspection and dictionary conversion utilities, fulfilling the need for metadata discovery and type reflection in an environment with limited native capabilities.
Small, flexible, single-header library for aggregate (struct / class) runtime reflection and meta data using C++11 features. Minimal STL usage, no other dependencies.
This C++ library provides lightweight runtime reflection and metadata parsing for aggregate types using C++11 features, fulfilling the core runtime type inspection requirement even though it lacks dynamic method invocation.
Reflections is a Java classpath scanning library and metadata indexer designed to locate classes, methods, and resources at runtime. It functions as a tool for annotation discovery and type hierarchy analysis, allowing the system to identify elements marked with specific annotations or to resolve super-types and subtypes within the Java virtual machine. The project distinguishes itself through metadata serialization, providing mechanisms to save the scanned index to persistent files or source code. This capability reduces application startup overhead by eliminating the need for repeated, expe
Reflections is a Java classpath scanning and metadata indexing library that provides runtime type inspection and annotation discovery, though it focuses on scanning rather than general-purpose dynamic method invocation or code execution.
mapstructure is a reflection-based library for the bidirectional encoding and decoding of generic map data into native typed Go structures. It functions as a tool for transforming loosely typed map values into specific structs and encoding those structs back into maps. The library utilizes Go reflection to map generic data keys to struct fields during runtime. It supports the transformation of untyped data from dynamic sources or configuration files into type-safe native structures. The mapping process includes recursive traversal of nested maps and slices, as well as the use of struct tags
This library provides reflection-based metadata discovery and struct field mapping for Go, letting you inspect and decode dynamic maps into typed structures at runtime.
NOTE: Now that both Decorators and Decorator Metadata have achieved Stage 3 within TC39, the API proposed below is no longer being considered for standardization. However, this package will continue to support projects that leverage TypeScript's legacy --experimentalDecorators option as some…
This library provides runtime metadata reflection and annotation parsing for TypeScript decorators, serving as the standard utility for metadata discovery despite native specification changes.
Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging runtime reflection, the library dynamically inspects object structures to resolve and populate required dependencies, decoupling component initialization from business logic. The framework manages object lifecycles through both singleton and factory-based provisioning. It maintains a central registry to share singletons across an application for consistent state, while also supporting the creation of unique, private instances to isolate state between different components. To
Inject is a dependency injection framework for Go that relies on runtime reflection to inspect object structures and automate wiring, though its focus is strictly dependency resolution rather than general-purpose type inspection.
:crystal_ball: Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API.
Better Reflection is a powerful PHP reflection API that expands significantly on the language's native capabilities for runtime type inspection and code analysis, though it focuses on code structure rather than zero-allocation performance.
| Repository | Stele | Limbaj | Licență | Ultimul push |
|---|---|---|---|---|
| qlibs/reflect | 518 | C++ | — | |
| austinbrunkhorst/cpp-reflection | 703 | C++ | MIT | |
| fatih/structs | 3.9K | Go | MIT | |
| schmittjoh/metadata | 1.8K | PHP | MIT | |
| charlinfeng/reflect | 305 | Swift | MIT | |
| stevinz/reflect | 5 | C++ | MIT | |
| ronmamo/reflections | 4.8K | Java | WTFPL | |
| mitchellh/mapstructure | 8K | Go | MIT | |
| rbuckton/reflect-metadata | 3.4K | TypeScript | Apache-2.0 | |
| facebookarchive/inject | 1.4K | Go | MIT |