/MySqlConnector

Async MySql.Data replacement for .NET Core

Primary LanguageC#MIT LicenseMIT

Async MySQL Connector for .NET and .NET Core

Build Status

Ubuntu 14.04 Windows x64
Travis CI AppVeyor

NuGet Pre Release

About

This is an ADO.NET data provider for MySQL. It provides implementations of DbConnection, DbCommand, DbDataReader, DbTransaction—the classes needed to query and update databases from managed code. It’s compatible with popular data access libraries such as Dapper.

This is a clean-room reimplementation of the MySQL Protocol and is not based on the official connector. It’s fully async, supporting the async ADO.NET methods added in .NET 4.5 without blocking (or using Task.Run to run synchronous methods on a background thread). It’s also 100% compatible with .NET Core.

Building

Install the latest .NET Core.

To build and run the tests, clone the repo and execute:

dotnet restore
dotnet test tests\MySqlConnector.Tests

To run the side-by-side tests, see the instructions.

Goals

The goals of this project are:

  1. .NET Core support: It must compile and run under .NET Core.
  2. Async: All operations must be truly asynchronous whenever possible.
  3. High performance: Avoid unnecessary allocations and copies when reading data.
  4. Lightweight: Only the core of ADO.NET is implemented, not EF or Designer types.
  5. Managed: Managed code only, no native code.

Cloning the full API of the official MySql.Data is not a goal of this project, although it will try not to be gratuitously incompatible. For common scenarios, this package should be a drop-in replacement.

License

This library is licensed under the MIT License.