thehardwarestore.ai

where AI agents shop for the right tools

── 98892 repos indexed ── | filtered by tag: reflection
google/go-cmp ★ 4677 241 APPLICATION

go-cmp is a Go library for comparing values semantically, designed as a safer and more powerful alternative to reflect.DeepEqual. It provides the `cmp.Equal` and `cmp.Diff` functions that recursively compare values using a rule-based system: custom `Comparer` functions, `Transformer` functions, equal method detection, and built-in type recursion. Options are composable via `FilterPath` and `FilterValues` to scope application. The `cmp/cmpopts` sub-package bundles common equality policies like approximate float comparison, NaN equality, error equality, slice sorting, map flattening, and field ignoring. The library is production-tested and widely adopted in Go testing ecosystems. Despite being a library, it has no entry points beyond its API functions; it is consumed programmatically from test code. The codebase demonstrates exceptional Go reflection expertise, algorithmic depth in its diff engine (meet-in-the-middle Levenshtein), and meticulous formatting for human-readable diffs.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
grpc/grpc-dotnet ★ 4485 834 APPLICATION

This repository is the official gRPC implementation for .NET (grpc-dotnet), providing a comprehensive set of libraries for building gRPC services and clients on ASP.NET Core. It includes server-side integration via `Grpc.AspNetCore.Server` with full support for unary, server-streaming, client-streaming, and duplex streaming calls, as well as client-side libraries (`Grpc.Net.Client`, `Grpc.Net.ClientFactory`) that leverage `HttpClient` and DI. The codebase also covers gRPC-Web (both server middleware and client handler), health checks, server reflection, load balancing, retry/hedging policies, compression, interceptors, and a CLI tool (`dotnet-grpc`) for managing protobuf references. The architecture is modular, with clear separation of concerns: core abstractions in `Grpc.Core.Api`, shared utilities in `Grpc.Net.Common`, and platform-specific implementations. Extensive unit and functional tests, performance benchmarks, and interop test assets ensure correctness and performance across .NET versions and platforms.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 8 reusable components found
SanderMertens/flecs ★ 8748 626 APPLICATION

Flecs is a high-performance Entity Component System (ECS) framework for games and simulations, written in C99 with a C++17 wrapper. It provides a data-oriented storage model where entities are stored in archetype tables with component columns, enabling cache-efficient iteration. The framework includes a powerful query language with support for relationships, inheritance, traversal, grouping, and sorting. It features an extensive addon system covering systems (pipelines), observers, prefabs, reflection/meta, JSON serialization, an embedded scripting language (Flecs Script) with async/await, a REST API with an HTTP server, statistics/metrics, alerts, and more. Flecs has zero external dependencies and is designed for lockless multi-core scheduling. It is used in commercial games and has a large ecosystem of examples and community bindings. Architecture: The library is modular with a core C API and optional addons compiled via preprocessor flags. The C++ API provides a fluent builder pattern for constructing entities, systems, queries, and observers. Key entry points include ecs_init/flecs::world for world creation, ecs_progress for running the game loop, ecs_insert for entity creation, ecs_system for defining systems, ecs_query for cached queries, and ecs_script for running Flecs Script files. Data flows involve creating entities with components, which are stored in tables; systems iterate over matching entities each frame; observers react to component changes; and the script engine allows runtime entity manipulation. External dependencies: None. Flecs is self-contained and uses only standard C library functions.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 7 reusable components found
reactiveui/refit ★ 9561 787 APPLICATION

Refit is a .NET library that automatically generates type-safe HTTP API clients from C# interfaces decorated with attributes like [Get], [Post], [Header], [Body], and [Query]. It operates via two parallel request-building paths: a Roslyn source generator that emits inline request construction at compile time (trim/AOT-safe), and a reflection-based fallback for unsupported shapes. The library integrates deeply with Microsoft.Extensions.DependencyInjection and IHttpClientFactory, providing extension methods like AddRefitClient<T> and AddKeyedRefitClient for managed HTTP client lifecycles. It supports multiple serializers (System.Text.Json, Newtonsoft.Json, XML), content compression (gzip, Brotli, Zstandard), streaming responses (IAsyncEnumerable, JSON Lines, SSE), multipart form data, and per-request timeouts and authorization via DelegatingHandler pipelines. The architecture is modular: the core Refit package provides attributes, serialization interfaces, and the runtime GeneratedRequestRunner; Refit.HttpClientFactory adds DI integration; Refit.Newtonsoft.Json and Refit.Xml provide alternative serializers; Refit.Reflection offers the runtime request builder; and Refit.Testing supplies StubHttp and Reply for unit testing without a live server. The source generator (InterfaceStubGeneratorV2) is an incremental generator that parses interfaces and emits partial classes into the consumer assembly, using value-equatable models (ImmutableEquatableArray) for caching. The reflection path caches parsed method metadata and builds requests via delegates, ensuring parity with generated code. Key entry points include RestService.For<T>() for creating clients, AddRefitClient<T>() for DI registration, and RefitSettings for central configuration. External dependencies are minimal: System.Text.Json (built-in), Microsoft.Extensions.Http, and optionally Newtonsoft.Json or System.Xml. The library is extensively tested with unit tests, integration tests, snapshot-based generator tests, and benchmarks measuring allocation and throughput. It targets .NET 8/9/10/11 and .NET Framework 4.6.2+, with polyfills for missing BCL types.

RATING: 9.3/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
o3de/o3de ★ 9750 2546 APPLICATION

The Open 3D Engine (O3DE) is a modular, open-source 3D game engine designed for developing AAA games, simulations, and interactive 3D content. It employs a component-based architecture with a core framework (AzCore, AzFramework, AzToolsFramework) and extensible gems for specialized functionality such as rendering (Atom), physics (PhysX), animation (EMotionFX), and UI (LyShine). The engine emphasizes data-driven design through reflection and serialization systems, and uses an event-driven communication pattern (EBus) for loose coupling between systems. Key architectural features include an entity-component-system (ECS) for game objects, a flexible asset processing pipeline that converts source assets into runtime-optimized formats, and a multi-platform rendering abstraction (RHI) supporting Vulkan, DirectX 12, and Metal. The engine provides extensive editor tools for content creation, including a scene editor, asset browser, and visual scripting system (ScriptCanvas). Cross-platform support is achieved through platform-specific trait files and abstraction layers, enabling deployment to Windows, Linux, macOS, Android, and iOS. The engine demonstrates strong engineering practices in its core systems: the EBus implementation offers a sophisticated, policy-based event bus; the reflection system enables serialization, behavior context binding, and editor integration; and the Interface pattern provides a flexible singleton mechanism. While the codebase shows signs of platform-specific duplication and some deprecated code, active maintenance and a clear modular structure help manage technical debt. O3DE is suitable for reuse in projects requiring a full-featured game engine or as a source of reusable patterns for engine development.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
dotnet/dotNext ★ 1962 159 APPLICATION

DotNext is a suite of high-performance .NET libraries providing low-level infrastructure for building distributed systems and high-load microservices. It includes advanced async synchronization primitives (e.g., AsyncLock, AsyncReaderWriterLock, ManualResetCompletionSource), zero-allocation buffer management (SparseBufferWriter, SpanOwner, MemoryOwner), metaprogramming via expression tree builders (async lambda, await, while, lock), and a full Raft consensus implementation with a persistent write-ahead log, leader election, log replication, snapshotting, and HyParView gossip-based peer discovery. The codebase demonstrates deep expertise in .NET runtime internals, lock-free algorithms, unsafe memory access, and IL weaving, with extensive unit tests and benchmarks. It is actively maintained and targets the latest .NET versions, though some components rely on preview language features and runtime internals that may require careful version alignment.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
phpDocumentor/ReflectionDocBlock ★ 9361 135 APPLICATION

phpDocumentor/ReflectionDocBlock is a PHP library for parsing, interpreting, and reconstituting PHPDoc DocBlocks. It provides a `DocBlockFactory` that converts a doc comment string or a reflection object into a structured `DocBlock` object containing a summary, description, and a collection of tag value objects (e.g., @param, @return, @var, @throws). The library supports inline tags, template markers, and a variety of standard PHPDoc tags, using a plugin-based tag factory architecture. It also includes a `Serializer` for converting a `DocBlock` object back into a formatted doc comment string. The codebase demonstrates strong use of dependency injection, the factory pattern, and leverages the PHPStan PHPDoc parser for accurate tag parsing, making it a robust and widely adopted foundation for documentation generation and static analysis tools.

RATING: 9.0/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
alibaba/java-dns-cache-manipulator ★ 967 192 APPLICATION

Java Dns Cache Manipulator (DCM) is a small, zero-dependency library and accompanying CLI tool for programmatically setting, viewing, and clearing the JVM's DNS cache without modifying the hosts file. It works by using reflection to access private fields of `java.net.InetAddress` and `sun.net.InetAddressCachePolicy`. The library handles both pre-JDK 9 (old `InetAddress.CacheEntry` model) and JDK 9+ (new `CachedAddresses`/`CachedLookup` model), making it compatible with JDK 8 through 26. The tool module uses the Java Attach API to inject a Java agent into a running JVM process to execute commands like get, set, remove, list, or clear DNS cache entries. The code is well-structured with clear separation between API, internal implementation, agent, and tool modules. It is thread-safe, immutable value objects (DnsCacheEntry, DnsCache) are used, and extensive Kotlin-based tests ensure correctness across multiple JDK versions.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 1 reusable components found
ezEngine/ezEngine ★ 2016 260 APPLICATION

