9 repository-uri
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 este un instrument de tracing dinamic și profiler de performanță pentru JVM, utilizat pentru injectarea scripturilor de instrumentare sigure într-o mașină virtuală Java care rulează, fără a necesita repornirea procesului. Acesta funcționează ca un framework de agent Java și un server Model Context Protocol, expunând operațiunile de diagnosticare JVM și instrumentele de tracing către modelele de limbaj mari și asistenții AI. Proiectul se distinge prin activarea injectării de cod în timp real și a instrumentării la nivel de bytecode printr-un protocol binar securizat. Asigură stabilitatea în producție printr-un motor de analiză statică de siguranță care blochează modelele de cod instabile, cum ar fi buclele și alocările, în timpul fazei de compilare a scriptului. Sistemul acoperă o gamă largă de capabilități de observabilitate, inclusiv tracing-ul execuției metodelor, urmărirea alocării obiectelor și monitorizarea accesului la câmpuri. Oferă profilarea performanței prin metrici de latență și eșantionarea datelor de execuție și poate emite evenimente personalizate Java Flight Recorder pentru analiză nativă. Agentul suportă strategii de implementare flexibile, inclusiv bootstrapping la pornire sau atașarea la procese live în medii containerizate folosind pachete fat JAR.
Generates cached reflective dispatchers to minimize overhead when interacting with application classes.
Otto este un sistem de comunicare bazat pe evenimente, conceput ca un bus de evenimente pentru aplicațiile Android. Oferă un mecanism pentru a decupla componentele aplicației prin rutarea evenimentelor între ele fără a necesita dependențe directe. Sistemul este conștient de stare, ceea ce înseamnă că poate oferi cea mai recentă valoare cunoscută noilor abonați imediat după înregistrare. Acesta funcționează ca un dispatcher de evenimente sincron, asigurându-se că toți ascultătorii înregistrați răspund la un obiect înainte ca execuția să continue. Biblioteca include capabilități pentru gestionarea abonamentelor la evenimente și impunerea execuției pe thread-uri pentru a restricționa callback-urile la anumite thread-uri. Utilizează maparea abonaților bazată pe tip pentru a organiza ascultătorii în funcție de clasa evenimentelor pe care le primesc.
Uses Java reflection to identify and execute methods annotated as subscribers when events are published.
Fury este un framework de serializare binară multi-limbaj conceput pentru encodarea obiectelor de domeniu și a grafurilor complexe, pentru a facilita schimbul de date între limbaje. Include un compilator de limbaj de definire a interfețelor (IDL) care traduce definițiile de schemă în tipuri native idiomatice și boilerplate de serializare în mai multe limbaje. Proiectul se distinge printr-un cititor binar zero-copy care permite accesarea unor câmpuri specifice fără a deserializa întregul obiect, precum și un serializator de grafuri de obiecte care păstrează referințele circulare și integritatea referențială. De asemenea, dispune de un convertor de date care transformă datele binare bazate pe rânduri în formate coloanare Apache Arrow pentru sarcini analitice. Framework-ul acoperă domenii largi de capabilități, inclusiv evoluția schemei bazată pe metadate pentru compatibilitate înainte și înapoi, un proces de compilare AOT (Ahead-Of-Time) pentru a elimina reflexia la runtime și deserializarea securizată prin validarea tipurilor bazată pe whitelist. Oferă, de asemenea, integrare pentru apeluri de proceduri la distanță de înaltă performanță prin gRPC.
Reduces redundant type information by writing class metadata once per stream and using local index references.
Acest proiect este un ghid cuprinzător de programare pentru performanță și o referință pentru limbajul Go, concentrându-se pe eficiența runtime și optimizarea memoriei. Oferă o colecție de tipare și tehnici concepute pentru a crește viteza de execuție prin reducerea overhead-ului garbage collection-ului și optimizarea utilizării memoriei. Resursa se distinge prin implementări de referință detaliate pentru optimizarea memoriei, cum ar fi escape analysis, object pooling și alinierea memoriei structurilor. Oferă strategii specifice pentru reducerea dimensiunii binarului și îmbunătățirea eficienței cache-ului CPU prin optimizarea layout-ului memoriei structurilor și utilizarea placeholder-elor cu alocare zero. Proiectul acoperă o gamă largă de capabilități de inginerie backend, inclusiv gestionarea concurenței cu worker pools și primitive de sincronizare, RPC de înaltă performanță și rutare HTTP, precum și strategii de caching distribuit. Include, de asemenea, îndrumări privind observabilitatea prin profilarea CPU și a memoriei, precum și tipare de asigurare a calității pentru unit testing funcțional și generarea de obiecte mock. Conținutul este structurat ca o serie de tutoriale, exemple arhitecturale și ghiduri de benchmarking pentru a ajuta dezvoltatorii să analizeze și să remedieze blocajele de performanță.
Optimizes reflection performance by caching field name to index mappings to avoid repeated linear searches.