// the find
benavlabs/fastcrud
FastCRUD is a Python package for FastAPI, offering robust async CRUD operations and flexible endpoint creation utilities.
FastCRUD generates async CRUD endpoints for FastAPI + SQLAlchemy 2.0 apps. You give it a model and some Pydantic schemas, it gives you a full REST API with filtering, sorting, offset and cursor pagination, and join support. Aimed at developers who want to skip the boilerplate on standard data models without switching to a full admin framework.
Auto-detected join conditions across models is genuinely useful — most ORMs make you spell this out every time. Cursor-based pagination is included out of the box, which most similar tools skip. The two-tier usage model (auto-generated router vs. direct CRUD object in custom endpoints) is the right design: you can scaffold fast and still drop down when the auto-generated route doesn't fit. Test coverage is thorough — separate test suites for SQLAlchemy and SQLModel, with specific regression tests for cartesian product bugs in joins.
The auto-generated endpoints are schema-agnostic, so access control is your problem entirely — there's no hook for row-level permissions or ownership filters short of writing custom endpoints. The sqlalchemy-utils warning about NotImplementedError on non-native column types is a real footgun that you'll hit the moment you add something like UUID or CIDR from that package. Multi-step or transactional operations (create parent + children atomically) don't fit the model at all — you're back to writing it yourself. Stars-to-contributor ratio (1500 stars, 112 forks) suggests lots of people evaluate it but not many build on top of it, which may say something about stickiness in larger codebases.