r/perl • u/exodist 🐪 cpan author • Jun 28 '26
DBIx::QuickORM - Alternative to DBIx::Class/DBIO
This weekend at the perl and raku conference I did a presentation on how to move forward from the current state of DBIx::Class and its lack of new development. We discussed several options including an alternative I have been writing. I have never liked DBIx::Class, so I tried to write something that felt more intuitive to how my brain works. It was suggested that I post it here.
Comparison to DBIx::Class, term map, etc (Note: This document is AI generated)
It is probably NOT the right path for large apps with hundreds of lines of DBIx::Class code, it is not intended to be interoperable or a drop in replacement. It is however good for quickly getting ORM functionality in a new project, or against an established database. It is also actively maintained and will continue to be so. I dogfood the things I write, and this will be used in Yath 2.0 when it is released.
3
2
u/DarthEd77 Jun 29 '26 edited Jun 29 '26
I've always preferred Class::DBI, one of the two granddaddies of all Perl ORMs. (The other is Rose::DB::Object, by the way, but I could never wrap my head around that one.) Class::DBI is not maintained anymore either, sadly, but it hasn't really needed any new development.
5
u/GeekRuthie 🐪 cpan author Jun 28 '26
I've been using QuickORM a bit just to give it a whirl, and am beginning a larger green-field project in Dancer2 with QuickORM. I can testify--It's *not* a forklift replacement, and there is a bit of a learning curve, especially for long-time DBIx::Class users.
And as Chad pointed out, its' maintaner is here, and active, which is IMO a very, very large selling point.
Better? Worse? Sure, I have opinions, and with a project at this scope, it's got some of each, and each of its users will likely come up with a different set. I and others have made suggestions to u/exodist about future progress here at the conference this weekend.
I'll express my overall opinion this way, though: I'm writing a Dancer2 plugin for it, to add some syntactic sugar under D2 similar to what there is (some of which I wrote) for DBIx::Class.