DubUrl 0.2.5

There is a newer version of this package available.
See the version list below for details.
dotnet add package DubUrl --version 0.2.5                
NuGet\Install-Package DubUrl -Version 0.2.5                
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" Version="0.2.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DubUrl --version 0.2.5                
#r "nuget: DubUrl, 0.2.5"                
#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.
// Install DubUrl as a Cake Addin
#addin nuget:?package=DubUrl&version=0.2.5

// Install DubUrl as a Cake Tool
#tool nuget:?package=DubUrl&version=0.2.5                

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, mssqlserver 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, mssqlserver ^\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, mssqlserver ^\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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on DubUrl:

Package Downloads
DubUrl.OleDb

DubUrl provides a standardized URL-style mechanism for providing database connection information and opening a DbConnection in the .NET ecosystem

DubUrl.Extensions.DependencyInjection

DubUrl provides a standardized URL-style mechanism for providing database connection information and opening a DbConnection in the .NET ecosystem

DubUrl.Adomd

DubUrl provides a standardized URL-style mechanism for providing database connection information and opening a DbConnection in the .NET ecosystem

DubUrl.Extensions

DubUrl provides a standardized URL-style mechanism for providing database connection information and opening a DbConnection in the .NET ecosystem

Tseesecake

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.18.80 37 11/6/2024
0.18.78 112 10/24/2024
0.18.76 153 10/18/2024
0.18.75 150 10/18/2024
0.18.74 105 10/16/2024
0.18.73 117 10/14/2024
0.18.72 114 10/14/2024
0.18.71 126 10/14/2024
0.18.70 124 10/11/2024
0.18.68 137 9/30/2024
0.18.67 163 9/16/2024
0.18.66 146 9/15/2024
0.18.65 142 9/15/2024
0.18.64 161 9/14/2024
0.18.62 158 9/9/2024
0.18.61 156 9/9/2024
0.18.60 150 9/2/2024
0.18.59 147 9/2/2024
0.18.58 142 9/3/2024
0.18.57 154 8/26/2024
0.18.56 179 8/21/2024
0.18.55 171 8/18/2024
0.18.54 163 8/15/2024
0.18.53 156 8/11/2024
0.18.51 99 7/29/2024
0.18.50 139 7/17/2024
0.18.49 130 7/17/2024
0.18.47 135 7/17/2024
0.18.45 148 7/14/2024
0.18.44 142 7/7/2024
0.18.43 145 7/7/2024
0.18.42 133 7/6/2024
0.18.41 144 7/6/2024
0.18.39 139 7/6/2024
0.18.38 160 7/6/2024
0.18.37 142 6/25/2024
0.18.36 156 6/23/2024
0.18.33 161 5/20/2024
0.18.32 151 5/20/2024
0.18.31 154 5/19/2024
0.18.30 170 5/15/2024
0.18.29 163 5/15/2024
0.18.28 167 5/15/2024
0.18.27 150 5/14/2024
0.18.24 142 5/14/2024
0.18.22 182 4/15/2024
0.18.20 164 4/15/2024
0.18.19 169 4/1/2024
0.18.18 239 3/25/2024
0.18.17 230 3/23/2024
0.18.16 226 3/23/2024
0.18.15 216 3/23/2024
0.18.14 212 3/23/2024
0.18.13 212 3/23/2024
0.18.12 253 3/11/2024
0.18.11 265 3/10/2024
0.18.10 270 3/10/2024
0.18.9 281 2/28/2024
0.18.8 290 2/17/2024
0.18.6 306 2/17/2024
0.18.5 282 2/17/2024
0.18.4 298 2/17/2024
0.18.3 292 2/17/2024
0.18.2 309 2/17/2024
0.18.0 327 2/11/2024
0.17.6 334 2/9/2024
0.17.5 320 2/9/2024
0.17.4 332 2/7/2024
0.17.3 329 2/7/2024
0.17.2 327 2/7/2024
0.17.1 312 1/30/2024
0.17.0 293 1/28/2024
0.16.0 321 1/27/2024
0.15.0 306 1/27/2024
0.14.0 318 1/27/2024
0.13.1 346 1/27/2024
0.13.0 337 1/22/2024
0.12.1 346 1/22/2024
0.12.0 323 1/22/2024
0.11.0 338 1/20/2024
0.10.0 340 1/20/2024
0.9.11 316 1/20/2024
0.9.10 307 1/20/2024
0.9.9 328 1/19/2024
0.9.8 325 1/19/2024
0.9.7 340 1/19/2024
0.9.6 310 1/19/2024
0.9.5 320 1/18/2024
0.9.2 425 1/8/2024
0.9.1 372 1/5/2024
0.9.0 381 12/30/2023
0.8.7 387 12/30/2023
0.8.6 408 12/25/2023
0.8.5 389 12/21/2023
0.8.4 388 12/21/2023
0.8.3 436 12/11/2023
0.8.2 426 12/11/2023
0.8.1 429 12/11/2023
0.8.0 423 12/9/2023
0.7.3 409 12/6/2023
0.7.2 458 12/5/2023
0.7.1 454 11/28/2023
0.7.0 417 11/27/2023
0.6.0 438 11/26/2023
0.5.11 446 11/25/2023
0.5.9 427 11/25/2023
0.5.8 432 11/25/2023
0.5.6 440 11/25/2023
0.5.5 416 11/25/2023
0.5.1 428 11/25/2023
0.5.0 458 11/18/2023
0.4.14 406 11/16/2023
0.4.6 430 11/16/2023
0.4.5 447 11/13/2023
0.4.4 405 11/13/2023
0.4.3 438 11/12/2023
0.4.2 411 11/12/2023
0.4.1 431 11/7/2023
0.4.0 402 11/6/2023
0.3.3 436 11/6/2023
0.3.2 432 11/6/2023
0.3.1 439 11/6/2023
0.3.0 469 10/30/2023
0.2.13 446 10/30/2023
0.2.12 418 10/30/2023
0.2.11 412 10/30/2023
0.2.10 420 10/23/2023
0.2.9 456 10/23/2023
0.2.8 465 10/16/2023
0.2.7 467 10/16/2023
0.2.6 461 10/9/2023
0.2.5 427 10/9/2023
0.2.4 432 10/9/2023
0.2.3 464 10/2/2023
0.2.0 553 9/30/2023
0.1.233 640 9/21/2023
0.1.231 538 9/19/2023
0.1.230 495 9/18/2023
0.1.228 472 9/18/2023
0.1.227 555 9/15/2023
0.1.226 499 9/14/2023
0.1.225 499 9/12/2023
0.1.224 501 9/10/2023
0.1.223 506 9/10/2023
0.1.222 495 9/9/2023
0.1.219 528 9/8/2023
0.1.218 520 9/7/2023
0.1.217 527 9/6/2023
0.1.216 559 8/28/2023
0.1.215 519 8/28/2023
0.1.214 530 8/23/2023
0.1.213 525 8/23/2023
0.1.212 579 8/15/2023
0.1.211 561 8/14/2023
0.1.210 550 8/12/2023
0.1.209 609 8/8/2023
0.1.208 698 8/1/2023
0.1.207 732 7/31/2023
0.1.206 632 7/31/2023
0.1.205 604 7/31/2023
0.1.204 631 7/30/2023
0.1.203 597 7/30/2023
0.1.202 618 7/30/2023
0.1.201 615 7/29/2023
0.1.200 637 7/11/2023
0.1.199 686 7/3/2023
0.1.198 642 7/1/2023
0.1.197 682 6/30/2023
0.1.196 941 6/29/2023
0.1.195 685 6/26/2023
0.1.194 849 6/23/2023
0.1.193 630 6/23/2023
0.1.192 676 6/21/2023
0.1.191 652 6/19/2023
0.1.190 617 6/18/2023
0.1.188 649 6/18/2023
0.1.187 636 6/17/2023
0.1.186 684 6/16/2023
0.1.184 646 6/11/2023
0.1.183 671 6/8/2023
0.1.182 668 5/31/2023
0.1.180 644 5/30/2023
0.1.179 605 5/30/2023
0.1.178 625 5/29/2023
0.1.177 658 5/28/2023
0.1.176 666 5/27/2023
0.1.175 668 5/23/2023
0.1.174 661 5/22/2023
0.1.173 645 5/21/2023
0.1.172 674 5/20/2023
0.1.171 637 5/20/2023
0.1.170 638 5/15/2023
0.1.169 680 5/14/2023
0.1.168 680 5/13/2023
0.1.167 731 5/11/2023
0.1.166 673 5/11/2023
0.1.165 657 5/3/2023
0.1.164 698 4/27/2023
0.1.163 710 4/22/2023
0.1.162 714 4/18/2023
0.1.161 702 4/17/2023
0.1.160 703 4/17/2023
0.1.159 725 4/17/2023
0.1.158 733 4/17/2023
0.1.157 697 4/13/2023
0.1.156 725 4/10/2023
0.1.155 689 4/10/2023
0.1.154 729 4/10/2023
0.1.153 689 4/10/2023
0.1.152 699 4/4/2023
0.1.151 707 4/3/2023
0.1.150 796 3/28/2023
0.1.149 762 3/20/2023
0.1.148 750 3/14/2023
0.1.147 774 3/6/2023
0.1.146 765 3/5/2023
0.1.145 832 3/5/2023
0.1.144 836 3/1/2023
0.1.143 849 1/31/2023
0.1.142 864 1/31/2023
0.1.141 856 1/25/2023
0.1.140 853 1/23/2023
0.1.139 840 1/20/2023
0.1.138 912 1/3/2023
0.1.136 884 1/3/2023
0.1.133 917 12/26/2022
0.1.132 919 12/20/2022
0.1.131 891 12/20/2022
0.1.130 918 12/14/2022
0.1.129 912 11/28/2022
0.1.128 930 11/20/2022
0.1.127 959 11/20/2022
0.1.126 943 11/20/2022
0.1.125 911 11/19/2022
0.1.124 919 11/19/2022
0.1.123 968 11/19/2022
0.1.122 989 11/19/2022
0.1.121 977 11/19/2022
0.1.120 918 11/17/2022
0.1.119 934 11/17/2022
0.1.118 951 11/17/2022
0.1.115 941 11/9/2022
0.1.114 955 11/7/2022
0.1.113 915 11/2/2022
0.1.112 970 11/2/2022
0.1.111 957 11/2/2022
0.1.110 1,013 11/1/2022
0.1.109 1,004 11/1/2022
0.1.108 1,036 10/28/2022
0.1.107 1,041 10/28/2022
0.1.106 996 10/28/2022
0.1.103 1,048 10/22/2022
0.1.101 1,083 10/17/2022
0.1.100 1,091 10/17/2022
0.1.99 1,044 10/17/2022
0.1.98 1,020 10/17/2022
0.1.97 1,084 10/13/2022
0.1.96 1,077 10/3/2022
0.1.94 1,093 9/26/2022
0.1.93 1,124 9/26/2022
0.1.92 1,077 9/26/2022
0.1.91 1,085 9/24/2022
0.1.90 1,117 9/24/2022
0.1.89 1,058 9/24/2022
0.1.88 1,041 9/21/2022
0.1.87 1,103 9/20/2022
0.1.86 1,144 9/20/2022
0.1.84 1,099 9/15/2022
0.1.83 1,108 9/15/2022
0.1.82 1,099 9/11/2022
0.1.81 1,125 9/10/2022
0.1.80 1,115 9/10/2022
0.1.79 1,123 9/10/2022
0.1.78 1,111 9/10/2022
0.1.77 1,015 9/7/2022
0.1.76 936 9/7/2022
0.1.75 1,001 8/30/2022
0.1.74 978 8/29/2022
0.1.72 981 8/27/2022
0.1.71 807 8/27/2022
0.1.70 844 8/21/2022
0.1.69 779 8/15/2022
0.1.68 876 8/15/2022
0.1.67 831 8/15/2022
0.1.66 859 8/15/2022
0.1.65 829 8/15/2022
0.1.63 795 8/14/2022
0.1.62 809 8/14/2022
0.1.61 757 8/13/2022
0.1.60 861 8/13/2022
0.1.59 865 8/12/2022
0.1.57 789 8/12/2022
0.1.52 831 8/12/2022
0.1.50 811 8/11/2022
0.1.49 869 8/8/2022
0.1.48 833 8/8/2022
0.1.47 780 8/7/2022
0.1.46 844 8/6/2022
0.1.45 844 8/6/2022
0.1.44 835 8/5/2022
0.1.43 873 8/2/2022
0.1.42 838 8/2/2022
0.1.39 891 8/2/2022
0.1.38 862 7/31/2022
0.1.37 870 7/31/2022
0.1.36 873 7/31/2022
0.1.33 863 7/31/2022
0.1.32 863 7/16/2022
0.1.31 816 7/16/2022
0.1.27 889 7/16/2022
0.1.26 877 7/16/2022
0.1.25 855 7/15/2022
0.1.24 881 7/12/2022
0.1.23 826 7/12/2022
0.1.22 884 7/12/2022
0.1.21 856 7/12/2022
0.1.20 805 7/11/2022
0.1.19 898 7/11/2022
0.1.18 889 7/10/2022
0.1.17 869 7/5/2022
0.1.16 839 6/30/2022
0.1.15 837 6/30/2022
0.1.14 914 6/30/2022
0.1.14-beta.IBM-DB2.1 112 6/30/2022
0.1.13 836 6/30/2022
0.1.13-beta.teradata.1 121 6/30/2022
0.1.12 888 6/28/2022
0.1.12-beta.refactor-mapper.1 121 6/28/2022
0.1.11 880 6/28/2022
0.1.10 878 6/28/2022
0.1.10-beta.odbc.8 124 6/28/2022
0.1.10-beta.odbc.7 121 6/28/2022
0.1.10-beta.odbc.4 121 6/26/2022
0.1.9 865 6/25/2022
0.1.9-beta.parse-open-funct... 129 6/25/2022
0.1.8 885 6/18/2022
0.1.7 874 6/18/2022
0.1.7-beta.1 130 6/18/2022
0.1.6 822 6/18/2022
0.1.6-beta.2 134 6/18/2022
0.1.5 844 6/18/2022
0.1.4 915 6/18/2022
0.1.3-beta.7 135 6/18/2022
0.1.3-beta.3 118 6/18/2022
0.1.0 879 6/18/2022
0.1.0-alpha.8 107 6/18/2022
0.1.0-alpha.7 113 6/18/2022
0.1.0-alpha.4 119 6/18/2022