Skip to main content

Installation

Install FluentDynamoDB packages via NuGet. All packages are prefixed with Oproto.FluentDynamoDb.

Core Package​

The core package provides everything you need to get started with FluentDynamoDb:

dotnet add package Oproto.FluentDynamoDb

The core package includes:

  • Source Generator: Automatically generates entity mapping code, field constants, key builders, and table classes at compile time
  • Entity Mapping: Zero-reflection mapping between C# objects and DynamoDB items with AOT compatibility
  • Fluent API: Intuitive, chainable methods for all DynamoDB operations (Put, Get, Update, Delete, Query, Scan with opt-in via [Scannable])
  • Expression Formatting: String.Format-style parameter syntax for readable condition and update expressions
  • Type Safety: Compile-time validation of entity configurations and key structures

Optional Packages​

Install additional packages based on your project requirements.

Serialization​

Handle complex object serialization for nested properties:

# System.Text.Json (recommended)
dotnet add package Oproto.FluentDynamoDb.SystemTextJson

# Newtonsoft.Json (for legacy compatibility)
dotnet add package Oproto.FluentDynamoDb.NewtonsoftJson

Encryption​

Field-level encryption using AWS Key Management Service:

dotnet add package Oproto.FluentDynamoDb.Encryption.Kms

Provides secure encryption for sensitive fields using the AWS Encryption SDK with KMS key management.

Blob Storage​

Store large objects in Amazon S3 with automatic reference management:

dotnet add package Oproto.FluentDynamoDb.BlobStorage.S3

Enables transparent storage of large binary data in S3 while keeping references in DynamoDB.

Geospatial​

Location-based queries using GeoHash, S2, and H3 algorithms:

dotnet add package Oproto.FluentDynamoDb.Geospatial

Supports proximity searches, bounding box queries, and spatial indexing patterns.

Logging and Other Features​

# Microsoft.Extensions.Logging integration with sensitive field redaction
dotnet add package Oproto.FluentDynamoDb.Logging.Extensions

# FluentResults integration for railway-oriented programming
dotnet add package Oproto.FluentDynamoDb.FluentResults

# DynamoDB Streams support for change data capture
dotnet add package Oproto.FluentDynamoDb.Streams

Requirements​

  • .NET 8.0 or later - The library multi-targets .NET 8.0 and .NET 10.0, and supports Native AOT compilation
  • AWS SDK for .NET - Required for DynamoDB client connectivity (AWSSDK.DynamoDBv2 4.0.0+)

Next Steps​

Continue to Quick Start to create your first entity and perform CRUD operations.