Autofac is a mature, production-grade Inversion of Control (IoC) container for .NET, providing dependency injection (DI) capabilities. The core library manages object lifetimes, service resolution, and dependency graphs through a fluent registration API and a pipeline-based resolution engine. It supports a wide range of features including constructor and property injection, decorators, open generics, assembly scanning, metadata, keyed services, and advanced lifetime scopes (singleton, per-scope, per-dependency, per-owned). The architecture is built around extensible middleware phases (scope selection, decoration, sharing, activation) and registration sources that dynamically provide services. Autofac is designed for high performance and AOT/trimming compatibility, with extensive benchmarks and a dedicated AOT verification workflow. It is a library, not an application; it is consumed by other .NET projects to manage their dependency injection needs.
PowerShell 7 (pwsh) is a production-grade cross-platform automation and configuration shell: a scripting language runtime, command engine, and host application. The repository contains the core engine assembly (System.Management.Automation), console host, global tool shim, hundreds of built-in cmdlets, provider infrastructure, remoting, formatting/serialization, and a meta-package SDK for embedding PowerShell in .NET applications. In production it executes scripts and commands, pipelines objects through cmdlets and providers, formats results for console or serialized transport, and supports both local runspaces and remote sessions over WinRM/WSMan and SSH. The primary entry points are ConsoleShell.Start() for the interactive host, the GlobalToolShim for the dotnet tool distribution, and the PowerShell.Create() hosting API used by embedded scenarios.
This repository contains ASFFreeGames, a plugin for ArchiSteamFarm (ASF) that automatically collects free Steam games from Reddit and Redlib sources. The plugin monitors the ASFinfo Reddit user for posts containing "!addlicense asf" commands, extracts game identifiers from these posts, and uses ASF's addlicense command to claim those games for all logged-in bots. It operates on a configurable schedule (default 30 minutes) and can also be triggered manually via the "freegames" command. The architecture follows a plugin pattern with clear separation of concerns: core plugin logic handles ASF integration and scheduling, command processing manages user interactions, strategy objects encapsulate different data source approaches (Reddit vs Redlib), and specialized parsers handle the extraction of game information from HTML/JSON responses. The plugin maintains a persistent cache of already-claimed games to prevent duplicates and supports configuration options for filtering results (e.g., skipping free-to-play games or DLC). Notably, the project contains several high-quality, reusable utility components in the Maxisoft.Utils namespace. These include BitSpan (a high-performance bit array using span<long>), SpanDict (a dictionary implementation using spans with linear probing), OrderedDictionary (a dictionary that preserves insertion order), and RandomUtils (a Gaussian random number generator using the Box-Muller transform). These utilities demonstrate advanced .NET span usage and algorithmic implementation skills, with minimal dependencies making them suitable for extraction to other projects. The project is actively maintained with recent commits, comprehensive CI/CD workflows, and targets the latest .NET 9.0 framework. Dependencies appear current, and the codebase shows no significant technical debt or use of deprecated APIs. The plugin properly handles edge cases like rate limiting, network failures, and invalid responses while providing configurable logging options.
This repository provides a .NET library for performing high-performance bulk operations (insert, update, delete, merge, match) with Entity Framework Core and SQL Server. It extends DbContext with extension methods that leverage SqlBulkCopy and temporary tables to minimize database round-trips when processing large datasets. The library supports synchronous and asynchronous APIs, handles complex EF Core features (owned types, complex types, JSON properties, discriminators), and includes a fluent builder pattern for configuring operations. The architecture centers around extension methods for DbContext and a ConnectionContext abstraction for lower-level SQL operations. Key internal components include a property access cache for performance, sequential GUID generation for index-friendly keys, and a table mapping system to customize entity-to-table mappings. The library implements bulk operations by creating temporary tables, using SqlBulkCopy for efficient data loading, and then executing set-based SQL operations (INSERT, UPDATE, DELETE, MERGE) to synchronize with the target tables. Notable reusable components include the PropertiesCache, which compiles and caches property accessors to eliminate reflection overhead, and the SequentialGuidGenerator, which creates database-optimized GUIDs. The library is actively maintained, targets recent .NET versions, and includes a comprehensive test suite and benchmark projects validating performance improvements over standard EF Core operations.
This repository is a high-quality .NET library implementing the OpenBSD BCrypt password hashing algorithm. It serves as a security-critical dependency for authentication systems, providing robust password hashing, verification, and salt generation. The codebase is multi-targeted, supporting legacy .NET Framework versions (4.6.2+) alongside modern .NET standards (2.0/2.1) and recent runtimes (.NET 8.0, 10.0). It includes specialized extensions for ASP.NET Core Identity, allowing seamless integration into existing authentication pipelines without custom implementation. The architecture prioritizes security through constant-time comparisons, secure memory handling, and thread-safe key schedule management using ThreadLocal storage. The library includes extensive test vectors from the original Java reference implementation to ensure algorithmic correctness across different BCrypt revisions (2a, 2b, 2y, 2x). While the core library is production-ready and widely adopted, the repository exhibits some hygiene issues, including the presence of a signing key file in the root directory and a 'dists/' folder containing legacy binary artifacts, which suggests a mix of automated and manual release processes. For engineers evaluating reuse, this library offers a reliable, well-tested foundation for password security. The Identity extension component is particularly valuable for .NET developers needing to replace default password hashers. However, consumers should be aware of the technical drift regarding legacy framework support and the potential security implications of the repository's artifact management practices.
H5 is a C# to JavaScript/TypeScript transpiler that enables C# developers to target web platforms. The system consists of a compiler service (h5-compiler dotnet tool), a translator core that converts C# AST to JavaScript/TypeScript using visitor patterns and attribute-driven rules, and runtime libraries providing .NET-like functionality in JavaScript. Key features include SDK-style project integration, extensive globalization support through locale definitions, and support for JavaScript interop via attributes like [H5.External] and [H5.Template]. The toolchain processes C# source files through lexical analysis (using NRefactory), semantic analysis, translation to target language syntax, and emits JavaScript/TypeScript output with optional source maps and HTML wrappers.
The CachingFramework.Redis library is a .NET caching abstraction built on top of StackExchange.Redis. It provides a rich set of features including cache-aside patterns, tag-based invalidation, support for Redis data structures (strings, hashes, sets, sorted sets, bitmaps, HyperLogLog, geospatial), pub/sub, and key space notifications. The architecture centers around RedisContext as the main entry point, which provides access to modular features like Cache, Collections, GeoSpatial, PubSub, and KeyEvents. The library employs a provider pattern for encapsulating Redis operations and offers extensible serialization via an ISerializer interface with multiple implementations (binary, JSON, MessagePack, MemoryPack). It is designed for dependency injection and follows .NET best practices with async/await support and proper configuration management.
This repository is a comprehensive .NET SDK for integrating with the WeChat (Weixin) ecosystem, covering Official Accounts (MP), Enterprise WeChat (Work), Mini Programs (WxOpen), Open Platform, and WeChat Pay (TenPay V2/V3). It provides strongly-typed API wrappers for hundreds of WeChat endpoints, message/event handling with a rich class hierarchy, caching abstractions, and utilities for signature verification, encryption, and OAuth. The architecture is a modular monolith with separate packages per platform, sample MVC applications for .NET 4.5/8/10, and dependency injection support via registration modules. Key entry points include static API classes (e.g., `CommonJsonSend.Send<T>()`), message handler base classes, and container-based token management. The SDK also includes experimental components such as an MCP server for AI tool integration and a browser plugin for development assistance. The codebase demonstrates consistent patterns: base result classes with error code handling, container caching with capability flags, extension methods for payment notification decryption, and automatic access token refresh via `ApiHandlerWapper.TryCommonApi`. While the SDK is actively maintained and supports modern .NET versions, it carries some technical debt from legacy .NET 4.x support, duplicated DTOs across platforms, and incomplete test coverage that relies on live credentials. Overall, it is a functional and widely-used SDK (8900+ stars) with solid engineering practices but room for improvement in code consolidation and test automation.
AntMgr is an ASP.NET Core MVC admin management framework designed for rapid development of backend systems. It provides built-in user, role, menu, and permission management with button-level authorization, along with a CRUD code generator and a SQL query tool. The architecture follows a layered pattern: Web (mgr.core) -> ServicesModel -> ViewModels -> Repository -> Infrastructure, using Autofac for DI, AutoMapper for object mapping, and a custom ORM (AntData.ORM) supporting MySQL and SQL Server. The frontend relies on jQuery, Bootstrap 3, and Vue.js 1.0 with numerous third-party plugins for UI components. Key features include role-based access control with hierarchical roles and god-mode bypass, a code generation engine using DotLiquid templates that produces full CRUD modules (Controller, Repository, ViewModel, ServiceModel, View), Excel import/export via Npoi.Mapper, and an integrated SQL editor with field hints. The system emphasizes convention over configuration, allowing developers to quickly scaffold admin pages with minimal setup. While functionally complete and actively maintained (last commit 2026-03-16), the codebase carries significant technical debt from outdated frontend libraries (Vue 1.0, Bootstrap 3, numerous jQuery plugins from 2014-2016) and a custom ORM that may lack community support. The hardcoded god-mode users and direct SQL execution tool also pose security risks. The code generation engine and Excel helper are the most reusable components, demonstrating practical patterns for meta-programming and data I/O.