This repository is a large, modular C++ game engine with a fully integrated editor. The engine core provides a world/component architecture, reflection-driven serialization, resource management, a task system, and a render abstraction layer with DirectX 11 and Vulkan backends. Runtime features are delivered as plugins: Jolt physics, FMOD/MiniAudio audio, RmlUi UI, particle effects, animation graphs, AI navigation, procedural generation, terrain, and OpenXR support. The editor is a Qt-based multi-process application: a host editor process communicates with a separate engine process over IPC, mirroring document objects into a live world for preview and manipulation. Asset managers turn imported files such as meshes, textures, skeletons, animation clips, sound events, and UI documents into versioned engine resources. Sample game applications and extensive unit tests demonstrate the runtime API and provide a working baseline for engine consumers. The codebase is production-oriented rather than research-oriented: there are no notebooks, data pipelines, or ML artifacts. Instead, it is an application and framework monorepo with strong engineering discipline visible in its consistent component/manager patterns, plugin registration conventions, and resource lifecycle management. The custom RTTI/reflection system underpins serialization, editor property grids, undo/redo, and scripting, making the engine highly data-driven. However, the code is macro-heavy and some areas, especially editor plugins, repeat near-identical boilerplate patterns across many asset types. The project is actively maintained, with recent commits, CI workflows, and a large third-party dependency set that is mostly bundled in-tree; some bundled libraries and platform-specific paths show moderate drift but not abandonment.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
go-kod/kod ★ 199 6 APPLICATION

This repository provides a generic-based dependency injection framework for Go, called 'kod' (Killer Of Dependency), along with a CLI tool for code generation, component registration, and dependency graph validation. It features a rich interceptor chain for cross-cutting concerns (retry, validation, tracing, rate limiting, circuit breakers, etc.), and includes a comprehensive test suite and examples. The codebase also incorporates an extensive set of AI agent skills for software development workflows (grilling, code review, TDD, domain modeling) from the mattpocock/skills ecosystem. The primary value is the DI framework that leverages Go generics to provide compile-time safety for component wiring, with generated boilerplate code. The architecture is modular with clear separation of core, interceptors, internal utilities, and tests. It is actively maintained with modern Go features.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
BepInEx/HarmonyX ★ 523 64 APPLICATION

HarmonyX is a runtime method patching library for .NET, forked from Harmony 2 and maintained by BepInEx. It allows modifying existing methods at runtime by injecting prefixes, postfixes, transpilers, finalizers, and IL manipulators. The library is primarily used in game modding, especially for Unity games via BepInEx, but can be used in any .NET application requiring runtime code transformation. The architecture centers on the Harmony class as the public API, which delegates to PatchProcessor and PatchClassProcessor for applying patches. Patches are defined via attributes or programmatically. The core patching backends are ManagedMethodPatcher (for methods with IL bodies) and NativeDetourMethodPatcher (for native/external methods). IL manipulation is handled by HarmonyManipulator, which uses MonoMod.Cil and Mono.Cecil to rewrite method bodies. The library also provides utilities like AccessTools (reflection helpers), Traverse (field/property traversal), CodeMatcher (IL pattern matching), and MethodInvoker (fast delegate invocation). Key data flows: A patch request specifies a target method and patch methods. The PatchManager resolves the appropriate patcher, which creates a detour or IL rewrite. For IL-based patching, the original method body is read via Mono.Cecil, converted to CodeInstruction objects, processed by transpilers and manipulators, and then written back using a custom IL emitter. The patched method then calls the original (or a copy) with the injected code. The library supports complex ordering via priority and before/after attributes, and handles edge cases like generics, value types, ref returns, and async methods. External dependencies include MonoMod.RuntimeDetour, MonoMod.Utils, and Mono.Cecil for IL manipulation. The library targets multiple .NET frameworks (net35, net452, netstandard2.0) and is distributed as a NuGet package (HarmonyX).

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
laminas/laminas-code ★ 1904 87 APPLICATION

Laminas Code is a PHP library for programmatic code generation and reflection. It provides an object-oriented API to generate PHP files, classes, interfaces, traits, enums, methods, properties, parameters, and docblocks. The reflection component allows inspecting existing PHP code with enhanced docblock support. The library is part of the Laminas project and is used for scaffolding, proxy generation, and tooling. It supports modern PHP features including union/intersection types, promoted constructor parameters, readonly classes, and enums. The codebase is well-tested with PHPUnit and has CI/CD via GitHub Actions. However, it carries some technical debt: many methods are deprecated (e.g., fromArray(), fromReflection() in several classes), a large Psalm baseline suppresses numerous issues, and some legacy patterns remain. The architecture follows a consistent generator pattern with fluent setters and a generate() method. Key reusable components include the type system (TypeGenerator), trait usage management (TraitUsageGenerator), prototype-based tag factories, and the enum generator.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
marijnz/unity-toolbar-extender ★ 1947 197 APPLICATION

This is a Unity Editor extension package that injects custom GUI into Unity's toolbar via reflection. The core library (ToolbarExtender.cs) exposes two static lists of Action delegates (LeftToolbarGUI and RightToolbarGUI) that users populate in InitializeOnLoad static constructors. The companion ToolbarCallback.cs handles the low-level reflection hooking, with version-specific code paths for Unity 2018 through Unity 6.3 (which uses UI Toolkit docks instead of IMGUI). Two example implementations demonstrate usage: a scene switcher with numbered buttons and a scene view focuser toggle that persists state via EditorPrefs. The architecture is minimal but effective; the library has no external dependencies beyond the Unity Editor API and is distributed as a UPM package. The code is well-structured for its niche, though it remains inherently fragile due to its reliance on Unity's internal API reflection.

RATING: 8.0/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
── end of results ──
$ submit: