What's the state of database agnosticism is Nim?
That is, suppose I want to write a Nim program that can talk to multiple backend databases, the specific one selected at runtime , mostly using the same code, but allowing to do specific customization for specific backends?
Ideally, something where I would define a column as "integer autoincrement", and the different versions of e.g. sqlite vs. pgsql would be automagically done for me - but at the very least, if I just stick to basic SQL (select, insert, delete,), that would work?
The best library I have used with these properties is https://github.com/web2py/pydal which was developed as part of web2py but is now also usable standalone. It only abstracts over standard SQL, letting one write code that is portable between databases, but it is not an ORM - you have to define the actual tables you use as tables. It abuses Python overloading to do that, though the approach taken by Araq in Ormin is probably superior in Nim.
(As a side note, it also abstracts SQL over things which aren't traditional DBMSs, with some limits - e.g., it exposes IMAP as a database of the message with columns reflecting read status, body, subject, etc).
So, other than Ormin which is very promising but not quite the same thing - where should I look?
I don't think we have any libraries that do this. The db_sqlite, db_mysql etc. libraries in the stdlib offer some agnosticism, but you still need to keep your SQL compatible with each backend.
We really need an independently written ORM library. Ormin looks good, but @Araq doesn't have the time to finish it and make it work well enough to be used in this forum for example (I just used db_sqlite).
So yeah, please write an ORM library :)