DORM - a new D ORM
bauss
jacobbauss at gmail.com
Thu Nov 24 07:42:08 UTC 2022
On Thursday, 24 November 2022 at 06:19:24 UTC, WebFreak001 wrote:
> Hello!
>
> at our hackerspace we have been working tirelessly for the past
> half year to bring a great new ORM experience to D and Rust.
> The D side of this ORM can be found at:
>
> https://code.dlang.org/packages/dorm
>
> It provides a nice D API to directly save data to any database,
> restore data, list data, etc.
>
> Current features:
>
> - Declarative table/model definitions from D, with rich UDA
> annotations
> - Command Line Interface to create migrations automatically
> from the D application, good for checking into the source
> repository and to distribute with the app
> - Migrations allow both users and developers to update the
> database in their deployed app instances when needed, coming
> from any (or no) previous version
> - High-level APIs both in D and Rust
> - Support for MySQL, PostgreSQL and sqlite3 (MySQL and
> PostgreSQL drivers written in safe Rust)
> - Automatic mapping between defined D datatypes and SQL
> - Support for slim SQL queries by only using and selecting
> columns that are needed
> - CRUD interface with support for dereferencing foreign keys,
> embedded structs, advanced SQL conditions that can represent
> almost any SQL condition using D code that looks similar to
> regular if statements
> - Support for transactions
> - Raw SQL API
> - Streaming SQL responses (range interface)
> - Async support with vibe.d - also works standalone with and
> without multithreading from the application
> - Multithreaded connection pool
>
> Documentation can be found here: https://rorm.rs/ (although
> very WIP still!)
>
> Minimal sample project:
> https://github.com/rorm-orm/dorm/tree/ee221e6c66bf460b77592c208d1620a93a007a66/testapp
>
> Bunch of integration tests, that show all the functionality:
> https://github.com/rorm-orm/dorm/tree/ee221e6c66bf460b77592c208d1620a93a007a66/integration-tests
>
> Feel free to try it out and open issues! The API will probably
> still change a bunch in the future. However the current
> modelling capabilities should already suffice for a wide
> selection of apps you might want to test this in.
>
> Looking forward to your feedback.
This looks very promising. The embedded feature looks great.
More information about the Digitalmars-d-announce
mailing list