SnowBank SDK

The SnowBank SDK is a set of .NET libraries for building distributed applications with FoundationDB as the main database. It groups into two families:

  • SnowBank: general-purpose .NET libraries, shared across the SDK and usable on their own. SnowBank.Core holds the tools almost every package needs: binary slices and buffers, the tuple encoding, and the CrystalJson serializer. Every type lives under the SnowBank namespace root.
  • FoundationDB: the .NET client for FoundationDB, the distributed ordered key/value store. FoundationDB.Client connects to a cluster, and can run against the FakeDb emulator for tests and local use. Reference Layers add higher-level data models on top.

How the pieces fit

The SDK is two stacks side by side. On the left, FoundationDB.Client over its backends (the native fdb_c client, plus FakeDb for tests and local use), talking to a FoundationDB cluster. On the right, SnowBank.Core over its components (slices, JSON, HTTP, testing), on the .NET runtime. Layers and your application build on top, and the whole runs on Aspire for local development, or Docker, Kubernetes, or bare metal in production.

SnowBank: general-purpose libraries

Building blocks used across the SDK and usable without FoundationDB. Start at The SnowBank libraries.

FoundationDB: the database client

The .NET client for FoundationDB. Start at Introduction if you came for the database.

  • Setup: install .NET and a local cluster, and match the native client to your cluster version.
  • Getting Started: your first read and write, then a small HTTP API you can click through.
  • Aspire: let .NET Aspire start the cluster and inject the connection.
  • Guide: keys and Layers, transactions, and the advanced distributed patterns.

API reference

The API reference has one page per public type, across the documented assemblies: SnowBank.Core, FoundationDB.Client, FoundationDB.Aspire, and FoundationDB.Aspire.Hosting.