CommunityToolkit.Aspire.SurrealDb
9.7.2
Prefix Reserved
dotnet add package CommunityToolkit.Aspire.SurrealDb --version 9.7.2
NuGet\Install-Package CommunityToolkit.Aspire.SurrealDb -Version 9.7.2
<PackageReference Include="CommunityToolkit.Aspire.SurrealDb" Version="9.7.2" />
<PackageVersion Include="CommunityToolkit.Aspire.SurrealDb" Version="9.7.2" />
<PackageReference Include="CommunityToolkit.Aspire.SurrealDb" />
paket add CommunityToolkit.Aspire.SurrealDb --version 9.7.2
#r "nuget: CommunityToolkit.Aspire.SurrealDb, 9.7.2"
#:package CommunityToolkit.Aspire.SurrealDb@9.7.2
#addin nuget:?package=CommunityToolkit.Aspire.SurrealDb&version=9.7.2
#tool nuget:?package=CommunityToolkit.Aspire.SurrealDb&version=9.7.2
CommunityToolkit.Aspire.SurrealDb
Registers a SurrealDbClient in the DI container for connecting to a SurrealDB instance.
Getting started
Prerequisites
- SurrealDB cluster.
Install the package
Install the .NET Aspire SurrealDB Client library with NuGet:
dotnet add package CommunityToolkit.Aspire.SurrealDb
Usage example
In the Program.cs file of your project, call the AddSurrealClient
extension method to register a SurrealDbClient
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddSurrealClient("surreal");
Configuration
The .NET Aspire SurrealDB Client integration provides multiple options to configure the server connection based on the requirements and conventions of your project.
Use a connection string
When using a connection string from the ConnectionStrings
configuration section, you can provide the name of the connection string when calling builder.AddSurrealClient()
:
builder.AddSurrealClient("surreal");
And then the connection string will be retrieved from the ConnectionStrings
configuration section:
{
"ConnectionStrings": {
"surreal": "Server=ws://127.0.0.1:8000/rpc;Namespace=test;Database=test;Username=root;Password=root"
}
}
Use configuration providers
The .NET Aspire SurrealDB Client integration supports Microsoft.Extensions.Configuration. It loads the SurrealDbClientSettings
from configuration by using the Aspire:Surreal:Client
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"Surreal": {
"Client": {
"Options": {
"Endpoint": "ws://127.0.0.1:8000/rpc",
"Namespace": "test",
"Database": "test",
"Username": "root",
"Password": "root"
}
}
}
}
}
Use inline delegates
Also you can pass the Action<SurrealDbClientSettings> configureSettings
delegate to set up some or all the options inline, for example to set the API key from code:
builder.AddSurrealDbClient("surreal", settings => settings.Options.Endpoint = "ws://localhost:8000/rpc");
AppHost extensions
In your AppHost project, install the CommunityToolkit.Aspire.Hosting.SurrealDb
library with NuGet:
dotnet add package CommunityToolkit.Aspire.Hosting.SurrealDb
Then, in the Program.cs file of AppHost
, register a SurrealDB cluster and consume the connection using the following methods:
var db = builder.AddSurrealServer("surreal")
.AddNamespace("ns")
.AddDatabase("db");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(db);
The WithReference
method configures a connection in the MyService
project named db
. In the Program.cs file of MyService
, the SurrealDB connection can be consumed using:
builder.AddSurrealClient("db");
Then, in your service, inject SurrealDbClient
and use it to interact with the SurrealDB instance:
public class MyService(SurrealDbClient client)
{
// ...
}
Additional documentation
- https://github.com/surrealdb/surrealdb.net
- https://learn.microsoft.com/dotnet/aspire/community-toolkit/hosting-surrealdb
Feedback & contributing
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 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. |
-
net8.0
- Microsoft.Extensions.Configuration.Binder (>= 9.0.4)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 9.0.4)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.4)
- OpenTelemetry.Extensions.Hosting (>= 1.11.1)
- SurrealDb.Net (>= 0.9.0)
-
net9.0
- Microsoft.Extensions.Configuration.Binder (>= 9.0.4)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 9.0.4)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.4)
- OpenTelemetry.Extensions.Hosting (>= 1.11.1)
- SurrealDb.Net (>= 0.9.0)
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 |
---|---|---|
9.7.2 | 36 | 8/29/2025 |
9.7.2-beta.362 | 43 | 8/29/2025 |
9.7.2-beta.361 | 44 | 8/29/2025 |
9.7.2-beta.360 | 42 | 8/29/2025 |
9.7.2-beta.359 | 45 | 8/28/2025 |
9.7.2-beta.358 | 45 | 8/28/2025 |
9.7.2-beta.357 | 44 | 8/28/2025 |
9.7.1 | 46 | 8/27/2025 |
9.7.1-beta.355 | 45 | 8/27/2025 |
9.7.1-beta.354 | 42 | 8/27/2025 |
9.7.1-beta.353 | 45 | 8/27/2025 |
9.7.1-beta.352 | 42 | 8/27/2025 |
9.7.1-beta.351 | 46 | 8/27/2025 |
9.7.1-beta.348 | 116 | 8/14/2025 |
9.7.1-beta.344 | 64 | 8/10/2025 |
9.7.1-beta.343 | 189 | 8/8/2025 |
9.7.1-beta.342 | 198 | 8/7/2025 |
9.7.1-beta.341 | 197 | 8/6/2025 |
9.7.1-beta.340 | 183 | 8/5/2025 |
9.7.1-beta.339 | 180 | 8/5/2025 |
9.7.0 | 87 | 8/1/2025 |
9.7.0-beta.337 | 78 | 8/1/2025 |
9.7.0-beta.336 | 91 | 8/1/2025 |
9.7.0-beta.335 | 93 | 8/1/2025 |