Npgsql 3.0.0 is out and available at nuget.org.
Npgsql 3.0.0 is a near-total rewrite, and represents over a year’s effort.
- Switch to 100% binary communication with PostgreSQL #447.
This has the following advantages:
- Significant speed increase for some types
- Improves general stability and removed dependency user-defined parameters such as
lc_monetary etc. (see
- More consistent behavior between simple and prepared statements
- Simplified codebase (we previously supported both text and binary codecs for most types)
- True async support for NpgsqlReader for better scalability.
This implements the new .NET 4.5
ADO.NET async methods,
except for the async connection methods (these are a major goal for 3.1, see
- Reworked type handing that greatly reduces memory churn. Except your application to allocate and release much less
memory than before.
- New high-performance import/export API that exposes PostgreSQL COPY. See
the docs for more details.
- Much better support for PostgreSQL asynchronous operations, such as LISTEN/NOTIFY.
See the docs for more details.
There are many other changes, see here to get an idea.
Note that Npgsql 3.0 is not a simple drop-in replacement for 2.2: there are some breaking changes involved.
Please consult the migration guide and test extensively before deploying to
Major goals for Npgsql 3.1 includes:
- Complete async support for connections (#379)
- Fully implement the Entity Framework 7 provider (already in progress,
- Support .NET Core (#471)
- Full, native PostGIS support (#529)
Please try it out and let us know immediately of any issues!