Awesome
📦 Awesome Nuget Packages
A collection of awesome and top .NET packages sorted by most popular needs.
Give a Star! ⭐️
If you liked this repository or find it useful, please give it a star. Thanks!
Contents
- Object Mapper
- IoC
- Task Scheduler/Background Job
- Serialization
- Database, Database Drivers, and Migration
- ORM
- NoSQL
- Messaging and Queue
- Http Client - REST
- Mail and SMTP Server
- Security
- CSV, Excel, Word, and PDF
- DateTime
- Linq
- Reflection and Expression
- Validation
- HtmlParser
- Profiler
- Caching
- Testing
- OpenAPI
- Logging
- Console
Libraries
<!-- 🟡 Recommended - 🟢 Good to know - 🟣 Other options / Possibilities -->Object Mapper
-
A convention-based object-object mapper in .NET
-
A .NET source generator for generating object mappings. No runtime reflection.
-
A fast, fun and stimulating object to object Mapper
IoC
-
Autofac is an IoC container for .NET. It manages the dependencies between classes so that applications stay easy to change as they grow in size and complexity.
Task Scheduler / Background Job
-
An easy way to perform background job processing in your .NET and .NET Core applications. No Windows Service or separate process required.
-
Quartz Enterprise Scheduler .NET
-
Near-zero config .NET Core micro-framework that makes advanced application features like Task Scheduling, Caching, Queuing, Event Broadcasting, and more a breeze!
Serialization
-
Json Serializer
-
Json .NET is a popular high-performance JSON framework for .NET
-
-
Binary Serializer
-
Extremely Fast MessagePack (MsgPack) Serializer for .NET
-
protobuf-net is a contract based serializer for .NET code, that happens to write data in the "protocol buffers" serialization format engineered by Google.
-
-
XML Serializer
-
Provides classes for serializing objects to the Extensible Markup Language (XML) and deserializing XML data to objects.
-
Database, Database Drivers, and Migration
-
Database
-
LiteDB is a small, fast and lightweight .NET NoSQL embedded database.
-
An ACID NoSQL Document Database.
-
-
Database Connector
-
Npgsql is the .NET data provider for PostgreSQL.
-
The official MongoDB C#/.NET Driver provides asynchronous interaction with MongoDB.
-
MySql.Data.MySqlClient .NET Core Class Library.
-
-
Database Migrations
-
Fluent Migrator is a migration framework for .NET much like Ruby on Rails Migrations.
-
ORM and Micro-ORM
-
ORM
-
Entity Framework 6 (EF6) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.
-
EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.
-
Linq to database provider.
-
-
Micro ORM
-
Dapper - a simple object mapper for .NET
-
Fast, Simple, Typed ORM for .NET
-
-
Entity Framework Core Extensions and Helpers
-
Entity Framework Core Bulk Batch Extensions for Insert Update Delete and Read (CRUD) operations on SQL Server and SQLite.
-
Entity Framework Plus extends your DbContext with must-haves features: Include Filter, Auditing, Caching, Query Future, Batch Delete, Batch Update, and more.
-
EF Core Second Level Cache Interceptor
Entity Framework Core Second Level Caching Library.
-
-
Entity Framework Core Providers
-
Microsoft.EntityFrameworkCore.SqlServer
Microsoft SQL Server database provider for Entity Framework Core.
-
Microsoft.EntityFrameworkCore.InMemory
In-memory database provider for Entity Framework Core (to be used for testing purposes).
-
MySql.Data.EntityFrameworkCore
MySql database provider for Entity Framework Core.
-
Npgsql.EntityFrameworkCore.PostgreSQL
Entity Framework Core provider for PostgreSQL.
-
-
Dapper Extensions and Helpers
-
The official collection of get, insert, update and delete helpers for Dapper.net. Also handles lists of entities and optional "dirty" tracking of interface-based entities.
-
The Dapper SqlBuilder component, for building SQL queries dynamically.
-
Simple API to fluently map POCO properties to database columns when using Dapper.
-
-
SQL Query Builder
-
SqlKata Query Builder is a powerful SQL Query Builder written in C#.
-
ExpressionExtensionSQL is a NuGet library which you can add to your project to achieve lambda expression in SQL code. Dapper Extension
-
NoSQL
-
Exposes all the Elasticsearch API endpoints but leaves you in control of building the request and response bodies.
-
High performance Redis client, incorporating both synchronous and asynchronous usage.
MongoDb
-
MongoDb Helpers/Repository
-
MongoDB for integration tests & local debugging
-
An example of generic repository implementation using the MongoDB C# Sharp 2.0 driver (async).
-
-
MongoDb Framework
-
An "Entity Framework"-like interface for MongoDB.
-
-
MongoDb Identity Integration
-
AspNetCore.Identity.MongoDbCore
A MongoDb UserStore and RoleStore adapter for Microsoft.AspNetCore.Identity 2.0. Allows you to use MongoDb instead of SQL server with Microsoft.AspNetCore.Identity 2.0.
-
-
MongoDb Migrations
-
MongoDbMigrations uses the official MongoDB C# Driver to migrate your documents in your mongo database via useful fluent API.
-
Messaging and Queue
-
Commands/Events Dispatcher
-
Message Bus
-
Confluent's Apache Kafka .NET client.
-
A .NET implementation of the Apache Kafka client side protocol geared toward performance (both throughput and memory wise). It is especially suited for scenarios where applications are streaming a large number of messages across a fair number of topics.
-
RabbitMQ .NET client
-
-
Service Bus
-
MassTransit is a free, open-source distributed application framework for .NET. MassTransit makes it easy to create applications and services that leverage message-based, loosely-coupled asynchronous communication for higher availability, reliability, and scalability.
-
MassTransit is a free, open-source distributed application framework for .NET. MassTransit makes it easy to create applications and services that leverage message-based, loosely-coupled asynchronous communication for higher availability, reliability, and scalability.
-
API and RPC
-
API Frameworks
-
ServiceStack is a simple and fast alternative to WCF, MVC and Web API in one cohesive framework for all your services and web apps that's intuitive and Easy to use!
-
Open Data Protocol - .NET Libraries and Frameworks
-
-
gRPC
-
A C# implementation of gRPC based on the native gRPC Core library.
-
-
GraphQL
-
The Hot Chocolate GraphQL query execution engine and query validation.
-
An implementation of Facebook's GraphQL in .NET.
-
-
WCF - SOAP
-
SOAP protocol middleware for ASP.NET Core.
-
Http Client / REST
-
The automatic type-safe REST library for Xamarin and .NET
-
Easy-to-use typesafe REST API client library, which is simple and customisable.
-
Simple REST and HTTP API Client for .NET
Mail and SMTP Server
-
Mail
-
MailKit is an Open Source cross-platform .NET mail-client library that is based on MimeKit and optimized for mobile devices.
-
-
Mail Service SDK
-
The Official Twilio SendGrid Led, Community Driven C#, .NET Standard, .NET Core API Library.
-
Easily build SendGrid SMTPAPI headers.
-
A Simple Fluent REST API Client.
-
-
SMTP Server and POP3
-
netDumbster is a .NET Fake SMTP Server clone of the popular Dumbster.
-
Security
-
Security Libraries
-
NWebsec consists of several security libraries for ASP.NET applications.
-
-
Authentication and Authorization
-
ASP.NET Core Identity is the membership system for building ASP.NET Core web applications, including membership, login, and user data. ASP.NET Core Identity allows you to add login features to your application and makes it easy to customize data about the logged in user.
-
IdentityServer is a free, open source OpenID Connect and OAuth 2.0 framework for ASP.NET Core.
-
-
Captcha
-
PaulMiami.AspNetCore.Mvc.Recaptcha
The reCAPTCHA 2.0 for ASPNET Core.
-
-
Password Valdiator/Generator
-
A library which generates random passwords with different settings to meet the OWASP requirements.
-
-
Cryptography
-
A library which generates random passwords with different settings to meet the OWASP requirements.
-
Compression
-
Zip Compression
-
#ziplib is a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform.
-
-
Compression Algorithms
-
The .NET implementation of the brotli algorithm, provides similar interface to Google official API.
-
CSV, Excel, Word, and PDF
-
CSV
-
Library to help reading and writing CSV files
-
-
Excel
-
Word
-
DocX is a .NET library that allows developers to manipulate Microsoft Word files, in an easy and intuitive manner. DocX is fast, lightweight and best of all it does not require Microsoft Word or Office to be installed.
-
a .NET library that can read/write Office formats without Microsoft Office installed. No COM+, no interop.
-
-
PDF
-
Reporting
-
FastReport provides free open source report generator for .NET 5/.NET Core/.NET Framework. You can use the FastReport Open Source in MVC, Web API, console applications.
-
PdfReport.Core is a code first reporting engine, which is built on top of the iTextSharp.LGPLv2.Core and EPPlus.Core libraries
-
-
Renderers
-
.NET Core P/Invoke wrapper for wkhtmltopdf library that uses Webkit engine to convert HTML pages to PDF.
-
-
Create, Edit and Extract
-
iText 7 allows you to build custom PDF scenarios for web, mobile, desktop or cloud apps in .NET.
-
-
DateTime
-
A better date and time API for .NET
-
This project is a merge of several common DateTime operations on the form of extensions to System.DateTime, including natural date difference text (precise and human rounded), holidays and working days calculations on several culture locales.
Linq
-
Extensions to LINQ to Objects.
Reflection and Expression
-
Reflection
-
In .NET reflection is slow... well, kinda slow. If you need access to the members of an arbitrary type, with the type and member-names known only at runtime - then it is frankly hard (especially for DLR types). This library makes such access easy and fast.
-
-
Expression
-
This is a .NET Standard / .NET Core port of the the Microsoft assembly for the .NET 4.0 Dynamic language functionality. EF Core Extension
-
-
Expression Builder
-
Castle.DynamicLinqQueryBuilder
A truly generic and dynamic linq query builder to compliment jQuery QueryBuilder and other dynamic linq query generation needs.
-
-
Expressions Interpreter/Evaluator
-
Evaluate, Compile and Execute C# code at runtime.
-
Validation
-
A popular .NET validation library for building strongly-typed validation rules.
HtmlParser
-
HAP is an HTML parser written in C# to read/write DOM and supports plain XPATH or XSLT.
-
The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications.
Profling, Tracing, and Metrics
-
Profiling/Monitoring
-
A simple but effective mini-profiler for ASP.NET (and Core) websites.
-
-
Tracing
-
.NET library to instrument your code with Prometheus metrics.
-
-
Metrics
-
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
-
Caching
-
InMemory
-
Microsoft.Extensions.Caching.Memory
In-memory cache implementation of Microsoft.Extensions.Caching.Memory.IMemoryCache.
-
-
Distributed
-
High performance Redis client, incorporating both synchronous and asynchronous usage.
-
ServiceStack Redis Client is a simple, high-performance and feature-rich Client for Redis with native support and high-level abstractions for serializing POCOs and Complex Types.
-
-
Caching Frameworks
-
CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.
-
FusionCache is an easy to use, high performance and robust cache with an optional distributed 2nd layer and some advanced features.
-
-
Second Level Cache
-
EF Core Second Level Cache Interceptor
Entity Framework Core Second Level Caching Library.
-
Testing
-
Test Frameworks
-
xUnit is a developer testing framework, built to support Test Driven Development, with a design goal of extreme simplicity and alignment with framework features.
-
NUnit is a unit-testing framework for all .NET languages.
-
MyTested.AspNetCore.Mvc is a strongly-typed unit testing library providing an easy fluent interface to test the ASP.NET Core framework, perfectly suitable for both MVC and API scenarios. It is testing framework agnostic so that you can combine it with a test runner of your choice (e.g. xUnit, NUnit, etc.).
-
-
Asserations
-
A very extensive set of extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests.
-
-
Mocking
-
The most popular and friendly mocking library for .NET
-
A .NET dynamic fake library for creating all types of fake objects, mocks, stubs etc.
-
A friendly substitute for .NET mocking libraries.
-
-
Fixture - Data Generator
-
AutoFixture makes it easier for developers to do Test-Driven Development by automating non-relevant Test Fixture Setup, allowing the Test Developer to focus on the essentials of each test case.
-
Through a fluent, extensible interface, NBuilder allows you to rapidly create test data, automatically assigning values to properties and public fields that are one of the built in .NET data types (e.g. ints and strings). NBuilder allows you to override for properties you are interested in using lambda expressions.
-
-
Helpers
-
Respawn is a small utility to help in resetting test databases to a clean state. Instead of deleting data at the end of a test or rolling back a transaction, Respawn resets the database back to a clean checkpoint by intelligently deleting data from tables.
-
-
HttpClient Mocking
-
MockHttp is a testing layer for Microsoft's HttpClient library. It allows stubbed responses to be configured for matched HTTP requests and can be used to test your application's service layer.
-
-
EF/Queryable Mocking
-
Effort is a powerful tool that enables a convenient way to create automated tests for Entity Framework based applications. Learn more
-
Moking Entity Framework Core operations such as ToListAsync, FirstOrDefaultAsync etc.
-
-
Temp Database
-
Tools for helping in unit testing applications that use Entity Framework Core.
-
MongoDB for integration tests (.NET Core)
-
-
Log Testing
-
The xunit test output sink for Serilog.
-
-
Snapshot Testing
-
Snapshooter is a flexible snapshot testing tool to simplify the result validation in your unit tests in .NET
-
-
BDD Testing
-
SpecFlow is a pragmatic BDD solution for .NET. It provides test automation for .NET (.NET Framework, .NET Core and Mono), based on the Gherkin specification language and integrates to Visual Studio.
-
-
UI Testing
-
Selenium is a set of different software tools each with a different approach to supporting browser automation. These tools are highly flexible, allowing many options for locating and manipulating elements within a browser, and one of its key features is the support for automating multiple browser platforms.
-
Headless Chrome .NET API
-
-
Code Coverage
-
Cross platform code coverage for .NET
-
Powerful code coverage visualization, ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.
-
-
XUnit Extensions\Helpers
-
Code Analyzers for projects using xUnit.net that help find and fix frequent issues when writing tests.
-
Friendlier attributes to help categorize your tests.
-
OpenAPI
-
Swagger tooling for API's built with ASP.NET Core. Generate beautiful API documentation, including a UI to explore and test operations, directly from your routes, controllers and models.
-
The OpenAPI/Swagger API toolchain for .NET and TypeScript.
Logging
-
Logging libraries
-
Serilog is a diagnostic logging library for .NET applications. It is easy to set up, has a clean API, and runs on all recent .NET platforms.
-
NLog is a free logging platform for .NET with rich log routing and management capabilities. It makes it easy to produce and manage high-quality logs for your application regardless of its size or complexity.
-
-
Logging Management
-
Open-source error tracking that helps developers monitor and fix crashes in real time.
-
Templating
-
Template Engine
-
.NET Port of Tobias Lütke's Liquid template language.
-
-
Razor Templating (Core)
-
Template engine based on Microsoft's Razor parsing engine for .NET Core.
-
-
Razor Templating MVC5
-
Open source templating engine based on Microsoft's Razor parsing engine.
-
Console
-
A library that makes it easier to create beautiful, cross platform, console applications.
Contribution
Contributions are always welcome! Feel free to open an issue or create a pull request.
License
To the extent possible under law, Mohammad Javad Ebrahimi has waived all copyright and related or neighboring rights to this work.