rmunn/Ficus
60.3
Adequate · 3 October 2026
7.4k
lines of production code
F#
primary language
2
measurements over time
What this system is
Ficus is a .NET library providing fast, immutable data structures, specifically featuring a Relaxed Radix Balanced (RRB) Vector with both persistent and transient APIs. It supports multiple .NET versions and includes comprehensive property-based testing to ensure correctness. The project also maintains a documentation site with modern styling and dark mode support.
Features
Initial release of Ficus RRBVector with persistent and transient APIs
Ficus introduces a new Relaxed Radix Balanced (RRB) Vector implementation, providing a persistent, immutable data structure with O(1) push/pop and effectively O(1) concatenation and splitting. The library exposes a public API for creating, modifying, and querying vectors, along with a transient mode that allows efficient bulk updates before materializing a new persistent instance. The implementation includes internal node types (full, relaxed, leaf) and array extension utilities to support these operations.
src/Ficus · high confidence
Behavioural changes
Build system migrated to .NET 8
The build infrastructure has been updated to target .NET 8, replacing the previous .NET 6 target. This change includes new build scripts (Changelog.fs, FsDocs.fs, build.fs) and a corresponding packages.lock.json that resolves dependencies for the net8.0 framework, ensuring the build tooling runs on the newer runtime.
build · high confidence
Documentation site adopts Bootstrap 5 and dark mode support
The documentation site has been updated to use a new HTML template based on Bootstrap 5, replacing the previous styling. This change introduces a user-facing dark mode toggle in the navigation bar, allowing readers to switch between light, dark, and auto themes. The visual presentation of the documentation is also refreshed with new CSS files defining specific color palettes for code highlighting, typography, and layout adjustments.
docsSrc · high confidence
Removed legacy Paket MSBuild integration files
The legacy Paket MSBuild integration files (.paket/Paket.Restore.targets, .paket/paket.exe.config, and .paket/paket.targets) have been removed from the project. This change eliminates the custom MSBuild targets that previously handled package restoration and NuSpec fixing via the Paket tool, indicating a migration away from this specific Paket-based build integration approach.
.paket · high confidence
Repository infrastructure and build configuration updates
This change introduces several foundational updates to the project's repository structure and build process. It adds configuration files for Git (\.fantomasignore\, \.git-blame-ignore-revs\, \.gitattributes\) to standardize line endings, manage formatting commits, and handle binary assets via Git LFS. The build system is updated with new MSBuild targets (\Directory.Build.props\ and \Directory.Build.targets\) that enforce Fantomas code formatting and manage dotnet local tools. Additionally, the solution structure is defined in \Ficus.slnx\, and the project targets the .NET SDK version 10.0.100 as specified in \global.json\. The changelog is also initialized to document future releases.
(repo-wide) · high confidence
Test coverage
Comprehensive FsCheck property and stateful command tests for RRBVector; Initial comprehensive test suite for RRBVector implementation.
Dependencies
Migrate to .NET 10 and adopt Central Package Management
The project has upgraded its build and runtime targets to .NET 10, with the main library now supporting netstandard2.0, net8.0, net9.0, and net10.0, while the test suite targets net10.0 exclusively. This change replaces the legacy Paket dependency manager with MSBuild Central Package Management (via Directory.Packages.props), updating core dependencies such as FSharp.Core to 10.0.102, Expecto to 10.2.2, and FAKE to 6.1.4. Additionally, the build infrastructure was updated to target net8.0, and the library's description was refined to 'Fast, immutable collections based on tree structures'.
(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 → 60 (+8.1)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 86 → 86 (+0.0)
- Architecture 99 → 100 (+0.5)
- Maturity 39 → 59 (+20.0)
- Readiness 59 → 59 (+0.0)
- Security 82 → 82 (+0.0)
- Accessibility 53 → 53 (+0.0)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Architecture
- Unchanged — 0 containers · 2 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
rmunn/Ficus 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 2e14ba89ca2eb8be5fe78518ba78937c11988718 — 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.