DEV.co
Open-Source Databases · fsprojects

Rezoom.SQL

Rezoom.SQL is an F# ORM that statically typechecks SQL at compile-time via an F# type provider, translating to SQLite, SQL Server, and PostgreSQL. It catches SQL errors, schema mismatches, and type conflicts before runtime, reducing debugging overhead and enabling safe refactoring when schemas change.

Source: GitHub — github.com/fsprojects/Rezoom.SQL
680
GitHub stars
23
Forks
F#
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryfsprojects/Rezoom.SQL
Ownerfsprojects
Primary languageF#
LicenseMIT — OSI-approved
Stars680
Forks23
Open issues18
Latest releaseUnknown
Last updated2026-06-24
Sourcehttps://github.com/fsprojects/Rezoom.SQL

What Rezoom.SQL is

Generative type provider integrated with F# compiler that parses migration scripts to infer database schema, validates query syntax against 45+ error categories, and generates type-safe .NET query objects. Designed to work with Rezoom framework for automatic query batching and transaction-level caching using compiler-generated query metadata (IDs, side-effect flags, table read/write bitmasks).

Quickstart

Get the Rezoom.SQL source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/fsprojects/Rezoom.SQL.gitcd Rezoom.SQL# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

F# applications with frequent schema changes

Compile-time checking catches all affected queries when you rename or restructure columns, eliminating runtime surprises and enabling confident large-scale refactors.

Multi-database deployments

Single query dialect compiles to SQLite, SQL Server, and PostgreSQL, reducing duplication and test burden when supporting multiple backends.

Team-based development with independent migration features

Migration tree reordering allows concurrent feature branches to add tables/columns without enforcing a global merge order, simplifying parallel development workflows.

Implementation considerations

  • F# compiler and runtime must be available in build pipeline; .NET Framework or .NET Core version compatibility should be verified before adoption.
  • Migration scripts become the schema source of truth; establish clear naming conventions and versioning discipline to prevent typechecker desynchronization.
  • Query playground (rzsql.com) is useful for learning dialect limits; budget time to map existing SQL patterns to Rezoom.SQL's supported syntax.
  • Generated types can be consumed from C#/VB.NET but with awkward nullability representations unless C#-style `System.Nullable<T>` option is enabled at project setup.
  • Type provider regeneration happens at compile time; large migration histories may increase build duration—profile early in larger projects.

When to avoid it — and what to weigh

  • Non-F# primary codebase — Type provider is F#-specific; while generated types work in C#/VB.NET, the authoring experience and tooling are F#-centric. Setup and maintenance friction increases in polyglot teams.
  • Dynamic query requirements — Static typechecking requires query structure known at compile time. Systems needing runtime-constructed queries or heavy ad-hoc SQL will find the constraints frustrating.
  • Minimal operational overhead required — Migration script parsing and schema inference add build-time complexity. Simpler ORMs (e.g., Dapper, Entity Framework Core) may be faster to integrate for straightforward projects.
  • MySQL or other unsupported backends — Currently supports only SQLite, SQL Server, and PostgreSQL. Other RDBMS require custom backend implementation (scope and effort unknown).

License & commercial use

MIT License. Permissive OSI-approved license allowing unrestricted commercial use, modification, and distribution with attribution and no warranty.

MIT license explicitly permits commercial use. No licensing restrictions apply. No proprietary dependencies documented; review transitive dependencies (NuGet packages) for any conflicting licenses before production deployment.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Static typechecking cannot prevent SQL injection via string concatenation outside the type provider's purview; developers must not bypass the dialect. No security audit, penetration test results, or vulnerability disclosure process documented. Evaluate parameterization strategy for untrusted inputs. Migration script handling (parsing, evaluation) is not audited for logic flaws; apply standard code review discipline.

Alternatives to consider

Entity Framework Core (EF Core)

Language-agnostic, broader ecosystem, mature, multi-database. Lacks compile-time SQL validation; requires .NET runtime. Preferred if C# is primary language or team lacks F# expertise.

Dapper

Lightweight, zero-overhead mapper, minimal complexity. No compile-time checking; requires manual query review. Preferred if SQL control and simplicity outweigh type safety.

sqlc (Go/Rust/Python)

Similar compile-time SQL checking via code generation; polyglot (not F#-only). Preferred if non-.NET stack or language-agnostic query authoring is required.

Software development agency

Build on Rezoom.SQL with DEV.co software developers

If your team uses F# and values type safety, Rezoom.SQL drastically reduces database-related runtime errors and makes refactoring painless. Start with the tutorial and query playground—no setup required.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

Rezoom.SQL FAQ

Do I need Rezoom to use Rezoom.SQL?
No. Rezoom.SQL works standalone for basic queries. Rezoom is optional and adds automatic batching, plan-based transaction composition, and transaction-level caching—most valuable for multi-query workloads.
Can I use Rezoom.SQL from C# or VB.NET?
Yes. The type provider generates standard .NET types consumable from any .NET language. F# is required only to author migrations and queries; C# projects can reference the F# library and use generated types directly.
What happens if I change my schema without updating migrations?
The type provider will fail to compile, pointing to mismatched queries and schema. This is intentional: compile-time errors force you to update queries before deployment.
How do I deploy without rebuilding the entire F# project?
Build the F# project (with type provider) once to generate and validate types. Generated types are .NET assemblies; dependent projects can reference them without re-running the type provider.

Custom software development services

From first prototype to production, DEV.co delivers software development services around tools like Rezoom.SQL. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source databases and beyond.

Ready to eliminate SQL bugs at compile time?

If your team uses F# and values type safety, Rezoom.SQL drastically reduces database-related runtime errors and makes refactoring painless. Start with the tutorial and query playground—no setup required.