9 Repos
Utilities that allow programs to inspect and manipulate data structures or types at runtime.
Distinguishing note: Focuses on runtime inspection of binary data without compile-time schema knowledge.
Explore 9 awesome GitHub repositories matching software engineering & architecture · Reflection Frameworks. Refine with filters or upvote what's useful.
FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation. The project distinguishes itself through a schema-driven approach that balances high-performance access with long-term data evolution. It utilizes a unique memory layout featuring relative offsets and inline fixed-size structu
FlatBuffers allows C++ developers to navigate and modify binary data at runtime without prior schema knowledge by loading binary definitions and using reflection functions.
LibGDX is a Java-based framework designed for cross-platform game development, enabling the creation and deployment of 2D and 3D games across desktop, mobile, and web environments from a single codebase. It functions as a comprehensive library that abstracts hardware-accelerated graphics, audio, input, and file system access, providing a unified interface for developers to manage game logic and application lifecycles. The framework distinguishes itself through a high-performance architecture that prioritizes efficiency and native interoperability. It utilizes a batch-oriented graphics pipelin
Supports dynamic inspection in restricted environments by generating static class information caches during compilation.
Cheat Engine is a software reverse engineering suite and memory editor designed for the Windows environment. It functions as a comprehensive platform for inspecting, analyzing, and modifying the internal logic and data structures of running applications. The tool provides capabilities for real-time memory scanning and manipulation, allowing users to locate and alter specific values within a process's address space. It distinguishes itself through advanced debugging features, including hardware-assisted debugging, kernel-mode driver injection for bypassing memory protections, and dynamic binar
Parses internal framework structures to reconstruct object hierarchies and method signatures for managed applications.
This project is a high-performance JSON library for Go, serving as a replacement for the standard encoding/json package. It provides a serialization engine for encoding and decoding data structures, alongside a schemaless parser for extracting specific values from JSON blobs using paths. The library distinguishes itself through a focus on reducing CPU and memory overhead. It implements a high-performance encoder that utilizes buffer reuse and reduced float precision to increase data throughput. Broad capability areas include data serialization, high-performance JSON processing, and schema-le
Analyzes Go struct types at runtime to build cached metadata for faster serialization and deserialization.
Mockery is a PHP framework designed for creating test doubles, stubs, and spies to facilitate isolated unit testing. It serves as a utility for simulating class behavior, intercepting method calls, and validating arguments, allowing developers to replace real dependencies with mock objects to verify that code components interact as intended. The framework distinguishes itself through advanced capabilities for handling complex testing scenarios, such as bypassing constructors, mocking protected methods, and intercepting static calls or internal object instantiations. It provides a fluent inter
Allows toggling internal metadata storage to resolve compatibility issues with static analysis or backup tools.
btrace ist ein JVM-Tool für dynamisches Tracing und Performance-Profiling, das zum Injizieren sicherer Instrumentierungsskripte in eine laufende Java Virtual Machine verwendet wird, ohne dass ein Prozessneustart erforderlich ist. Es fungiert als Java-Agent-Framework und als Model Context Protocol-Server, der JVM-Diagnoseoperationen und Tracing-Tools für Large Language Models und KI-Assistenten bereitstellt. Das Projekt zeichnet sich durch die Ermöglichung von Echtzeit-Code-Injektion und Bytecode-Level-Instrumentierung über ein sicheres binäres Protokoll aus. Es stellt die Produktionsstabilität durch eine statische Sicherheitsanalyse-Engine sicher, die instabile Codemuster, wie Schleifen und Allokationen, während der Skript-Kompilierungsphase blockiert. Das System deckt ein breites Spektrum an Observability-Funktionen ab, einschließlich Methoden-Ausführungs-Tracing, Objekt-Allokations-Tracking und Field-Access-Monitoring. Es bietet Performance-Profiling durch Latenzmetriken und Ausführungsdaten-Sampling und kann benutzerdefinierte Java Flight Recorder-Events für native Analysen ausgeben. Der Agent unterstützt flexible Bereitstellungsstrategien, einschließlich Bootstrapping beim Start oder das Anhängen an Live-Prozesse in containerisierten Umgebungen mittels Fat-JAR-Bundles.
Generates cached reflective dispatchers to minimize overhead when interacting with application classes.
Otto ist ein ereignisgesteuertes Kommunikationssystem, das als Event-Bus für Android-Anwendungen konzipiert ist. Es bietet einen Mechanismus zur Entkopplung von Anwendungskomponenten durch das Routing von Ereignissen zwischen ihnen, ohne dass direkte Abhängigkeiten erforderlich sind. Das System ist zustandsbewusst, was bedeutet, dass es neuen Abonnenten unmittelbar nach der Registrierung den zuletzt bekannten Wert bereitstellen kann. Es arbeitet als synchroner Event-Dispatcher und stellt sicher, dass alle registrierten Listener auf ein Objekt reagieren, bevor die Ausführung fortgesetzt wird. Die Bibliothek umfasst Funktionen für das Management von Event-Abonnements und die Durchsetzung der Thread-Ausführung, um Callbacks auf spezifische Threads zu beschränken. Sie nutzt typbasiertes Subscriber-Mapping, um Listener gemäß der Klasse der Ereignisse zu organisieren, die sie empfangen.
Uses Java reflection to identify and execute methods annotated as subscribers when events are published.
Fury ist ein sprachübergreifendes Framework für binäre Serialisierung, das für die Kodierung von Domänenobjekten und komplexen Graphen entwickelt wurde, um den Datenaustausch zwischen verschiedenen Sprachen zu erleichtern. Es enthält einen Compiler für eine Interface Definition Language (IDL), der Schemadefinitionen in idiomatische native Typen und Serialisierungs-Boilerplate über mehrere Sprachen hinweg übersetzt. Das Projekt zeichnet sich durch einen Zero-Copy-Binär-Reader aus, der den Zugriff auf spezifische Felder ermöglicht, ohne das gesamte Objekt zu deserialisieren, sowie durch einen Objekt-Graph-Serializer, der zirkuläre Referenzen und referenzielle Integrität bewahrt. Es enthält zudem einen Datenkonverter, der zeilenbasierte Binärdaten für analytische Workloads in spaltenbasierte Apache-Arrow-Formate transformiert. Das Framework deckt breite Funktionsbereiche ab, einschließlich metadatengesteuerter Schema-Evolution für Vorwärts- und Rückwärtskompatibilität, einen AOT-Kompilierungsprozess zur Eliminierung von Laufzeit-Reflektion und sichere Deserialisierung durch Whitelist-basierte Typvalidierung. Es bietet zudem Integration für hochperformante Remote Procedure Calls via gRPC.
Reduces redundant type information by writing class metadata once per stream and using local index references.
Dieses Projekt ist ein umfassender Leitfaden und eine Referenz für Performance-Programmierung in Go, mit Fokus auf Laufzeiteffizienz und Speicheroptimierung. Es bietet eine Sammlung von Patterns und Techniken, die darauf ausgelegt sind, die Ausführungsgeschwindigkeit durch Reduzierung des Garbage-Collection-Overheads und Optimierung der Speichernutzung zu steigern. Die Ressource zeichnet sich durch detaillierte Referenzimplementierungen zur Speicheroptimierung aus, wie etwa Escape-Analyse, Object Pooling und Structure Memory Alignment. Sie bietet spezifische Strategien zur Reduzierung der Binärgröße und zur Verbesserung der CPU-Cache-Effizienz durch Optimierung des Speicherlayouts von Strukturen und die Verwendung von Zero-Allocation-Platzhaltern. Das Projekt deckt ein breites Spektrum an Backend-Engineering-Fähigkeiten ab, einschließlich Concurrency-Management mit Worker Pools und Synchronisations-Primitiven, High-Performance-RPC und HTTP-Routing sowie Strategien für verteiltes Caching. Es enthält zudem Anleitungen zur Observability durch CPU- und Memory-Profiling sowie Quality-Assurance-Patterns für funktionale Unit-Tests und die Generierung von Mock-Objekten. Der Inhalt ist als Serie von Tutorials, Architekturbeispielen und Benchmarking-Leitfäden strukturiert, um Entwicklern bei der Analyse und Behebung von Performance-Engpässen zu helfen.
Optimizes reflection performance by caching field name to index mappings to avoid repeated linear searches.