SnowBankSDK/foundationdb-dotnet-client

SnowBankSDK

C#/.NET биндинг для клиентского API FoundationDB: подключение к распределённой KV-базе из .NET-приложений.

Это официальный C#/.NET биндинг для клиентской библиотеки FoundationDB. Он нужен .NET-разработчикам, которые используют FoundationDB как распределённое key-value хранилище и хотят работать с ним из C# через управляемый API.

Ключевые возможности

  • Управляемый клиент для FoundationDB Client API на C#/.NET
  • Регистрация в DI-контейнере через AddFoundationDb с провайдером IFdbDatabaseProvider
  • Три способа подключения: через .NET Aspire, файл fdb.cluster или строку подключения
  • Отдельный пакет FoundationDB.Client.Native, версия которого должна совпадать с кластером
  • Кроссплатформенность: Windows, Linux и macOS
  • Публикация в NuGet под лицензией BSD-3-Clause

Для каких задач подходит

  • Работа с FoundationDB из ASP.NET Core или консольных .NET-приложений
  • Подключение к локальному или удалённому кластеру FoundationDB через DI
  • Интеграция FoundationDB в .NET Aspire-приложения через AppHost
  • Использование распределённого key-value хранилища в C#-микросервисах
  • Настройка соединения с кластером через fdb.cluster или строку подключения

Подробнее

Библиотека представляет собой managed-обёртку над нативной клиентской библиотекой FoundationDB. Она ставится как NuGet-пакет FoundationDB.Client, а для работы требуется отдельный пакет FoundationDB.Client.Native, версия которого должна совпадать с major.minor версией вашего кластера. Это ключевой момент: несовпадение версий проявляется как таймауты без явных ошибок, поэтому в документации ему уделено отдельное внимание.

Подключение строится через регистрацию в DI-контейнере: вызов AddFoundationDb добавляет синглтон IFdbDatabaseProvider. Кластер можно указать тремя способами: через интеграцию с .NET Aspire (AppHost передаёт соединение), через файл fdb.cluster на диске или через строку подключения вида docker:docker@127.0.0.1:4500. Первый способ рекомендуется авторами, если вы уже используете Aspire.

Для новичков в FoundationDB есть пошаговая документация: от предварительных требований и объяснения, как работает соединение, до настройки кластера и первого чтения и записи. Обратите внимание, что это именно клиентский биндинг, а не серверная часть: для работы нужен развёрнутый кластер FoundationDB.

Частые вопросы

Как установить foundationdb-dotnet-client?

Основная команда установки из README:

dotnet add package FoundationDB.Client

Какие задачи решает foundationdb-dotnet-client?

Репозиторий решает задачу доступа к FoundationDB из C#/.NET: он предоставляет управляемый клиент, регистрацию в DI и гибкую настройку подключения к кластеру. Подходит для приложений на .NET, которым нужно использовать распределённое key-value хранилище FoundationDB без написания собственной обвязки.

Какие версии .NET поддерживаются?

В README не указан конкретный список поддерживаемых версий .NET. Уточнить актуальные требования можно в документации по предварительным требованиям и в описании NuGet-пакета FoundationDB.Client.

Почему возникают таймауты при подключении к кластеру?

Частая причина — несовпадение версии пакета FoundationDB.Client.Native с major.minor версией кластера. Пакет нативной библиотеки нужно явно закрепить под версию вашего кластера, например 7.4.*.

Можно ли использовать библиотеку в коммерческом проекте?

Да, код распространяется под лицензией BSD-3-Clause, которая разрешает коммерческое использование при сохранении уведомления об авторских правах и отказе от гарантий.

О репозитории

Язык

Лицензия

Звёзды

158

Форки

33

Открытые issues

20

Контрибьюторы

0

Создан

06.06.2013

Обновлён

22.10.2026

Теги