eno [1] - A modern plaintext language w/ libraries [2] for JavaScript, Python, Ruby & soon more!
We migrated a big relational research database to a file-based solution - requirements were:
- Super fast and easy editability for users
- Highest performance for parsing/validating >10K documents on every user change.
Our trials with YAML/TOML showed us that we wanted something both faster [3][4] and easier [4],
something tailored for file-based content management ... and after months of
research & development it's now publicly available (under MIT license) for everyone!
Last but not least I also want to mention eno's document introspection capabilities -
with a few lines of code you can build intelligent relational suggestion UIs as shown in [4] below.
[1] https://eno-lang.org/
[2] https://eno-lang.org/libraries/
[3] https://github.com/eno-lang/benchmarks/
[4] https://eno-lang.org/resources/introspection.mp4
PS.
Your input for the Roadmap is highly welcome - what do you think should be in the next releases?
More languages? (If so, which? Currently in progress: Rust/PHP, Currently planned: Go/Java)
Additional IDE/editor support? (Currently supported: Atom/VSCode/Sublime)
Or something else entirely? :) Looking forward to your feedback!
1) Unlike YAML or JSON this doesn't parse into a simple array structure, but a library dependent object hierarchy?
2) Is the API of the libraries also part of the language spec?
3) Can I assume that document.lookup() will be available as document->lookup() in the PHP library?
4) What about programming language specifics that may differ between languages? Will the PHP objects implement the Iterable interface? Or the ArrayAccess interface? (There are probably similar but slightly different concepts in other languages).
5) There is eno.parse(), but is there some kind of reverse mechanism to create a new Eno document? Like document.addList([...]).addSection('hey', 2) or something.