GlueSQL: SQL database engine as a library
github.com
github.com
Rust used a Datalog library inside the borrow checker for this; I’d like to bring similar model to more languages so that some kinds of refactors or lints written as queries could potentially be shared between languages - for example, a lint rule that prohibits optional arguments to functions.
I wonder if GlueSQL would work naturally as this kind of “OSQuery for source code”.
https://github.com/apache/arrow-datafusion/blob/master/READM...
There are SQLite(OLTP), DuckDB(OLAP) and some engine-based project like mentioned Apache Arrow(https://arrow.apache.org/)(OLAP): Apache Arrow has many language implementations, some do not include the query engine(for example, Rust implementation, which depends on the DataFusion for more SQL-like analytics) in its own repo, but other do include(for example, C++).
There is a comprehensive benchmark by ClickHouse for OLAP but including kinds of embedding engines: https://benchmark.clickhouse.com/
The more interesting is that, in fact, we have not an embedded HTAP engine. One of my database products already implements 3/4 HTAP at the engine layer, but unfortunately it's still just a free software, not an open source implementation.
I know it is not meant to be, but I have found DuckDB to be so fast at transactional queries that for many it would work well as an HATP
I too am wondering "why would I use this and not SQLite?" or Firebird.
There may well be reasons, but I couldn't find them on the project front page. For all new projects, in situations like this, breaking into a very mature market, I would recommend that some sort of reason is posted on the front page.
> I don't want to dump on someone's project, ...
A lot of these projects are school projects, or personal projects. No need to dump on them. I think it's pretty cool that someone might tackle an RDBMS library, as long as they don't think it's a SQLite killer without understanding the tremendous need for funding that replacing SQLite would require.
..no, it isn't?
That's like saying you would buy a specific car because the factory it was made in is better than other car factories.
It is an argument, yes. Not a pretty good argument unless there's something specific about this project that is better because of Rust.
I agree with your point but the analogy is bad. I would definitely buy a car based on factory. Reliability, order time, parts availability, etc.
Do you see the nuance here? The argument only makes sense when the details make sense.