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.