Replies: 2 comments 3 replies
-
There are ways to make this work in the future, but nothing is currently on the roadmap. Architecturally, the database is split up in a 'core' part which defines all operations, and a 'server' part which slaps an HTTP frontend on top of that. This means other setups are possible. One example is the CLI tool we're developing, which supports a lot of the same operations from the command line. Likewise, an embedded version which exposes these operations through function calls is also possible. One thing to take into account though is that we make use of SWI-Prolog. Therefore, embedding TerminusDB effectively means embedding SWI-Prolog as well. This is doable, but it won't be a small embeddable like sqlite is. I'd expect something in the order of tens of megabytes of RAM overhead. But yes, this could be a single DLL that you just load to have TerminusDB available through some C API, which would also allow bindings to be written for other languages. Another thing to take into account is that our storage format is not the best for the embedded use case. Unlike sqlite, which stores a database in a single file, we split things out into many tiny files. Depending on your use case this may or may not be a problem. |
Beta Was this translation helpful? Give feedback.
-
This may not be a big deal if:
In other words, it would be nice to have an isolated instance of TerminusDB, but a flexible install pattern could be enough. |
Beta Was this translation helpful? Give feedback.
-
TerminusDB as far as I understood is a server-oriented solution.
Is there any leeway in current architecture to be evolved/forked into something like sqlite / LMDB (i.e. single-file ~20-200MB)?
Or will it require complete redesign from scratch and ditching Prolog on the way?
There is major deficiency in the field of embedded graph db solutions (if any).
Basically, I would liked to use TerminusDB like git -- and keep/sync the same knowledgebase between different clients/platforms -- Android, Firefox/Extensions, Desktop/Python, etc.
But this niche feels empty.
Beta Was this translation helpful? Give feedback.
All reactions