typelevel/doobie
Functional JDBC layer for Scala. observed · 2026-08-28
Health v2 · maintenance only
87/100
- Activity 99
- Release rhythm 64
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: 98
- age_days: 4664
- days_rel: 82
- days_push: 9
- n_releases_24m: 8
Adoption not part of the score
2225 stars · 379 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
doobie is a pure functional JDBC layer for Scala built on Cats and Cats Effect, providing a monadic API (ConnectionIO) for constructing type-safe database programs. It is not an ORM or relational algebra; it maps JDBC operations into composable functional values with query typechecking and streaming support.
Use cases
- query a SQL database from Scala in a functional style
- map JDBC result rows to Scala case classes
- typecheck SQL queries against the database schema at test time
- stream large query results with fs2
- manage database connections and transactions with a Transactor
- write unit-testable database code in Cats Effect applications
When to choose
- you use Cats/Cats Effect and want pure functional database access on the JVM
- you want type-safe JDBC mappings and query validation without a full ORM
- you need composable, streamable database programs in Scala 2 or 3
When to avoid
- you want an ORM with schema management, relations, and migrations
- your team is not familiar with functional programming and effect systems
- you are not on the JVM/Scala ecosystem
Facets
library · maturity active
database-driver orm testing databases backend developer-tools jvm jdbc scala cats-effect functional-programming typelevel sql transactor fs2
10 sources
- readme: https://github.com/typelevel/doobie · fetched 2026-08-28 · 3ca34f244fd8
- homepage: https://typelevel.org/doobie/ · fetched 2026-08-29 · 8a87db032a1f
- site_page: https://typelevel.org/doobie/docs/index.html · fetched 2026-08-29 · cb455d2696d5
- site_page: https://typelevel.org/doobie/docs/01-Introduction.html · fetched 2026-08-29 · c207bdd717b2
- site_page: https://typelevel.org/doobie/docs/02-Toolkit.html · fetched 2026-08-29 · 575611955647
- site_page: https://typelevel.org/doobie/docs/03-Connecting.html · fetched 2026-08-29 · 4c71ebd3d0eb
- site_page: https://typelevel.org/doobie/docs/04-Selecting.html · fetched 2026-08-29 · f5f2bd08c4b3
- site_page: https://typelevel.org/doobie/docs/05-Parameterized.html · fetched 2026-08-29 · e018b12504ae
- site_page: https://typelevel.org/doobie/docs/06-Checking.html · fetched 2026-08-29 · 02f659d0a6f3
- site_page: https://typelevel.org/doobie/docs/07-Updating.html · fetched 2026-08-29 · 3668afacdcd0
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| typelevel/doobie | main | 87 |
For agents
markdown · JSON · MCP: product_card(name="typelevel/doobie")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem