NixOS搜索工具

NixSearch.NET是一个全面的.NET解决方案,用于通过search.nixos.org Elasticsearch后端搜索和探索NixOS包、选项和flakes。

  • by playday3008
  • C#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 playday3008/NixSearch.NET

使用说明

尼克斯搜索。网

一个全面的。NET解决方案,用于使用search.NixOS.org Elasticsearch后端搜索和探索NixOS包、选项和薄片。

概述

尼克斯搜索。NET提供了多种与NixOS软件包和选项搜索生态系统交互的方法:

  • 图书馆:稳健。NET客户端库,用于程序化访问
  • CLI工具:用于快速搜索的命令行界面
  • MCP服务器:用于AI辅助集成的模型上下文协议服务器

项目

尼克斯搜索。核心

核心库为NixOS软件包、选项和薄片提供搜索功能。

  • NuGet包: NixSearch.Core
  • 目标框架: .净值10
  • 特性:完全支持Elasticsearch查询、强类型模型、异步/等待模式

尼克斯搜索。命令行界面

一个命令行工具,用于从终端搜索NixOS软件包和选项。

  • NuGet包: NixSearch.CLI
  • 工具命令: nixsearch
  • 安装: dotnet tool install -g NixSearch.CLI

尼克斯搜索。主控程序

模型上下文协议(MCP)服务器,使AI助手能够搜索NixOS包和选项。

快速开始

使用图书馆

dotnet add package NixSearch.Core
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

using NixSearch.Core.Extensions;
using NixSearch.Core.Models;
using NixSearch.Core.Search;

IConfiguration configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .Build()
    .GetSection("NixSearch");

ServiceCollection services = new ServiceCollection();
services.AddNixSearch(configuration);
ServiceProvider provider = services.BuildServiceProvider();

INixSearchClient client = provider.GetRequiredService<INixSearchClient>();
IReadOnlyList<NixChannel> channels = await client.GetChannelsAsync();

Nest.ISearchResponse<NixPackage> results = await client.Packages()
    .WithQuery("git")
    .ForChannel(NixChannel.Parse("unstable", channels))
    .Page(0, 10)
    .ExecuteAsync();

foreach (NixPackage package in results.Documents)
{
    Console.WriteLine($"{package.Name}: {package.Version}");
}

使用CLI

# Install globally
dotnet tool install -g NixSearch.CLI

# Search for packages
nixsearch packages git --size 10

# Search for options
nixsearch options services.nginx --size 5

使用MCP服务器

MCP服务器可以部署到AWS Lambda或在本地运行。看 MCP文件 了解与Claude等人工智能助手集成的详细信息。

建筑

# Build all projects
dotnet build

# Run tests
dotnet test

# Pack NuGet packages
dotnet pack

需求

  • .NET 10 SDK或更高版本
  • 对于AWS Lambda部署:已配置AWS CLI

仓库结构

NixSearch.NET/
├── src/
│   ├── NixSearch.Core/      # Core library
│   ├── NixSearch.CLI/       # CLI tool
│   └── NixSearch.MCP/       # MCP server
├── tests/
│   ├── NixSearch.Core.Tests/
│   ├── NixSearch.CLI.Tests/
│   └── NixSearch.MCP.Tests/
├── .github/
│   └── workflows/           # CI/CD workflows
└── NixSearch.sln            # Solution file

贡献

欢迎投稿!请随时提交问题或拉取请求。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