2 ms·
The concept can be implemented in any language, this implementation just happens to use Java. More subtly, the design is split into three layers. At the bottom
by mike_hearn 3y ago
The concept can be implemented in any language, this implementation just happens to use Java.
More subtly, the design is split into three layers. At the bottom is an abstraction over pluggable KV stores. The middle layer is the "database" layer, which is language neutral. None of the concepts in this API are Java specific.
http://permazen.github.io/permazen/site/apidocs/io/permazen/core/Database.html http://permazen.github.io/permazen/site/apidocs/io/permazen/...
Then the final layer sits on top of the middle database layer, and is the language binding to Java. It uses specific Java features like annotations and annotation processors to generate object bindings, adds things like subtyping, support for enums, etc.
In theory you could take a language like Python or JavaScript and connect it directly to the middle layer using e.g. GraalVM (or reimplement it). You'd want to work out what the equivalent language bindings would be for those languages.