ciu-parser
2.0.0
dotnet add package ciu-parser --version 2.0.0
NuGet\Install-Package ciu-parser -Version 2.0.0
<PackageReference Include="ciu-parser" Version="2.0.0" />
<PackageVersion Include="ciu-parser" Version="2.0.0" />
<PackageReference Include="ciu-parser" />
paket add ciu-parser --version 2.0.0
#r "nuget: ciu-parser, 2.0.0"
#:package ciu-parser@2.0.0
#addin nuget:?package=ciu-parser&version=2.0.0
#tool nuget:?package=ciu-parser&version=2.0.0
Uri Credential Parser
This package replaces both PostgresConnString.NET and mongo-url-parser as they are very basic packages.
It aims to grant general .NET support for parsing and converting URLs in the form "scheme://user:password@host:port/database?connectionparameters" (also known as Credential-In-Url) and converting them to formats easily used by database service providers for .NET.
Installation
You can install the package from NuGet:
Install-Package ciu-parser
or via the .NET CLI:
dotnet add package ciu-parser
or for Paket:
paket add ciu-parser
Usage
Parsing URLs
To parse a URL:
using UriCredentialParser;
// ...
var details = CredentialsParser.Parse("postgres://someuser:somepassword@somehost:381/somedatabase");
The resulting ConnectionParameters object contains the following properties:
Scheme- Database server schemeHostName- Database server hostnamePort- Port on which to connectUserName- User with which to authenticate to the serverPassword- Corresponding passwordDatabasePath- Database name within the serverAdditionalQueryParameters- Additional database parameters provided as query options
Exports
Currently, this library allows for generating Npgsql-compatible connection strings with the following parameters:
pooling: type: boolean, default:truesslMode: type:PostgresSSLMode(enum), default:PrefertrustServerCertificate: type: boolean, default:true
using UriCredentialParser;
using UriCredentialParser.Enums;
// ...
var details = CredentialsParser.Parse("postgres://someuser:somepassword@somehost:381/somedatabase");
var connString = details.ToNpgsqlConnectionString();
// Result: User ID=someuser;Password=somepassword;Server=somehost;Port=381;Database=somedatabase;Pooling=true;SSL Mode=Prefer;Trust Server Certificate=true
This library also allows for generating a MongoDB-compatible connection string alongside the extracted database name:
using UriCredentialParser;
// ...
var details = CredentialsParser.Parse("mongodb://user:password@host:port/database-name?otheroptions");
var (dbUrl, dbName) = details.ToMongoConnectionSplit();
// dbUrl: mongodb://user:password@host:port?otheroptions
// dbName: database-name
Contributing
Feel free to make requests and to open pull requests with fixes and updates.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard1.6 is compatible. netstandard2.0 was computed. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.6
- System.ValueTuple (>= 4.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- changes asembly and lib name to be more intuitive.
- Update target framework to adjust to .NEt recommendations