DubUrl.Extensions.DependencyInjection 0.1.214

There is a newer version of this package available.
See the version list below for details.
dotnet add package DubUrl.Extensions.DependencyInjection --version 0.1.214
                    
NuGet\Install-Package DubUrl.Extensions.DependencyInjection -Version 0.1.214
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DubUrl.Extensions.DependencyInjection" Version="0.1.214" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DubUrl.Extensions.DependencyInjection" Version="0.1.214" />
                    
Directory.Packages.props
<PackageReference Include="DubUrl.Extensions.DependencyInjection" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DubUrl.Extensions.DependencyInjection --version 0.1.214
                    
#r "nuget: DubUrl.Extensions.DependencyInjection, 0.1.214"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DubUrl.Extensions.DependencyInjection@0.1.214
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DubUrl.Extensions.DependencyInjection&version=0.1.214
                    
Install as a Cake Addin
#tool nuget:?package=DubUrl.Extensions.DependencyInjection&version=0.1.214
                    
Install as a Cake Tool

DubUrl

DubUrl provides a standard, URL style mechanism for parsing database connection strings and opening DbConnections for .NET. With DubUrl, you can parse and open URLs for popular databases such as Microsoft SQL Server, PostgreSQL, MySQL, SQLite3, Oracle Database and most of the other SQL databases. This project is inspired from the package dburl available in the GoLang ecosystem and is trying to match the aliases for portocols.

About | Overview | Quickstart | Examples | Schemes | Installing | Using

About

Social media: website twitter badge

Releases: nuget licence badge

Dev. activity: GitHub last commit Still maintained GitHub commit activity

Continuous integration builds: Build status Tests CodeFactor codecov FOSSA Status

Status: stars badge Bugs badge Top language

Mappers for ADO.Net Provider implemented badge Mappers for ODBC drivers implemented badge Mappers for OLE DB providers implemented badge

Upcoming features badge Upcoming databases badge Upcoming ADO.Net badge Upcoming ODBC badge

Database Connection URL Overview

Supported database connection URLs are of the form:

driver:alias://user:pass@host/dbname?opt1=a&opt2=b

Where:

Component Description
alias database type (see below)
driver driver/provider name (only for odbc/oleodbc)
user username
pass password
host host
dbname<sup>*</sup> database, instance, or service name/ID to connect to
?opt1=... additional database driver options (see respective SQL driver for available options)

<i><sup><b>*</b></sup> for Microsoft SQL Server, /dbname can be /instance/dbname, where /instance is optional. For Oracle Database, /dbname is of the form /service/dbname where /service is the service name or SID, and /dbname is optional. Please see below for examples.</i>

Quickstart

Database connection URLs in the above format can be parsed to a standard connection string with the [Parse] as such:

string connectionUrl = "mssql://{server}/{database_name}";
string connectionString = new ConnectionUrl(connectionUrl).Parse();

Additionally, a simple helper, [Open], is provided that will parse, open, and return a standard DbConnection.

string connectionUrl = "mssql://{server}/{database_name}";
IDbConnection connection = new ConnectionUrl(connectionUrl).Open();

If you don't want to open the connection but only return it and manage its state by yourself, use the function [Connect]

string connectionUrl = "mssql://{server}/{database_name}";
IDbConnection connection = new ConnectionUrl(connectionUrl).Connect();

Example URLs

The following are example database connection URLs that can be handled by [Parse], [Connect] and [Open]:

mssql://user:pass@remote-host.com/instance/dbname?keepAlive=10
oledb+mssql://user:pass@localhost/dbname

postgres://user:pass@localhost/dbname
odbc+postgres://user:pass@localhost:port/dbname?option1=

mysql://user:pass@localhost/dbname
oracle://user:pass@somehost.com/sid
db2://user:pass@localhost/dbname

Protocol Schemes and Aliases

ADO.Net data providers

The following databases and their associated schemes are supported out of the box:

