Skip to content
CAI
Software that uses CAICheck a score

fsprojects/FSharp.AWS.DynamoDB

65.4

Adequate · 3 October 2026

5.4k

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

FSharp.AWS.DynamoDB is an idiomatic F\# wrapper for the Amazon DynamoDB SDK that provides a type-safe API for interacting with DynamoDB tables. It enables developers to construct queries, updates, and projections using F\# quotations and supports the serialization of complex F\# types through a comprehensive pickler system. The library also includes utilities for managing table schemas, credentials, and attribute validation.

Features

Initial implementation of DynamoDB picklers for F\# types

The library now includes a complete set of picklers in the \src/FSharp.AWS.DynamoDB/Picklers\ directory, enabling the serialization and deserialization of F\# types to and from Amazon DynamoDB \AttributeValue\ instances. This change introduces support for primitive types (booleans, strings, numbers, bytes, GUIDs, dates), F\#-specific constructs (records, unions, options, lists, sets, maps, tuples), and collection types (lists, sets, maps). The implementation relies on the TypeShape library to resolve picklers at runtime and handles DynamoDB-specific data types such as String Sets, Number Sets, and Byte Sets.

src/FSharp.AWS.DynamoDB/Picklers · high confidence

Initial release of FSharp.AWS.DynamoDB version 0.13.2

This entry introduces the FSharp.AWS.DynamoDB library (version 0.13.2), an F\# wrapper over the standard Amazon DynamoDB SDK. The release provides a type-safe API for interacting with DynamoDB tables, featuring record-based key schema extraction via attributes (HashKey, RangeKey, GlobalSecondaryIndex, LocalSecondaryIndex), and support for conditional, update, and projection expressions using F\# quotations. It includes utilities for managing table provisioning (Provisioned/OnDemand) and streaming, as well as credential retrieval from environment variables and the local AWS credentials store. A scripting example (Script.fsx) is also included to demonstrate usage with both cloud and local DynamoDB instances.

src/FSharp.AWS.DynamoDB · high confidence

Initial repository structure and F\# coding conventions

The repository is initialized with the FSharp.AWS.DynamoDB solution, including the main library and test projects, along with a FAKE-based build script (build.fsx) and release notes. An .editorconfig file is added to enforce F\# coding conventions via Fantomas, such as indentation, line lengths, and spacing rules. The project targets .NET 9 via global.json and includes standard configuration files like .gitignore and .gitattributes.

(repo-wide) · high confidence

Introduce F\# quotation-based expression builders for DynamoDB queries, updates, and projections

The library now provides a new \Expression\ module that converts F\# quotations into DynamoDB expression strings, enabling type-safe query conditions, update operations, and projection expressions. Users can define conditional queries using standard F\# operators (e.g., \&&\, \\|\|\, \\<\>\), perform updates via record syntax or imperative operations (SET, REMOVE, ADD, DELETE), and specify projections as tuples of record fields, with the library handling the underlying DynamoDB attribute name and value placeholders.

src/FSharp.AWS.DynamoDB/Expression · high confidence

New utility module for DynamoDB attribute handling and validation

The library introduces a new internal utility module (src/FSharp.AWS.DynamoDB/Utils) that provides core support for DynamoDB operations. This includes custom equality and hashing logic for AWS SDK AttributeValue objects to ensure correct comparison in collections, helper functions for printing attribute values for debugging, and validation logic for DynamoDB table and field names (enforcing length and character constraints). It also adds general-purpose F\# utilities such as environment variable resolution and expression pattern matching helpers.

src/FSharp.AWS.DynamoDB/Utils · high confidence

Test coverage

Added comprehensive test suite for FSharp.AWS.DynamoDB

Added a new set of integration and unit tests in the \tests/FSharp.AWS.DynamoDB.Tests\ directory to verify core library functionality. The suite covers conditional expressions, pagination across primary keys, LSIs, and GSIs, projection expressions, update expressions, sparse GSI behavior, and transactional writes. It also includes tests for record schema generation, attribute value round-tripping, and metrics collection via a custom collector.

tests · high confidence

Dependencies

Initial release of FSharp.AWS.DynamoDB targeting .NET 8

This change introduces the initial project structure for FSharp.AWS.DynamoDB, an idiomatic F\# wrapper for the AWS DynamoDB SDK. The library targets .NET Standard 2.0 and 2.1, while the test suite targets .NET 8.0. Key dependencies include AWSSDK.DynamoDBv2 (v4.0.15.0+), TypeShape (v10.0.0), and FSharp.Core (v4.7.2+). The project uses Paket for dependency management and includes a comprehensive test suite using xUnit, FsCheck, and Microsoft.NET.Test.Sdk.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 65 → 65 (+0.1)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 92 → 92 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 50 → 50 (+0.0)
  • Readiness 63 → 63 (+0.0)
  • Security 95 → 97 (+1.7)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (1)

  • Off-boarding risk: anonymized user #1

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

fsprojects/FSharp.AWS.DynamoDB was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit cedd12607c4e03e0f05ecf853160eda623550f80 — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.