Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CommunityToolkit.Aspire.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -249,12 +249,14 @@
</Folder>
<Folder Name="/src/">
<Project Path="src/CommunityToolkit.Aspire.Bitwarden.SecretManager/CommunityToolkit.Aspire.Bitwarden.SecretManager.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Chroma/CommunityToolkit.Aspire.Chroma.csproj" />
<Project Path="src/CommunityToolkit.Aspire.GoFeatureFlag/CommunityToolkit.Aspire.GoFeatureFlag.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.ActiveMQ/CommunityToolkit.Aspire.Hosting.ActiveMQ.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Adminer/CommunityToolkit.Aspire.Hosting.Adminer.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Azure.Extensions/CommunityToolkit.Aspire.Hosting.Azure.Extensions.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Chroma/CommunityToolkit.Aspire.Hosting.Chroma.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.DbGate/CommunityToolkit.Aspire.Hosting.DbGate.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Dbx/CommunityToolkit.Aspire.Hosting.Dbx.csproj" />
<Project Path="src/CommunityToolkit.Aspire.Hosting.Deno/CommunityToolkit.Aspire.Hosting.Deno.csproj" />
Expand Down Expand Up @@ -328,12 +330,14 @@
</Folder>
<Folder Name="/tests/">
<Project Path="tests/CommunityToolkit.Aspire.Bitwarden.SecretManager.Tests/CommunityToolkit.Aspire.Bitwarden.SecretManager.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Chroma.Tests/CommunityToolkit.Aspire.Chroma.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.GoFeatureFlag.Tests/CommunityToolkit.Aspire.GoFeatureFlag.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.ActiveMQ.Tests/CommunityToolkit.Aspire.Hosting.ActiveMQ.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.Tests/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Azure.Extensions.Tests/CommunityToolkit.Aspire.Hosting.Azure.Extensions.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager.Tests/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Chroma.Tests/CommunityToolkit.Aspire.Hosting.Chroma.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Dbx.Tests/CommunityToolkit.Aspire.Hosting.Dbx.Tests.csproj" />
<Project Path="tests/CommunityToolkit.Aspire.Hosting.Deno.Tests/CommunityToolkit.Aspire.Hosting.Deno.Tests.csproj" />
Expand Down
1 change: 1 addition & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@
<PackageVersion Include="ModelContextProtocol.AspNetCore" Version="0.4.0-preview.3" />
<PackageVersion Include="KurrentDB.Client" Version="1.4.1" />
<PackageVersion Include="SSH.NET" Version="2026.0.0" />
<PackageVersion Include="ChromaDotNet.Client.DependencyInjection" Version="2.11.0" />
</ItemGroup>
<ItemGroup Label="Testing">
<!-- Testing packages -->
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ This repository contains the source code for the Aspire Community Toolkit, a col
| Package | Description |
| --- | --- |
| - **Learn More**: [`Bitwarden.SecretManager`](src/CommunityToolkit.Aspire.Bitwarden.SecretManager/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Bitwarden.SecretManager](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Bitwarden.SecretManager)](https://nuget.org/packages/CommunityToolkit.Aspire.Bitwarden.SecretManager/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Bitwarden.SecretManager](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Bitwarden.SecretManager?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Bitwarden.SecretManager/absoluteLatest) | An Aspire client integration for Bitwarden Secrets Manager. |
| - **Learn More**: [`Chroma`](src/CommunityToolkit.Aspire.Chroma/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Chroma](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Chroma)](https://nuget.org/packages/CommunityToolkit.Aspire.Chroma/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Chroma](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Chroma?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Chroma/absoluteLatest) | A ChromaDB client that integrates with Aspire, including health checks, traces and metrics. |
| - **Learn More**: [`DuckDB.NET.Data`](src/CommunityToolkit.Aspire.DuckDB.NET.Data/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.DuckDB.NET.Data](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.DuckDB.NET.Data)](https://nuget.org/packages/CommunityToolkit.Aspire.DuckDB.NET.Data/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.DuckDB.NET.Data](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.DuckDB.NET.Data?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.DuckDB.NET.Data/absoluteLatest) | An Aspire client integration for the DuckDB.NET.Data package. |
| - **Learn More**: [`GoFeatureFlag`](src/CommunityToolkit.Aspire.GoFeatureFlag/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.GoFeatureFlag](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.GoFeatureFlag)](https://nuget.org/packages/CommunityToolkit.Aspire.GoFeatureFlag/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.GoFeatureFlag](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.GoFeatureFlag?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.GoFeatureFlag/absoluteLatest) | A GO Feature Flag client that integrates with Aspire, including health checks, logging, and telemetry. |
| - **Learn More**: [`Hosting.ActiveMQ`](src/CommunityToolkit.Aspire.Hosting.ActiveMQ/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.ActiveMQ](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.ActiveMQ)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.ActiveMQ/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.ActiveMQ](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.ActiveMQ?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.ActiveMQ/absoluteLatest) | An Aspire hosting package for hosting ActiveMQ. |
Expand All @@ -25,6 +26,7 @@ This repository contains the source code for the Aspire Community Toolkit, a col
| - **Learn More**: [`Hosting.Azure.DataApiBuilder`](src/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder/absoluteLatest) | An Aspire component leveraging the Data API Builder container. |
| - **Learn More**: [`Hosting.Azure.Extensions`](src/CommunityToolkit.Aspire.Hosting.Azure.Extensions/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.Azure.Extensions](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.Azure.Extensions)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.Extensions/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.Azure.Extensions](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.Azure.Extensions?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.Extensions/absoluteLatest) | Azure extensions support for Aspire. |
| - **Learn More**: [`Hosting.Bitwarden.SecretManager`](src/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager/absoluteLatest) | An Aspire hosting integration for Bitwarden Secrets Manager. |
| - **Learn More**: [`Hosting.Chroma`](src/CommunityToolkit.Aspire.Hosting.Chroma/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.Chroma](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.Chroma)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Chroma/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.Chroma](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.Chroma?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Chroma/absoluteLatest) | ChromaDB hosting support for Aspire. |
| - **Learn More**: [`Hosting.Dapr`](src/CommunityToolkit.Aspire.Hosting.Dapr/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.Dapr](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.Dapr)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Dapr/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.Dapr](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.Dapr?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Dapr/absoluteLatest) | Dapr support for Aspire. |
| - **Learn More**: [`Hosting.DbGate`](src/CommunityToolkit.Aspire.Hosting.DbGate/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.DbGate](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.DbGate)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.DbGate/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.DbGate](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.DbGate?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.DbGate/absoluteLatest) | An Aspire hosting integration for the DbGate database management container. |
| - **Learn More**: [`Hosting.Dbx`](src/CommunityToolkit.Aspire.Hosting.Dbx/README.md) <br /> - Stable 📦: [![CommunityToolkit.Aspire.Hosting.Dbx](https://img.shields.io/nuget/v/CommunityToolkit.Aspire.Hosting.Dbx)](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Dbx/) <br /> - Preview 📦: [![CommunityToolkit.Aspire.Hosting.Dbx](https://img.shields.io/nuget/vpre/CommunityToolkit.Aspire.Hosting.Dbx?label=nuget%20(preview))](https://nuget.org/packages/CommunityToolkit.Aspire.Hosting.Dbx/absoluteLatest) | An Aspire hosting integration for the Dbx database management container. |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<ItemGroup>
<ProjectReference Include="..\..\..\src\CommunityToolkit.Aspire.Chroma\CommunityToolkit.Aspire.Chroma.csproj" />
<ProjectReference Include="..\CommunityToolkit.Aspire.Hosting.Chroma.ServiceDefaults\CommunityToolkit.Aspire.Hosting.Chroma.ServiceDefaults.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using ChromaDB.Client;
using ChromaDB.Client.Models;

var builder = WebApplication.CreateBuilder(args);

builder.AddServiceDefaults();

builder.AddChromaClient("chroma");

var app = builder.Build();

app.MapDefaultEndpoints();

app.MapPost("/create", async (ChromaClient chroma) =>
{
var collectionName = $"movies_{Guid.NewGuid():N}";
var collection = await chroma.CreateCollectionAsync(collectionName);
var collectionClient = chroma.GetCollectionClient(collection);

await collectionClient.AddAsync(
ids: ["1", "2"],
embeddings: [new ReadOnlyMemory<float>([0.1f, 0.2f, 0.3f]), new ReadOnlyMemory<float>([0.4f, 0.5f, 0.6f])],
metadatas: [
new Dictionary<string, object> { { "title", "Inception" } },
new Dictionary<string, object> { { "title", "Interstellar" } }
],
documents: ["A thief who enters the dreams of others.", "A group of explorers travel through a wormhole."]
);

return Results.Ok(new { Collection = collectionName, Count = await collectionClient.CountAsync() });
});

app.MapGet("/query", async (ChromaClient chroma, string collectionName) =>
{
var collectionClient = chroma.GetCollectionClient(await chroma.GetCollectionAsync(collectionName));

var results = await collectionClient.QueryAsync(
queryEmbeddings: new ReadOnlyMemory<float>([0.1f, 0.2f, 0.3f]),
nResults: 1,
include: ChromaQueryInclude.Metadatas | ChromaQueryInclude.Documents | ChromaQueryInclude.Distances
);

return Results.Ok(results.Select(r => new { r.Id, r.Document, Title = r.Metadata?["title"], r.Distance }));
});

app.Run();
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { createBuilder } from "./.aspire/modules/aspire.mjs";

const builder = await createBuilder();

const chroma = await builder.addChroma("chroma");
await chroma.withDataVolume({ name: "chroma-data" });

const _primaryEndpoint = await chroma.primaryEndpoint();
const _host = await chroma.host();
const _port = await chroma.port();
const _connectionString = await chroma.connectionStringExpression();
const _uri = await chroma.uriExpression();

await builder.build().run();
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"appHost": {
"path": "apphost.mts",
"language": "typescript/nodejs"
},
"sdk": {
"version": "13.6.0"
},
"profiles": {
"https": {
"applicationUrl": "https://localhost:29780;http://localhost:28961",
"environmentVariables": {
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:11005",
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:13349"
}
}
},
"packages": {
"CommunityToolkit.Aspire.Hosting.Chroma": "../../../src/CommunityToolkit.Aspire.Hosting.Chroma/CommunityToolkit.Aspire.Hosting.Chroma.csproj"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// @ts-check

import { defineConfig } from 'eslint/config';
import tseslint from 'typescript-eslint';

export default defineConfig({
files: ['apphost.mts'],
extends: [tseslint.configs.base],
languageOptions: {
parserOptions: {
projectService: true,
},
},
rules: {
'@typescript-eslint/no-floating-promises': ['error', { checkThenables: true }],
},
});
Loading
Loading