Boost logo

Boost :

From: Dominique Devienne (ddevienne_at_[hidden])
Date: 2024-03-25 11:10:07


On Fri, Mar 22, 2024 at 2:30 AM Klemens Morgenstern via Boost <
boost_at_[hidden]> wrote:

> A while back I asked about interest in a boost.sqlite library and got
> enough engagement that I think it's worth proposing.
>
> Hence I am seeking an endorsement and would like to see if someone
> wants to volunteer as review manager.
>
> Code: https://github.com/klemens-morgenstern/sqlite
> Docs: https://klemens.dev/sqlite/

I endorse Klemens library. I've looked at it in the (recent) past, and
liked it's design and implementation.
There are aspects of the library around lifetimes that could trip
beginners, and missing probably things, but that's for the review.

I'm a long standing SQLite user, still using it daily extensively, thus I
consider myself experienced in the domain.
We have our own wrappers (plural), and even code based on Fusion (used in
tests only) that I got here,
which would probably be much nicer using more modern C++ techniques.
Integration with PFR or Describe would also be pluses.

One very tricky area of SQLite are virtual tables, also used for
table-valued UDFs (user-defined functions),
which is another area we've wrapped (a looong time ago, so I don't remember
much), which is not addressed by Klemens,
but which would be a great help for those that need it (e.g. we have dozens
of vtables, backed by Boost.Multi-Index containers).

I'm aware of Roland Bock's sqlpp11 library, but Klemens library is
something else entirely.
Personally I'm not a fan of "generic" SQL libraries, and prefer specific
ones with "native" APIs for the RDBMS.
Unlike Ruben's MySQL library, it's "just" a wrapper around the native C
API, but there is a lot
of value in a well design and low-overhead wrapper to provide type-safety
and convenience.
Whether such a library belongs to Boost is not for me to say, but I'd
welcome it.

A library like Klemens is basically a building block for those that want to
write higher-level APIs or even cross-RDBMS generic libraries.
There's still a lot of value is a well designed, peer-reviewed, efficient
and well documented wrapper around SQLite. My $0.02. --DD


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk