Skip to content
CAI
Software that uses CAICheck a score

rspeele/FParsec-Pipes

46.2

Weak · 3 October 2026

791

lines of production code

F#

with JavaScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a collection of F\# libraries and examples focused on parser combinator techniques, specifically building upon the FParsec framework. It includes FParsec-Pipes, which extends parsing capabilities with pipe-based combinators, range syntax, and operator precedence handling, alongside a dedicated SQLite query parser and AST implementation. The repository also provides comprehensive documentation, modern .NET support, and extensive test suites to validate these parsing tools.

Features

FParsec-Pipes v1.1.2: New range/quantity syntax, case-insensitive parsing, and operator precedence support

This release introduces several new capabilities for building FParsec parsers. Users can now define repeated patterns using the new \qty.\[min..max\]\ range syntax and \qty.\[n\]\ exact quantity syntax, which support optional separators. A new \ci\ marker allows case-insensitive parsing of characters and strings (e.g., \ci "test"\). The library also adds an operator precedence parser module (\Precedence.fs\) supporting prefix, postfix, infix, and ternary operators with configurable associativity. Additionally, the internal \IPipeLink\ interface has been replaced with a \PipeLink\ abstract class, and the \app.config\ file has been removed to simplify the NuGet package. The assembly version has been bumped to 1.1.2.0.

FParsec-Pipes · high confidence

Initial documentation site for FParsec-Pipes

The FParsec-Pipes documentation site has been added, providing an introduction and a comprehensive API reference for the library. The site includes an Intro page explaining the library's pipe-based combinators and default parser operators, and a Reference page detailing the syntax for pipes, backtracking, and repetition. The documentation is generated from F\# script files (Intro.fsx, Reference.fsx) using FSharp.Formatting, with a build script (build.fsx) and custom styling (style.css) to render the HTML output.

FParsec-Pipes-Doc · high confidence

Introduce SQLite query parser and AST in the Examples project

The Examples.SQLite location now includes a complete SQL parser and Abstract Syntax Tree (AST) for SQLite queries, implemented in F\# using FParsec. This addition enables the parsing of a wide range of SQL constructs, including SELECT statements (with joins, grouping, ordering, and limits), data definition statements (CREATE TABLE, CREATE INDEX, CREATE VIEW, ALTER TABLE), data manipulation statements (INSERT, UPDATE, DELETE), and various expressions (literals, operators, functions, subqueries). The parser handles reserved keywords, quoted identifiers, and complex syntax rules, supported by unit tests that validate parsing against standard SQL patterns and SQLite test files.

Examples.SQLite · high confidence

Introduction of FParsec.Pipes.Core library

A new core library module has been added to the project, providing a basic 'Say' module with a 'hello' function that prints a greeting. This change establishes the foundational code structure for the FParsec.Pipes.Core component.

FParsec.Pipes.Core · high confidence

Behavioural changes

Solution upgraded to Visual Studio 17 and includes SQLite example project

The solution file has been updated to target Visual Studio 17 (version 17.7), replacing the previous Visual Studio 14 configuration. Additionally, a new project named 'Examples.SQLite' has been added to the solution, providing a dedicated example for SQLite usage alongside the main library and test projects.

(repo-wide) · high confidence

Test coverage

Added SQLite SELECT regression tests; New test suite for parser operators and precedence.

Dependencies

FParsec-Pipes rebase to modern .NET with FParsec 1.1.1

The FParsec-Pipes library has been modernized to target .NET Standard 2.0, .NET 8.0, and .NET 10.0, replacing the legacy .NET Framework 4.6 build. This update upgrades the FParsec dependency from version 1.0.2 to 1.1.1 and FSharp.Core to 8.0.401, while migrating the project from the legacy packages.config format to SDK-style package references. The core library now includes XML documentation generation and proper NuGet metadata, and the test suite has been updated to use MSTest and the .NET Test SDK on .NET 10.0.

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

Lenses

  • Code Health 96 → 96 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 37 → 37 (+0.0)
  • Readiness 37 → 37 (+0.0)
  • Security 80 → 77 (-2.9)
  • Accessibility 52 → 52 (+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

rspeele/FParsec-Pipes 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 4f830c880973600a80dd06524e1a07e33932037a — 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.