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