Well, I really thought you did use it...
tintinux wrote: ↑14 Oct 2021, 18:08I have never used this protocol elsewhere, and I don't know in what it is useful
The main point is to be able to use an embedded database. That is, Gestinux when started also starts the database engine it needs; when it exits, it also stops the engine.
Obviously this is a single-user scenario (which happens to be my use-case!)
It had been used for debugging purposes, but that does not seem to be customary.
Also, a lot of people are reporting problem to set it up; it seems to be possible, but it is certainly not easy.
Absent your experience doing it, I am thinking twice about continue trying.
tintinux wrote: ↑14 Oct 2021, 18:08However ZEOSLib is said to support mysql-d, so with a few changes in Gestinux sources (GDbConnection, GDatabase) it should be easy to add it.
Yeah, it sort of works, but I would not write it is easy. I spotted a so-called
Embedded example in Zeos, and made some advances... then I noticed it was not updated for... 13 years!
And the code really is from 2006. By the way, it speaks volume (in a good way) for the fact the underlying ZeosLib code is rock-solid.
Another relevant element is that the embedded server option has been abandoned by both MySQL and MariaDB teams, nowadays it is not even a build option.
tintinux wrote: ↑14 Oct 2021, 18:08It is a lot of work to test and maintain a protocol, and we have not so much resources on Gestinux.
I have no time available for that, but maybe you can do it yourself...
I'm currently locking and working on the sources named above. Tell me if you want to work on them.
Indeed I am looking at it.
I was looking at an alternate way, which is to add the Firebird protocol/interface in addition to MySQL and PostGresQL. Firebird is quite a bit more lighter than the others, but it seems to have all the requisites (constraints, triggers).
Pros are that this is a much better forward looking solution, and the embedded option comes mostly out of the box.
Cons are
- The DDL of Firebird, although not much different from PostGresQL, really is different, mostly lacking: no Serial, no Information_Schema, no Drop If Exists (that one is my main road-blocker nowadays, because of the creation order).
- The wire protocol of Firebird seems not as secure as the others; for example, TLS is not available built-in; on the other hand, compared with MySQL specifically, Firebird, as well as PostGresQL, seems to be quite a bit better programmed, which means less CVEs...
- Probably others...
What is your opinion?