Database Aliases Provider Invariant Name
Microsoft SQL Server mssql, ms, sqlserver Microsoft.Data.SqlClient
MySQL mysql, my MySqlConnector
PostgreSQL pg, pgsql, postgres, postgresql Npgsql
IBM DB2 db2 IBM.Data.Db2
MariaDB maria, mariadb MySqlConnector
Oracle Database oracle, or, ora Oracle.ManagedDataAccess
DuckDB duck, duckdb DuckDB.NET.Data
Firebird SQL fb, firebird FirebirdSql.Data.FirebirdClient
SQLite3 sq, sqlite Microsoft.Data.Sqlite
CockRoachDB cr, cockroach, cockroachdb, crdb, cdb Npgsql
Snowflake sf, snowflake Snowflake.Data
Teradata td, teradata, tera Teradata.Client
Trino tr, trino NReco.PrestoAdo
QuestDb quest, questdb Npgsql
Timescale ts, timescale Npgsql

ODBC driver locators

The following databases and their associated schemes are supported out of the box:

Database Aliases Name Pattern
Microsoft SQL Server mssql, ms, sqlserver ^\bODBC Driver\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s\bfor SQL Server$
MySQL mysql, my ^\bMySQL ODBC\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s(ANSI|Unicode)\s\bDriver$
PostgreSQL pg, pgsql, postgres, postgresql ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$
MariaDB maria, mariadb ^\bMariaDB ODBC\s([0-9]{1,2}(?:.[0-9]{1,2}){0,2})\s\bDriver$
DuckDB duck, duckdb ^\bDuckDB\s\bDriver$
Apache Drill drill ^\bMapR Drill ODBC Driver$
Trino tr, trino ^(Simba)\s\bTrino ODBC Driver$
Microsoft Excel xls, xlsx, xlsb, xlsm ^\bMicrosoft Excel Driver\s(*.xls, *.xlsx, *.xlsm, *.xlsb)$
Text files txt, csv, tsv ^\bMicrosoft Access Text Driver\s(*.txt, *.csv)$
QuestDb quest, questdb ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$
Timescale ts, timescale ^\bPostgreSQL\s(ANSI|Unicode)((x64))?$

OLEDB provider locators

The following databases and their associated schemes are supported out of the box:

Database Aliases Name Pattern
Microsoft SQL Server mssql, ms, sqlserver ^\bMSOLEDBSQL$
MySQL mysql, my ^\bMySQL Provider$
Microsoft Excel xls ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$
Microsoft Excel xlsx ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$
Microsoft Excel xlsm ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$
Microsoft Excel xlsb ^\bMicrosoft.ACE.OLEDB.([0-9]{1,2}(?:.[0-9]{1,2}){0,2})$

Installing

Install in the usual .NET fashion:

Install-Package DubUrl

Using

Check the first steps guide on the website.

