Dzoukr/Dapper.FSharp
51.4
Adequate · 23 September 2026
5.4k
lines of production code
F#
primary language
1
measurement over time
What this system is
Dapper.FSharp is a multi-provider data access library for .NET that supports SQL Server, MySQL, PostgreSQL, and SQLite. It provides a modular architecture for building and executing queries, including conditional filtering, pagination, and output clause support. The system includes comprehensive test coverage and build automation to ensure reliability across all supported database engines.
Features
Complete rewrite of Dapper.FSharp to support multiple database providers
The library has been completely rewritten to support multiple database providers, including SQL Server, MySQL, and SQLite, by introducing a modular architecture with separate builder, domain, and deconstructor modules for each provider. This change introduces new query-building capabilities such as conditional WHERE clauses (And/Or/If), pagination (Skip/Take), and support for internal types as records mapped to the database. The update also adds support for output clauses in insert and update operations, allowing users to retrieve generated values after execution.
src/Dapper.FSharp · high confidence
Introduces build automation and developer tooling for the Dapper.FSharp library
The repository now includes a comprehensive build system and development infrastructure. A new \Build.fs\ script using FAKE automates the NuGet packaging and publishing workflow, supported by \BuildHelpers.fs\ and \BuildTools.fs\ for managing .NET and tooling commands. The solution file (\Dapper.FSharp.sln\) is updated to include the build project and organize solution items. Additionally, an \.editorconfig\ file enforces consistent code formatting, and a \docker-compose.yml\ file is added to spin up PostgreSQL, MySQL, and SQL Server containers for testing. These changes streamline the development, testing, and release process for the library.
(repo-wide) · high confidence
Test coverage
Added PostgreSQL test suite; Added test coverage for SQLite support; Expanded test coverage for SQL Server and MySQL database providers; Refactored test suite to support multiple database providers.
Dependencies
Upgrade to .NET 10 and modernize build infrastructure
The project's build system has been updated to target .NET 10, with the build script (\Build.fsproj\) and dependencies (\paket.dependencies\) refactored to support modern .NET versions (6.0 through 10.0). This includes adding support for MySQL and SQLite, updating test and coverage dependencies (NUnit, Coverlet), and migrating the build tooling to use Paket for dependency management.
(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 52 → 51 (-0.8)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 87 → 75 (-11.3)
- Architecture 100 → 100 (-0.0)
- Maturity 56 → 57 (+0.8)
- Readiness 27 → 29 (+1.5)
- Security 99 → 98 (-1.1)
Resolved (84)
- Duplicated block (10 lines × 2) (src/Dapper.FSharp/MySQL/Evaluator.fs)
- Duplicated block (10 lines × 2) (src/Dapper.FSharp/SQLite/Builders.fs)
- Duplicated block (10 lines × 4) (src/Dapper.FSharp/MSSQL/Evaluator.fs)
- Duplicated block (10 lines × 4) (src/Dapper.FSharp/MSSQL/Evaluator.fs)
- Duplicated block (10 lines × 4) (src/Dapper.FSharp/MSSQL/GenericDeconstructor.fs)
- Duplicated block (11 lines × 3) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (11 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (11 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (12 lines × 2) (src/Dapper.FSharp/MySQL/Builders.fs)
- Duplicated block (12 lines × 2) (src/Dapper.FSharp/MySQL/Evaluator.fs)
- Duplicated block (12 lines × 3) (src/Dapper.FSharp/MSSQL/Evaluator.fs)
- Duplicated block (12 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (12 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (12 lines × 8) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (14 lines × 2) (src/Dapper.FSharp/MySQL/Builders.fs)
- Duplicated block (14 lines × 3) (src/Dapper.FSharp/MSSQL/WhereAnalyzer.fs)
- Duplicated block (15 lines × 3) (src/Dapper.FSharp/MSSQL/JoinAnalyzer.fs)
- Duplicated block (17 lines × 2) (src/Dapper.FSharp/MySQL/Builders.fs)
- Duplicated block (17 lines × 4) (src/Dapper.FSharp/MSSQL/LinqExpressionVisitors.fs)
- Duplicated block (18 lines × 3) (src/Dapper.FSharp/MSSQL/Domain.fs)
- …and 64 more
New (132)
- Coverage not measured — no coverage collector is wired up
- Documentation: no architecture or design documentation (README.md)
- Duplicated block (10 lines × 3) (src/Dapper.FSharp/MSSQL/GenericDeconstructor.fs)
- Duplicated block (10 lines × 4) (src/Dapper.FSharp/MSSQL/OptionTypes.fs)
- Duplicated block (10–11 lines × 2) (src/Dapper.FSharp/PostgreSQL/Evaluator.fs)
- Duplicated block (11 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (11 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (11 lines × 4) (src/Dapper.FSharp/MSSQL/Evaluator.fs)
- Duplicated block (11 lines × 4) (src/Dapper.FSharp/MSSQL/Evaluator.fs)
- Duplicated block (111 lines × 4) (src/Dapper.FSharp/MSSQL/LinqExpressionVisitors.fs)
- Duplicated block (11–18 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (12 lines × 2) (src/Dapper.FSharp/MSSQL/Evaluator.fs)
- Duplicated block (12 lines × 3) (src/Dapper.FSharp/MSSQL/GenericDeconstructor.fs)
- Duplicated block (12 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (12 lines × 6) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (13 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (13 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (13 lines × 8) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (13–14 lines × 6) (src/Dapper.FSharp/MSSQL/Builders.fs)
- Duplicated block (14 lines × 4) (src/Dapper.FSharp/MSSQL/Builders.fs)
- …and 112 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Dzoukr/Dapper.FSharp 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 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit a83c9d5c4e396892d003aa512adc071ad5f7f2c6 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.