dotnet / aspire

An opinionated, cloud ready stack for building observable, production ready, distributed applications in .NET
https://learn.microsoft.com/dotnet/aspire
MIT License
3.67k stars 419 forks source link

Add Meilisearch integration #5816

Open Alirexaa opened 3 days ago

Alirexaa commented 3 days ago

Background and Motivation

Meilisearch is a flexible, powerful user-focused, lite, fast search engine. I like having an integration for Meilisearch.

Proposed API

/// <summary>
/// Provides extension methods for adding Meilisearch resources to the application model.
/// </summary>
public static class MeilisearchBuilderExtensions
{
+    public static IResourceBuilder<MeilisearchResource> AddMeilisearch(this IDistributedApplicationBuilder builder, string name, IResourceBuilder<ParameterResource>? masterKey = null, int? port = null);
}

/// <summary>
/// Provides extension methods for registering Meilisearch-related services in an <see cref="IHostApplicationBuilder"/>.
/// </summary>
public static class AspireMeilisearchExtensions
{
+    public static void AddMeilisearchClient(this IHostApplicationBuilder builder, string connectionName, Action<MeilisearchClientSettings>? configureSettings = null)
}

Usage Examples

     var builder = DistributedApplication.CreateBuilder(args);

     var meilisearch = builder.AddMeilisearch("meilisearch");
     var api = builder.AddProject<Projects.Api>("api")
     .WithReference(meilisearch);

     builder.Build().Run(); 

Alternative Designs

Risks

davidfowl commented 2 days ago

What is this and why would we add it to the core of aspire?

Alirexaa commented 2 days ago

What is this and why would we add it to the core of aspire?

Meilisearch is a popular search engine (over 46k GitHub stars) like Elasticsearch, but it's lightning-fast and very lightweight compared to Elasticsearch. It Would be great to have this in the core of aspire.