Please note that DubUrl does not install actual drivers, and only provides a standard way to [Parse] respective database connection URLs then [Connect] or [Open] connections.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.14 397 11/16/2023 0.4.14 is deprecated because it is no longer maintained.
0.4.6 187 11/16/2023
0.4.5 181 11/13/2023
0.4.4 211 11/13/2023
0.4.3 183 11/12/2023
0.4.2 186 11/12/2023
0.4.1 203 11/7/2023
0.4.0 208 11/6/2023
0.3.3 196 11/6/2023
0.3.2 190 11/6/2023
0.3.1 195 11/6/2023
0.3.0 203 10/30/2023
0.2.13 198 10/30/2023
0.2.12 201 10/30/2023
0.2.11 210 10/30/2023
0.2.10 212 10/23/2023
0.2.9 214 10/23/2023
0.2.8 203 10/16/2023
0.2.7 214 10/16/2023
0.2.6 211 10/9/2023
0.2.5 208 10/9/2023
0.2.4 223 10/9/2023
0.2.3 225 10/2/2023
0.2.0 234 9/30/2023
0.1.233 279 9/21/2023
0.1.231 239 9/19/2023
0.1.230 206 9/18/2023
0.1.228 208 9/18/2023
0.1.227 256 9/15/2023
0.1.226 199 9/14/2023
0.1.225 222 9/12/2023
0.1.224 253 9/10/2023
0.1.223 247 9/10/2023
0.1.222 217 9/9/2023
0.1.219 250 9/8/2023
0.1.218 244 9/7/2023
0.1.217 216 9/6/2023
0.1.216 265 8/28/2023
0.1.215 240 8/28/2023
0.1.214 228 8/23/2023
0.1.213 224 8/23/2023
0.1.212 251 8/15/2023
0.1.211 220 8/14/2023
0.1.210 210 8/12/2023
0.1.209 303 8/8/2023
0.1.208 268 8/1/2023
0.1.207 269 7/31/2023
0.1.206 252 7/31/2023
0.1.205 250 7/31/2023
0.1.204 259 7/30/2023
0.1.203 260 7/30/2023
0.1.202 241 7/30/2023
0.1.201 252 7/29/2023
0.1.200 252 7/11/2023
0.1.199 240 7/3/2023
0.1.198 251 7/1/2023
0.1.197 223 6/30/2023
0.1.196 333 6/29/2023
0.1.195 251 6/26/2023
0.1.194 317 6/23/2023
0.1.193 260 6/23/2023
0.1.192 244 6/21/2023
0.1.191 260 6/19/2023
0.1.190 253 6/18/2023
0.1.188 251 6/18/2023
0.1.187 237 6/17/2023
0.1.186 256 6/16/2023
0.1.184 296 6/11/2023
0.1.183 254 6/8/2023
0.1.182 249 5/31/2023
0.1.180 261 5/30/2023
0.1.179 262 5/30/2023
0.1.178 268 5/29/2023
0.1.177 244 5/28/2023
0.1.176 275 5/27/2023
0.1.175 261 5/23/2023
0.1.174 267 5/22/2023
0.1.173 276 5/21/2023
0.1.172 263 5/20/2023
0.1.171 260 5/20/2023
0.1.170 267 5/15/2023
0.1.169 253 5/14/2023
0.1.168 271 5/13/2023
0.1.167 268 5/11/2023
0.1.166 269 5/11/2023
0.1.165 269 5/3/2023
0.1.164 311 4/27/2023
0.1.163 296 4/22/2023
0.1.162 267 4/18/2023
0.1.161 283 4/17/2023
0.1.160 316 4/17/2023
0.1.159 310 4/17/2023
0.1.158 300 4/17/2023
0.1.157 287 4/13/2023
0.1.156 307 4/10/2023
0.1.155 302 4/10/2023
0.1.154 313 4/10/2023
0.1.153 325 4/10/2023
0.1.152 330 4/4/2023
0.1.151 317 4/3/2023
0.1.150 324 3/28/2023
0.1.149 348 3/20/2023
0.1.148 337 3/14/2023
0.1.147 343 3/6/2023
0.1.146 346 3/5/2023
0.1.145 322 3/5/2023
0.1.144 410 3/1/2023
0.1.143 396 1/31/2023
0.1.142 401 1/31/2023
0.1.141 413 1/25/2023
0.1.140 406 1/23/2023
0.1.139 397 1/20/2023
0.1.138 436 1/3/2023
0.1.136 409 1/3/2023
0.1.133 403 12/26/2022
0.1.132 382 12/20/2022
0.1.131 428 12/20/2022
0.1.130 405 12/14/2022
0.1.129 425 11/28/2022
0.1.128 442 11/20/2022
0.1.127 441 11/20/2022
0.1.126 453 11/20/2022
0.1.125 454 11/19/2022
0.1.124 434 11/19/2022
0.1.123 473 11/19/2022
0.1.122 443 11/19/2022
0.1.121 459 11/19/2022
0.1.120 457 11/17/2022
0.1.119 446 11/17/2022
0.1.118 453 11/17/2022
0.1.115 459 11/9/2022
0.1.114 473 11/7/2022
0.1.113 474 11/2/2022
0.1.112 478 11/2/2022
0.1.111 468 11/2/2022
0.1.110 467 11/1/2022
0.1.109 472 11/1/2022
0.1.108 487 10/28/2022
0.1.107 496 10/28/2022
0.1.106 489 10/28/2022
0.1.103 534 10/22/2022
0.1.101 532 10/17/2022
0.1.100 554 10/17/2022
0.1.99 524 10/17/2022
0.1.98 492 10/17/2022
0.1.97 514 10/13/2022
0.1.96 500 10/3/2022
0.1.94 532 9/26/2022
0.1.93 554 9/26/2022
0.1.92 523 9/26/2022
0.1.91 565 9/24/2022
0.1.90 541 9/24/2022
0.1.89 557 9/24/2022
0.1.88 508 9/21/2022
0.1.87 539 9/20/2022
0.1.86 540 9/20/2022
0.1.84 566 9/15/2022
0.1.83 563 9/15/2022
0.1.82 531 9/11/2022
0.1.81 576 9/10/2022
0.1.80 526 9/10/2022
0.1.79 526 9/10/2022
0.1.78 582 9/10/2022