On Fri, Mar 22, 2024 at 2:30 AM Klemens Morgenstern via Boost < boost@lists.boost.org> 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