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 for .NET 6+)
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 6.0 or later - The library targets .NET 6.0+ and supports Native AOT compilation
  • AWS SDK for .NET - Required for DynamoDB client connectivity (AWSSDK.DynamoDBv2)

Next Steps

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