// the find
kennethreitz/records
SQL for Humans™
Records is a thin wrapper around SQLAlchemy that lets you run raw SQL and get back row objects you can access by name, index, or key. It's for people who want to write SQL themselves but not deal with SQLAlchemy's full machinery. The Tablib integration makes it convenient for data export workflows.
The API surface is genuinely minimal — one file, one class, and you're querying databases in three lines. Safe parameterization is built in via SQLAlchemy's bind params, so you're not rolling your own escaping. The Tablib integration is a real time-saver for the common 'run query, export to CSV/Excel/JSON' workflow. $DATABASE_URL support is a nice touch for twelve-factor apps.
The entire library is a single 400-line file last touched in bursts — maintenance is clearly not a priority, and kennethreitz projects historically go dormant. No async support at all, which is a hard blocker if you're on FastAPI or any async stack. The recommendation to use pipenv in 2026 is a red flag for project currency. Testing coverage is thin — four test files, mostly smoke tests — so edge cases in type handling or driver-specific behavior are on you.