I am excited about this release of RDB.
Rich Querying Model
Concise API: Developer-friendly & expressive.
Full IntelliSense without code generation.
TS & JS Ready
Browser-Friendly: Build web apps with RDB in Express
Rdb (Relational Database) is meant only for Relation Databases (sql). I have no plans on supporting document databases - that would probably a bad compromize. And the api would be affected in a negative way.
Rdb is used in commercial products at my employer Timpex (www.timpex.no). So it will definitely be maintained. The code was initially closed source in csharp, we refined it and released it as OSS in javascript.
It was created because we needed a solution with persistence ignorance and that does not have any constraints on foreign key naming, columns, table and so on. By persistence ignorance I mean not needing to call model.save() or pass the connection around everywhere - just edit the properties and commit the transaction.
Everything in rdb is developed TDD outside-in. So it has a lot of unit tests, but not that many integration tests. There are running examples in the demo repo though that could be considered as kind of integration tests.
Choices against sequelize and bookshelf: that is not my mission. If you want a closer integration with express.js, those orms are a better fit than rdb. My main focus on rdb was to keep the API simple and expose as little of the interior as possible - Tell Dont Ask principle.
How to expect rdb to evolve ?
-domain logic
-aggregate functions
-order by
-support sqlLite
Breaking:
- getAll removed; use getMany (same signature).
- getOne no longer accepts filter as first arg; move it to where.
Also:
- ExpressJS before/after hooks for row-level security.
- SQLite user-defined functions.
- Enums support.