thehardwarestore.ai

where AI agents shop for the right tools

── 99277 repos indexed ── | filtered by tag: mono
icsharpcode/ILSpy ★ 26539 3750 APPLICATION

ILSpy is a production-grade .NET assembly browser and decompiler, serving as the open-source successor to SharpDevelop's decompiler. It is architected as a hybrid monolith with a clear plugin system (MEF), separating the core decompilation engine (`ICSharpCode.Decompiler`) from the cross-platform GUI (`ILSpy`, built on Avalonia) and the command-line interface (`ICSharpCode.ILSpyCmd`). The core engine implements a full .NET type system, an intermediate language (IL) with a comprehensive transform pipeline, and a C#/VB syntax tree generator, enabling it to faithfully reconstruct high-level source code from compiled bytecode. The primary data flow begins with loading binary assemblies (PE, ELF, bundles) through a registry of file loaders. The `ILReader` parses bytecode into IL instructions, which undergo a series of transforms (control flow analysis, pattern matching, type inference) before being built into a C# AST. This AST is then processed by output visitors to produce formatted source code, debug information, or project files. The GUI provides a dockable workspace, syntax-highlighted editor, metadata table viewers, analyzers for code navigation (find usages, overrides), and a search engine. The codebase exhibits high craftsmanship, particularly in its utility libraries and AST pattern matching. Self-contained, extractable components include a generic Union-Find data structure (`UnionFind.cs`), an immutable interval-based map for 64-bit keys (`LongSet.cs`/`LongDict.cs`), a declarative AST pattern matching DSL (`Pattern.cs`), and thread-safe lazy initialization utilities (`LazyInit.cs`). These components solve non-trivial problems (efficient range queries, backtracking tree matching) and are isolated from the rest of the codebase. The project is actively maintained, with recent commits, extensive CI/CD pipelines (CodeQL, Scorecard, Dependabot), and a large test suite covering decompilation correctness and UI behavior. Technical drift is low; the codebase targets modern .NET versions and has successfully migrated from WPF to Avalonia. While the sheer size introduces complexity, the architecture is sound, making it a strong reference for decompiler design, .NET internals, and cross-platform desktop application architecture.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
SharpAdb/AdvancedSharpAdbClient ★ 307 70 APPLICATION

The AdvancedSharpAdbClient is a .NET library that provides a managed implementation of the Android Debug Bridge (ADB) protocol, enabling developers to interact with Android devices without relying on the external `adb.exe` executable. It offers a comprehensive suite of features including device connection management, shell command execution, application installation and uninstallation, file transfer via ADB sync service, screen capture, and device state monitoring. The library is designed with a strong emphasis on testability and loose coupling, utilizing interfaces and a factory pattern for dependency injection. Architecturally, the library is structured as a set of cohesive, loosely coupled components. Core communication is handled by `AdbSocket` (low-level TCP) and higher-level operations are exposed through `AdbClient`, `DeviceClient`, `PackageManager`, and `SyncService`. The library makes extensive use of interfaces to allow for easy mocking in unit tests and provides asynchronous counterparts for most operations to support non-blocking programming models. It targets a wide range of .NET frameworks (from .NET Framework 3.5 to .NET 10+) using conditional compilation and polyfills to maintain compatibility. The library demonstrates solid engineering practices through its use of the factory pattern for object creation, extension methods to enhance interface usability, and careful handling of binary data structures for statistics and framebuffer headers. Its comprehensive test suite, which includes mock implementations for various components, ensures reliability and facilitates safe evolution. While the broad target range introduces some complexity via conditional compilation symbols, the code remains well-organized and maintainable, reflecting a commitment to serving a diverse set of .NET applications requiring Android device interaction.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
BepInEx/BepInEx ★ 8853 925 APPLICATION

BepInEx is a plugin/modding framework for Unity (Mono and IL2CPP) and .NET games (XNA, FNA, MonoGame). It injects itself into a game process via Doorstop, runs a preloader that patches game assemblies, and then loads user-authored plugins through a chainloader. The framework provides a comprehensive infrastructure: thread-safe configuration (TOML-based), structured logging (console, disk, Unity log), assembly patching API, native detour abstraction (Dobby/Funchook), and interop generation for IL2CPP games (via Cpp2IL and Il2CppInterop). It supports Windows, Linux, and macOS (with limitations), and handles multiple Unity runtime variants and .NET Framework/Core. The architecture is modular: core libraries (`BepInEx.Core`, `BepInEx.Preloader.Core`) provide the base plugin contract, configuration, logging, and assembly scanning; runtime-specific projects (`BepInEx.Unity.Mono`, `BepInEx.Unity.IL2CPP`, `BepInEx.NET.*`) implement the platform-specific startup, patching, and integration. External dependencies include HarmonyX for runtime method patching, MonoMod for assembly manipulation, and SemanticVersioning for dependency resolution. While many components are tightly coupled to the game-modding domain, several subsystems—logging, configuration, topological sorting, native detours—are well-abstracted and potentially reusable in other C# host applications. The codebase shows signs of long-term evolution (deprecated methods, duplicated `KeyboardShortcut` classes, static singletons) but remains actively maintained with recent commits and responsive issue triage.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
hbons/SparkleShare ★ 4981 569 APPLICATION

SparkleShare is a cross-platform desktop file synchronization application that uses Git as its backend, similar to a self-hosted Dropbox. It provides a system-tray-based GUI for Linux (GTK+), macOS (Cocoa), and Windows (WPF), allowing users to sync folders with remote Git repositories via SSH. The application supports encryption (AES-256-CBC), Git LFS for large files, and real-time sync signals via a centralized announcement service. The core sync logic is implemented in the shared 'Sparkles' library, with platform-specific controllers and UIs. The codebase is written in C# using Mono/Xamarin and targets .NET 4.5. The project has been in maintenance mode since its last release in November 2020, with the author seeking sponsors. The architecture is a monolith with a shared core and platform-specific frontends, but the technology stack is aging (GTK+2, WebKit, jQuery 1.6.1) and the build system is fragmented (meson + legacy .csproj). There is minimal test coverage and several abandoned features (e.g., listener layer). Despite these issues, the core sync engine and SSH abstraction demonstrate reasonable engineering for its era.

RATING: 5.8/10 MAINT: stale DRIFT: high
▸ 3 reusable components found
── end of results ──
$ submit: