No description
- TypeScript 98.4%
- JavaScript 1.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| packages | ||
| .gitignore | ||
| grimo.code-workspace | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
Grimo
Postgres-first data framework
⚠️ Under heavy construction, pre-alpha state! ⚠️
⚠️ Working directly on master branch - I will break it! ⚠️
- Automatically build an API from your database schema and use it directly on the front-end.
- Stop writing boilerplate HTTP endpoints. Your database has tables, views, and functions.
- Stop using ORMs, micro-ORMs, & mappers. Your database has types.
- Stop writing authentication & authorization middleware. Your database has row-level security.
- A relational database is a great place for "business logic".
Similar Projects
These are much more mature, consider them instead!
Most of these libraries are meant for server-side DB access. Grimo is focused on eliminating the server-side as much as possible (similar to Supabase).
Roadmap
Basic features
- Schema discovery
- Strongly typed API generator
- SELECT and function query builder
- OpenAPI document generation
- Example project
- Tests
Basic SQL operations (@grimo/db-transport)
- Select queries
- Inserts
- Updates
- Deletes
- Function calls
Query Builder (@grimo/api-client)
- Selects
- Inserts
- Updates
- Deletes
- Function calls
- Support native Date, BigInt in generated types & queries, convert in/out of transports
- Joins
DISTINCTCOUNTGROUP BY- Properly type views with
updatable/insertable - Strongly typed
.wherevalues
Schema Discovery & Metadata
- Tables
- Views
- Functions
- Composite types
- Enums
- Domains
- Primary keys
- Foreign keys
pg_tagged_unionssupport- Binary data types
Middleware
middleware-expressmiddleware-koamiddleware-hattipmiddleware-fastifymiddleware-bunmiddleware-elysiamiddleware-hono
Transports
transport-webtransport-db(partial)transport-supabase(experimental)
Backlog
- Investigate decoupling from
pg-promise- unsure about deno support.postgressupports all three runtimes but does not provide necessary standalone escaping/formatting generate-rescriptpackage- Reusable authentication & authorization
- Realtime streams
- Tooling/guidance on schema diffing migrations
- Investigate making a stand-alone server package
build-schemapackage for simple conventional concat/config of .sql files