Etcd.Microsoft.Extensions.Configuration
3.2.1
dotnet add package Etcd.Microsoft.Extensions.Configuration --version 3.2.1
NuGet\Install-Package Etcd.Microsoft.Extensions.Configuration -Version 3.2.1
<PackageReference Include="Etcd.Microsoft.Extensions.Configuration" Version="3.2.1" />
<PackageVersion Include="Etcd.Microsoft.Extensions.Configuration" Version="3.2.1" />
<PackageReference Include="Etcd.Microsoft.Extensions.Configuration" />
paket add Etcd.Microsoft.Extensions.Configuration --version 3.2.1
#r "nuget: Etcd.Microsoft.Extensions.Configuration, 3.2.1"
#:package Etcd.Microsoft.Extensions.Configuration@3.2.1
#addin nuget:?package=Etcd.Microsoft.Extensions.Configuration&version=3.2.1
#tool nuget:?package=Etcd.Microsoft.Extensions.Configuration&version=3.2.1
Etcd.Microsoft.Extensions.Configuration
Etcd-based configuration provider for Microsoft.Extensions.Configuration.
Keep in mind that starting from v2, it will work only under Windows 10 or Windows Server 2016 (or later) because the internal gRPC client uses the HTTP/2 protocol for communication (https://docs.microsoft.com/en-us/answers/questions/310032/2012-r2-net-core-http2.html).
Quick Start
HTTP
var config = new ConfigurationBuilder()
.AddEtcd(
new Credentials("MyEtcdUserName", "passw"),
new EtcdSettings("http://serveraddress:2379"))
.Build();
var mySection = config.GetSection("MySection");
var myKeyValue = mySection["MyKeyName"];
HTTPS
When using HTTPS, a *.crt CA certificate (provided by the etcd administrator) should be placed in a well-known system certificate store (depending on the OS).
- For Windows, it is
Trusted Root Certification Authority. - For Linux, at least for Arch/Manjaro Linux, it should be placed in
/etc/ca-certificates/trust-source/anchors/, followed by thesudo trust extract-compatcommand.
HTTPS with Settings from a Local JSON File
appsettings.json
{
"EtcdSettings": {
"ConnectionString": "https://serveraddress:2379"
}
}
var jsonConfig = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var config = new ConfigurationBuilder()
.AddEtcd(
new Credentials("MyEtcdUserName", "passw"),
new ConfigurationBasedEtcdSettings(jsonConfig))
.Build();
var mySection = config.GetSection("MySection");
var myKeyValue = mySection["MyKeyName"];
Settings can be mixed from different locations.
Testing
To setup an integration test environment, make sure you have an etcd instance running on the standard port, without ssl: http://localhost:2379
On ubuntu, simply run
sudo apt-get install etcd-server etcd-client
Create a root account and enable authentication
etcdctl --endpoints=http://localhost:2379 user add root
Password of root:
enable authentication:
etcdctl --endpoints=http://localhost:2379 auth enable
For your convenience, terraform files are included in the folder tests/terraform/
In the file tests/terraform/main.tf replace the password with the one you just used when creating the root user.
in the tests/terraform folder, init terraform:
terraform init
to see what changes will be made:
terraform plan
to execute the changes, and create the keys:
terraform apply
then run the tests from the src folder
Contributing
There are many ways in which you can participate in the project. Like most open-source software projects, contributing code is just one of many ways you can help improve. Some of the things you could help out with are:
- Documentation (both code and features)
- Bug reports
- Bug fixes
- Feature requests
- Feature implementations
- Test coverage
- Code quality
- Sample applications
License
Licensed under the GNU Lesser General Public License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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 is compatible. 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 is compatible. 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. |
-
net10.0
- dotnet-etcd (>= 9.1.0)
- Microsoft.Extensions.Configuration (>= 10.0.9)
-
net8.0
- dotnet-etcd (>= 9.1.0)
- Microsoft.Extensions.Configuration (>= 10.0.9)
-
net9.0
- dotnet-etcd (>= 9.1.0)
- Microsoft.Extensions.Configuration (>= 10.0.9)
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 |
|---|---|---|
| 3.2.1 | 0 | 7/7/2026 |
| 3.2.0 | 51 | 7/6/2026 |
| 3.1.3 | 40 | 7/6/2026 |
| 3.1.2 | 1,836 | 3/13/2026 |
| 3.1.1 | 140 | 2/23/2026 |
| 3.1.0 | 6,045 | 10/22/2025 |
| 3.1.0-pre02 | 215 | 10/21/2025 |
| 3.1.0-pre01 | 220 | 10/21/2025 |
| 3.0.0 | 295 | 6/26/2025 |
| 3.0.0-pre01 | 237 | 6/23/2025 |
| 2.1.0 | 524 | 5/23/2024 |
| 2.0.1 | 590 | 12/2/2022 |
| 2.0.0 | 649 | 6/4/2022 |
| 1.1.0 | 250 | 10/31/2025 |
| 1.0.4 | 573 | 12/2/2022 |
| 1.0.3 | 1,436 | 6/1/2022 |
| 1.0.2 | 631 | 5/29/2022 |
| 1.0.1 | 701 | 11/15/2021 |
| 1.0.0 | 682 | 10/26/2021 |
| 1.0.0-pre02 | 443 | 10/22/2021 |