daz10000/fss
52.0
Adequate · 3 October 2026
3.9k
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a lightweight F\# web server framework that provides a unified database abstraction layer for multiple SQL engines. It enables HTTP handling with features like session management, templating, and file serving, while offering ORM-style wrappers for PostgreSQL, MySQL, SQLite, DuckDB, and Microsoft SQL Server. The library supports dynamic SQL execution, schema introspection, and connection pooling across modern .NET runtimes.
How it got here
2014 — Initial scaffolding and framework foundation
5 changes.
The project established its core repository structure, build workflows, and multi-database provider support while releasing initial example applications to demonstrate web server capabilities. Subsequent work focused on modernizing the runtime environment by migrating to .NET 10 and updating core dependencies, alongside extending database support with a new Microsoft SQL Server wrapper.
2015–2025 — Fss library initial release and expansion
9 changes.
This period established the foundational Fss web server and database abstraction layer, introducing core HTTP handling, templating, and connection pooling. It expanded database support by adding dedicated ORM wrappers for MySQL, PostgreSQL, SQLite, and DuckDB, alongside comprehensive unit and integration tests. The release also implemented FAKE-based build automation to streamline packaging and distribution.
Features
Added DuckDB CSV query example
The Examples directory now includes a new F\# script (test\_duckdb.fsx) and a sample CSV file (test.csv) demonstrating how to use the Fss.Data.DuckDB library to query a CSV file directly from memory using DuckDB.NET.Data.Full.
Examples · high confidence
Added F\# wrapper for Microsoft SQL Server database operations
Introduced a new module in the Fss-MsSql library that provides a dynamic operator-based wrapper around the standard System.Data.SqlClient classes. This addition enables users to interact with Microsoft SQL Server databases using a more fluent, dynamic syntax in F\#, including support for parameterized queries and array parameter expansion for IN statements.
Fss-MsSql · high confidence
Added MySQL provider support and .NET 4.5 target
The FssTest project now includes an app.config file that registers the MySQL Data Provider (MySql.Data version 6.9.8.0) and targets the .NET Framework 4.5 runtime, enabling database tests to run against MySQL in addition to existing providers.
FssTest · high confidence
Initial release of FSS F\# Web Server example application
This change introduces the FSS (F\# Web Server) example application, providing a demonstration of the framework's capabilities. The included code showcases various HTTP handling features, including string manipulation, date/time reporting, integer arithmetic, and random XML generation. It also demonstrates advanced server behaviors such as handling POST requests for image uploads, serving binary files with custom headers (like Content-Disposition for downloads), parsing URL parameters and query strings, supporting Unicode text, managing cookies with expiration dates, reading request headers, simulating slow responses, and handling basic login flows with session ID generation and SHA256 hashing.
FssExample · high confidence
Initial release of FSS login example application
The FssLoginExample application is introduced, providing a sample F\# web server that implements a basic login system. The application runs on .NET Framework 4.5 and includes a login handler that issues session cookies upon successful authentication (using a hardcoded 'test' password for demonstration) and displays user headers and cookies. The configuration file sets up assembly binding redirects for FSharp.Core version 4.3.1.0.
FssLoginExample · high confidence
Initial release of the Fss Postgres wrapper
This change introduces the \fss\_postgres\ component, providing an F\# ORM wrapper for PostgreSQL. It includes the core database implementation in \db\_pg.fs\, which handles connection management, schema introspection (including enum and search path support), and primary key detection via the \PgCustomizations\ module. The package is configured with dependencies on \Npgsql\ and \FSharp.Core\, and is published as version 1.5.1.0-beta3.
_src/fss\postgres · high confidence
Initial release of the Fss web server and database libraries
This change introduces the Fss (F\# Server) library, a lightweight web server and database abstraction layer for .NET. The \src/fss\ directory provides the core HTTP server implementation, including session management via signed cookies, a Jinja2-style templating engine, JSON and multipart form parsing, and a connection pooling system. It also includes a generic database wrapper (\db\_common.fs\) that supports dynamic SQL execution and schema introspection, with specific database providers added for MySQL (\src/fss\_mysql\) and SQLite/Postgres support indicated in the codebase. The release establishes the foundational architecture for the library, including version 1.4.1.0.
src/fss · high confidence
Initial repository scaffolding and build configuration
The repository has been initialized with a new project structure, including a solution file (fss.sln) that organizes the core server, database providers (Postgres, MySQL, SQLite, DuckDB), and test projects. Build and release workflows are established using FAKE (via build.sh, build.cmd, and fake.sh) and Paket for dependency management. Additionally, standard repository files such as .gitignore, LICENSE (Apache 2.0), and updated documentation (README.md, RELEASE\_NOTES.md) have been added to support development and distribution.
(repo-wide) · high confidence
Introduce DuckDB database support
Added a new DuckDB integration module (db\_duckdb.fs) that provides an F\# ORM wrapper for DuckDB, implementing the standard Fss.Data.Common customization interface to handle connection management, schema inspection, and primary key detection. This change includes the necessary build configuration files (App.config, nuspec, paket references) to package and distribute this new capability.
_src/fss\duckdb · high confidence
Introduction of F\# SQLite ORM wrapper
A new standalone SQLite database wrapper module has been added to the Fss library, providing an F\# ORM interface for SQLite databases. This component allows users to interact with SQLite using dynamic SQL connections and transactions, leveraging Microsoft.Data.Sqlite for modern .NET compatibility. The implementation includes schema retrieval and column detail mapping specific to SQLite, enabling database operations without requiring other Fss dependencies.
_src/fss\sqlite · high confidence
New F\# playground for PostgreSQL and SQLite experimentation
Added a new F\# application in src/Playground that serves as a testbed for database interactions, specifically supporting PostgreSQL via Npgsql and SQLite via Microsoft.Data.Sqlite. The project includes a sample program, configuration for Npgsql binding redirects, and reference files for the required libraries, enabling users to experiment with enum/schema support and connection handling in a modern .NET environment.
src/Playground · high confidence
Behavioural changes
Introduction of FAKE-based build automation
The project now uses a FAKE (F\# Make) build script located in the build directory to manage the build process. This new infrastructure automates key tasks including generating assembly information, building the library and test projects, running unit tests, and packaging/publishing NuGet packages via Paket. The build system relies on specific FAKE libraries for .NET CLI, assembly info generation, file system operations, and Git integration.
build · high confidence
Test coverage
Added unit tests for JSON parsing, template engine, connection pooling, and database providers
Added a new test suite in tests/fss.Tests covering core library functionality. This includes unit tests for the JSON parser (handling integers, floats, and exponential notation), the template engine (validating nested loops, conditionals, and variable extraction), and the connection pool (verifying thread-safe token acquisition and release). Additionally, integration tests were added for the MySQL, PostgreSQL, and SQLite database providers, exercising connection management, table creation, and CRUD operations including nullable fields and serial columns.
tests · high confidence
Dependencies
Upgrade to .NET 10 and update core dependencies
The project has been migrated from .NET Framework 4.5 to .NET 10.0 across all source, test, and build projects. This update includes upgrading FSharp.Core to version 10.1.201, replacing the legacy System.Data.SQLite with Microsoft.Data.Sqlite (v9.0.14), and updating Npgsql to v10.0.2, MySql.Data to v9.6, and Newtonsoft.Json to v13.0.4 to ensure compatibility with the new runtime.
(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 → 52 (-0.2)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 62 → 61 (-1.3)
- Architecture 99 → 99 (+0.6)
- Maturity 46 → 46 (+0.0)
- Readiness 41 → 41 (+0.0)
- Security 98 → 98 (-0.5)
Resolved (2)
- Documentation: contradicts the code (docs/linux_install_instructions.txt)
- Documentation: other issue (docs/testing.txt)
New (8)
- Documentation: no installation or build instructions (README.md)
- Documentation: no project overview (README.md)
- Duplicated block (11–12 lines × 2) (FssExample/example.fs)
- Duplicated block (13 lines × 2) (FssExample/example.fs)
- Duplicated block (5 lines × 2) (FssExample/example.fs)
- Duplicated block (6 lines × 2) (FssExample/example.fs)
- Duplicated block (8–10 lines × 3) (FssExample/example.fs)
- Duplicated block (9 lines × 2) (FssExample/example.fs)
Architecture
- Containers 0 added · 0 removed · contexts 4 added · 0 removed · edges 3 added · 0 removed
Added bounded contexts (4)
- fss
- fss.Tests
- fss_mysql
- fss_postgres
Added dependency edges (3)
- fss.Tests → fss (coupling)
- fss.Tests → fss_mysql
- fss.Tests → fss_postgres
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
daz10000/fss 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 baa2b5af01f56c1576ee9ca1216d2efc550bd5b1 — 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.