Maybe it helps to compare BaseX with other Open-Source SQL
databases,
e.g. PostgreSQL: While it’s possibly to use it embedded,
specifying a
simple path as target won’t suffice.
SQL databases are most useful for data that may be represented naturally using a relational model.
Sure. I simply wanted to illustrate that you cannot embed PostgreSQL that easily in your project as you can embed SQLite.
I may have misunderstood the direction of your comment.
Broadly, as you suggest, the databases mentioned may be classified according to two orthogonal traits, whether supporting server versus embedded modes, and by the data or document model.
I had mentioned SQLite, because, even though it has a different data model from that of BaseX, I thought it might useful to compare in terms of how it resolves the location of the database. Among the use cases for which SQLite has become successful is one in which a database occurs in a portable project directory. Such flexibility makes it a credible choice for managing relational data in contexts for which PostgreSQL and other server-only database systems would be inappropriate.
Presently, BaseX offers limited support for embedded use. It seems, at least in principle, a feasible path is available to strengthen the support for the embedded case by supporting a mode of opening a database from a file path independent of data external to the path. Such support, of course, may be added without imposing any constraints on existing support for either embedded or server modes.
I suppose BaseX is not the right tool for you, as you seem to look for something that's more light-weight.
It may not be the right tool, at least at present. I believe the limitation is currently constrained to the issue I have raised, about opening a database at a user-supplied location. In terms of essential operational characteristics, I think the application is suitably light weight, as it seems to handle invocation-per-query use cases with adequate efficiency on the target systems.
I think the request is sound, as it would leverage much of the already available functionality for embedded invocation, but for a much more general set of use cases.
Of course, how well the request would align with broader project objectives is outside the scope of my information.