Skip to content
CAI
Software that uses CAICheck a score

Zaid-Ajaj/LiteDB.FSharp

49.9

Weak · 24 September 2026

1.4k

lines of production code

F#

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

LiteDB.FSharp is a .NET library that enables F\# developers to store and query F\# types in a LiteDB database. It provides serialization utilities for records, unions, and maps, along with type-safe query expressions and DBRef resolution. The system also includes build automation scripts and a comprehensive test suite to ensure compatibility with both JSON and TypeShape mappers.

Features

Added build and publish automation scripts for LiteDB.FSharp

The LiteDB.FSharp.Build project now includes new F\# scripts (Files.fs, Program.fs, Tools.fs) that automate the build, test, pack, and publish workflows for the library. Users can now execute build, test, pack, and publish commands via the build tooling, with the publish step automatically locating the NuGet package and pushing it to NuGet.org using an environment variable for the API key.

LiteDB.FSharp.Build · high confidence

Initial release of LiteDB.FSharp library

The library provides serialization utilities for LiteDB, enabling the storage of F\# types such as records, unions, and maps. It introduces a custom \FSharpBsonMapper\ for database initialization, supports type-safe query expressions via F\# quotations, and includes features like \DbRef\ resolution and inheritance mapping. The release also includes a solution file, NuGet configuration, and comprehensive documentation in the README.

(repo-wide) · high confidence

Behavioural changes

Refactored BSON serialization and query construction with new module structure

The library's codebase was reorganized into distinct modules: Bson.fs for core serialization/deserialization logic, Extensions.fs for LiteCollection and LiteRepository query extensions, Linq.fs for expression conversion, and Patterns.fs for quotation pattern matching. The legacy LiteDB.FSharp.fs file was removed. The FSharpBsonMapper was updated to use the new Bson module, and the Json module was expanded to handle more F\# types including maps, tuples, and inherited types. Query construction now supports string operators like IsNullOrEmpty and Contains.

LiteDB.FSharp · medium confidence

Fixes

Reset Ionide symbol cache

The symbol cache file (.ionide/symbolCache.db) has been reset to an empty state. This clears the local symbol database, which may help resolve issues with symbol resolution or identity, such as the DBRef query fix described in the commit messages.

.ionide · medium confidence

Test coverage

Refactored test suite with modular test files and dual mapper support

The test suite in LiteDB.FSharp.Tests was reorganized from a single monolithic file into separate modules for Bson, LiteDatabase, DBRef, and InheritedType scenarios. The test runner was updated to execute tests against both the JSON mapper and the new TypeShapeMapper, and the Fable.JsonConverter dependency was removed from the project references.

LiteDB.FSharp.Tests · high confidence

Dependencies

Migrate build project to .NET 5 and replace Paket with MSBuild

The \LiteDB.FSharp.Build\ project has been updated to target .NET 5.0, and the build tooling has been migrated from Paket to standard MSBuild project files. This includes the removal of \paket.dependencies\ and \paket.lock\ files, with the build dependencies now managed via \PackageReference\ elements in the \.fsproj\ file, specifically updating \Fake.Core.Environment\, \Fake.Core.Target\, and \FSharp.Core\ to their respective versions.

(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 51 → 50 (-0.9)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 83 → 84 (+1.3)
  • Architecture 100 → 97 (-3.1)
  • Maturity 46 → 44 (-1.9)
  • Readiness 32 → 32 (+0.0)
  • Security 96 → 90 (-6.3)

Resolved (6)

  • Duplicated block (6 lines × 2) (LiteDB.FSharp/Extensions.fs)
  • LiteDatabase.liteDatabaseUsage (cognitive 75) (LiteDB.FSharp.Tests/Tests.LiteDatabase.fs)
  • LiteDatabase.liteDatabaseUsage (cyclomatic 76) (LiteDB.FSharp.Tests/Tests.LiteDatabase.fs)
  • No exposed public API
  • Test reliability not included
  • dormant codebase — no living knowledge left to concentrate

New (7)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (6 lines × 2) (LiteDB.FSharp/Extensions.fs)
  • End-of-life runtime: .NET net5.0
  • Hotspot: LiteDB.FSharp/Json.fs (LiteDB.FSharp/Json.fs)
  • Hotspot: LiteDB.FSharp/Query.fs (LiteDB.FSharp/Query.fs)
  • No ADRs found

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

Survey your own repository

Zaid-Ajaj/LiteDB.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 24 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 b63ddf8eda4363f93f1e018c26435f6058128676 — 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-923689c465cf.