# stephenafamo/bob

SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite

Repository: https://github.com/stephenafamo/bob
Canonical: https://ross.abutalabs.com/products/stephenafamo-bob
Homepage: https://bob.stephenafamo.com
Language: Go
License: MIT
License Family: permissive
Topics: golang, mysql, query-builder, sql, postgres, postgresql, psql, sqlite, sqlite3, database, hacktoberfest, orm
Last push: 2026-08-17T12:38:33+00:00

## Health v2 (maintenance only)
Score: 98/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 97, longevity 100
- inputs: {"age_days": 1596, "days_push": 16, "days_rel": 23, "gap_med": 6, "n_releases_24m": 30}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1777, forks 113 (observed 2026-08-28T04:05:34.726142+00:00)

## What it is
Bob is a Go SQL access toolkit providing a fluent, dialect-aware query builder for PostgreSQL, MySQL, and SQLite, plus a database-first ORM with code generation of typed models, factories, and sqlc-style query code. It emphasizes progressive enhancement from raw SQL strings to fully typed queries.

## Use cases
- build type-safe SQL queries in Go without an ORM
- generate Go models and factories from an existing database schema
- replace GORM or SQLBoiler with a database-first ORM
- generate typed code for hand-written SQL queries like sqlc
- write dialect-specific queries for Postgres, MySQL, or SQLite
- eager-load related models based on foreign keys
- generate test fixtures for database-backed Go code

## When to choose
- you prefer a database-first workflow with schema-driven code generation
- you want progressive adoption from raw SQL to typed models
- you need strong typing and full autocomplete for queries
- you want sqlc-like query codegen plus ORM features in one toolkit

## When to avoid
- you want a migration tool to create your schema (Bob expects the schema to already exist)
- you prefer a code-first ORM that defines models in Go
- your project does not use PostgreSQL, MySQL, or SQLite

## Facets
- artifact type: library
- maturity: active
- function: orm, database, database-driver
- domain: databases, backend, developer-tools
- platform: go, windows, cross-platform
- tags: query-builder, sql, postgresql, mysql, sqlite, code-generation, database-first, sqlc-alternative, factory-pattern, linux, macos

## Member repositories
- stephenafamo/bob (main) score 98

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:34.726142+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:25:14.362303+00:00, confidence not recorded.
  - readme: https://github.com/stephenafamo/bob (fetched 2026-08-28T04:05:34.726142+00:00, sha 13b795ef0176)
  - homepage: https://bob.stephenafamo.com (fetched 2026-08-29T11:03:39.972056+00:00, sha a25e114229bc)
  - site_page: https://bob.stephenafamo.com/docs/query-builder/intro (fetched 2026-08-29T11:03:39.981247+00:00, sha 7036fe702b4d)
  - site_page: https://bob.stephenafamo.com/docs/query-builder/psql/how-to-use (fetched 2026-08-29T11:03:39.983259+00:00, sha e0b0cbbf952b)
  - site_page: https://bob.stephenafamo.com/docs/query-builder/mysql/how-to-use (fetched 2026-08-29T11:03:39.985004+00:00, sha f8d87532b974)
  - site_page: https://bob.stephenafamo.com/docs/query-builder/sqlite/how-to-use (fetched 2026-08-29T11:03:39.986549+00:00, sha 1377aa0f47f6)
  - site_page: https://bob.stephenafamo.com/docs/code-generation/intro (fetched 2026-08-29T11:03:39.987991+00:00, sha 7dcf50c1976d)
  - site_page: https://bob.stephenafamo.com/docs/code-generation/configuration (fetched 2026-08-29T11:03:39.989884+00:00, sha 4c4dc12d2458)
  - site_page: https://bob.stephenafamo.com/docs/code-generation/psql (fetched 2026-08-29T11:03:40.002099+00:00, sha 50e2eac59791)
  - site_page: https://bob.stephenafamo.com/docs/code-generation/mysql (fetched 2026-08-29T11:03:40.004442+00:00, sha b4a13d9dc678)
- Data as of 2026-08-30T08:39:29.467469+00:00.
