Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Core
  3. DryIoc

DryIoc

MITC#v5.4.3

A fast, small, and full-featured Inversion of Control container for .NET applications.

GitHubGitHub
1.1k stars126 forks0 contributors

What is DryIoc?

DryIoc is a fast, small, and full-featured Inversion of Control container for .NET. It manages dependency injection in applications by automating object creation, lifetime management, and service resolution. It solves the problem of tightly coupled code by promoting loose coupling and testability through dependency injection patterns.

Target Audience

.NET developers building applications that require efficient dependency management, particularly those working on performance-sensitive projects or needing advanced features like open generics, decorators, and complex object graphs.

Value Proposition

Developers choose DryIoc for its exceptional performance, minimal memory footprint, and comprehensive feature set. Its design emphasizes low-ceremony usage, extensibility, and reliability, making it a strong alternative to other .NET IoC containers.

Overview

DryIoc is fast, small, full-featured IoC Container for .NET

Use Cases

Best For

  • High-performance .NET applications where startup time and memory usage are critical
  • Projects requiring advanced dependency injection features like decorators and open generics
  • Applications needing thread-safe dependency resolution without locks
  • Replacing default Microsoft DI or Autofac in ASP.NET Core for better performance
  • Managing complex object graphs with nested scopes and conditional registrations
  • Xamarin iOS projects where System.Reflection.Emit is unavailable (using interpretation mode)

Not Ideal For

  • Projects requiring extensive third-party integrations and a large, active community for support
  • Teams using Xamarin iOS where the performance penalty of interpretation mode is unacceptable
  • Applications needing zero-configuration, out-of-the-box integration with ASP.NET Core's default DI container
  • Developers who prefer a convention-over-configuration approach with minimal manual setup

Pros & Cons

Pros

Benchmark-Leading Performance

DryIoc outperforms competitors like Autofac and Grace in benchmarks, with up to 27x faster hot-run and 5x faster cold-start times, and lower memory allocation, as shown in the README's detailed metrics.

Comprehensive Feature Set

It supports advanced DI patterns such as open generics, decorators, wrappers (e.g., Lazy, Func, collections), and conditional registrations, enabling management of complex object graphs.

High Reliability and Safety

With over 2000 test cases, thread-safe lock-free operations, and built-in cycle detection, DryIoc ensures robust error handling and stable service resolution in multi-threaded environments.

Cross-Platform Flexibility

It targets multiple .NET versions from Framework 4.5 to .NET 9 and offers interpretation mode for platforms like Xamarin iOS where System.Reflection.Emit is unavailable, ensuring broad compatibility.

Cons

Limited Ecosystem and Documentation

The documentation is auto-generated via CsToMd, which can be less user-friendly, and the community size is smaller than giants like Autofac, potentially hindering troubleshooting and third-party extensions.

Performance Trade-off on iOS

On Xamarin iOS, DryIoc must use interpretation instead of expression compilation due to platform limitations, leading to slower resolution times compared to other supported platforms.

Integration Overhead

Seamless use with ASP.NET Core requires separate adapter packages like DryIoc.MsDI, adding setup steps and complexity versus the built-in Microsoft DI container.

Open Source Alternative To

DryIoc is an open-source alternative to the following products:

L
Lamar

Lamar is a fast, lightweight, and extensible .NET IoC (Inversion of Control) container and service locator.

M
Microsoft.Extensions.DependencyInjection
G
Grace

Grace is a graceful restart library for Go HTTP servers, enabling zero-downtime deployments.

A
Autofac

Autofac is an open-source dependency injection (DI) container for .NET applications. It manages class dependencies and provides inversion of control to help build loosely coupled and maintainable software.

Frequently Asked Questions

Quick Stats

Stars1,125
Forks126
Contributors0
Open Issues40
Last commit19 days ago
CreatedSince 2018

Tags

#xamarin#dependency-injection#decorators#nuget-package#netstandard#dotnet#thread-safe#inversion-of-control#prism#netcore#ioc-container#performance

Built With

.
.NET

Included in

.NET21.2kCore21.2kXamarin1.9k
Auto-fetched 2 hours ago

Related Projects

Microsoft.Extensions.DependencyInjectionMicrosoft.Extensions.DependencyInjection

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

Stars17,858
Forks5,426
Last commit9 hours ago
AutofacAutofac

An addictive .NET IoC container

Stars4,645
Forks843
Last commit4 days ago
ScrutorScrutor

Assembly scanning and decoration extensions for Microsoft.Extensions.DependencyInjection

Stars4,282
Forks279
Last commit3 months ago
NinjectNinject

the ninja of .net dependency injectors

Stars2,678
Forks522
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub