Skip to content
CAI
Software that uses CAICheck a score

Hillcrest-R-D/FORM

53.5

Adequate · 3 October 2026

1.2k

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

FORM is an F\# Object-Relational Mapper that provides a unified API for performing CRUD operations and managing transactions across multiple database providers, including PostgreSQL, MySQL, SQL Server, SQLite, and ODBC. It supports declarative schema mapping through attributes, handles relationship lookups, and ensures data safety via parameterized queries. The system includes built-in performance benchmarking and integration tests to validate its functionality and efficiency against standard data access libraries.

Features

Initial release of FORM, an F\# ORM with multi-database support and transaction handling

This change introduces the FORM library, an F\# Object Relational Mapper. It provides a unified API for interacting with multiple database providers, including PostgreSQL (via Npgsql), MySQL (via MySqlConnector), SQL Server, SQLite, and ODBC. Key capabilities include CRUD operations (select, insert, update, delete), explicit and implicit transaction management, and support for relationship lookups. The library also implements parameterized queries to prevent SQL injection and includes a configurable logging module.

Lib · high confidence

Introduction of declarative ORM attributes and database context support

The Attributes module now provides a comprehensive set of F\# attributes for mapping domain models to database schemas. Users can define table and column metadata using TableAttribute, ColumnAttribute, PrimaryKeyAttribute, and ConstraintAttribute, while relationship handling is supported via ForeignKeyAttribute and the new ByJoinAttribute/OnAttribute pair for specifying join logic. The module also introduces LazyAttribute for deferred loading, SQLTypeAttribute for custom SQL definitions, and UniqueAttribute for constraint grouping. Additionally, the OrmState type has been extended to include ODBC support alongside existing MSSQL, MySQL, PSQL, and SQLite providers, and the DbContext enum is now available for context-aware attribute configuration.

Attributes · high confidence

Test coverage

Added ORM integration tests for SQLite, PostgreSQL, and ODBC; Added performance benchmarking suite for ORM operations.

Dependencies

Dependency updates and .NET 8 support across project manifests

This change updates the .NET project files to target .NET 8.0 alongside existing targets (net6.0, net7.0) and refreshes several NuGet dependencies. Key updates include upgrading Microsoft.Data.SqlClient to 5.1.3, Microsoft.Extensions.Logging and its Console provider to 8.0.0, Npgsql to 8.0.1, and System.Data.Odbc to 8.0.0. The test project now uses Expecto 10.1.0 for testing, while retaining NUnit 3.13.3 and related tooling. The performance benchmarking project references BenchmarkDotNet 0.13.12 and Dapper 2.1.28.

(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 53 → 54 (+0.7)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 92 → 92 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 53 → 53 (-0.0)
  • Readiness 29 → 29 (+0.0)
  • Security 100 → 100 (+0.0)
  • Performance 95 (new)

Resolved (1)

  • Documentation: written for insiders (README.md)

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

Survey your own repository

Hillcrest-R-D/FORM 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 2bf2295f54e05f5fd9fd5c2480ab3a09d8cc6748 — 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.