typelevel/doobie
Doobie is a functional, type-safe database access library for Scala that provides a clean, composable API for interacting with relational databases. It supports automatic derivation of database type mappings for common Scala types and offers deep integrations with PostgreSQL, H2, and MySQL, including specialized handling for JSON, geometric, and range data types. The system is designed for robustness, featuring built-in support for asynchronous cancellation, structured logging, and OpenTelemetry tracing. Additionally, it includes comprehensive testing utilities for verifying SQL queries and updates across multiple Scala versions and testing frameworks.
54.5
Adequate · 3 August 2026
23k
lines of production code
Scala
primary language
2
bus factor · 203 authors in all
3
measurements over time
How it got here
2013–2017 · Doobie 1.0 migration and modernization
This period marks the comprehensive migration of the Doobie library to Cats Effect 3 and Scala 3, replacing the legacy Free monad-based API with a modern, effect-based approach. The codebase was significantly refactored to remove obsolete abstractions and introduce automated code generation for algebraic structures, while simultaneously expanding support for PostgreSQL, H2, and other databases with new high-level APIs and type mappings.
23 changes
2018–2020 · Scala 3 and PostgreSQL support
This period focused on modernizing the codebase for Scala 3 compatibility and expanding PostgreSQL type support. Key changes included migrating package structures, adding Scala 3-specific derivation for Postgres Text types, and introducing a WeakAsync typeclass for improved cancellation semantics. The work was heavily supported by extensive test coverage for these new features and utilities.
21 changes
2021–2026 · Testing and integration expansion
This period focused on expanding Doobie's ecosystem by adding integration modules for munit, weaver, and otel4s, alongside new features for PostgreSQL ranges, MySQL date types, and H2 JSON support. A significant portion of the work involved comprehensive test coverage for these new features, as well as adding test utilities and platform-specific test suites across the codebase.
19 changes
Survey your own repository
typelevel/doobie 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 the surveyor at a repository you know and see whether you agree with it.
About this page
- The description of this project is derived from its own commit history, not from its README.
- The score is its highest published measurement, taken on 3 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 460f7af473 — the exact code this score is about.
- Scored under rubric rubric-2026.08.18. Score the same commit under that rubric and you get the same number.