Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Thank you for your kind words !
I remind you that any comparison with TOML, JSON, or YAML only concerns one of the capabilities of Jesth, namely the ability to convert a compatible section into a dictionary data structure.
A Jesth document may not have a section intended to be converted into a dictionary data structure. Therefore Jesth can be used e.g. as a markup language for docstrings (My closed-source documentation generator parses the source code to populate the 'docs' folder of my projects with Markdown files [1])
Therefore, the lines below are for Jesth sections intended to be converted to a dictionary data structure.
There is currently no type system, that is, a mechanism to ensure that values assigned to a certain key always conform to a specific data type. I'm thinking about it. Think about how we create relational database tables with SQL.
Jesth is not going to be a TOML superset, they have incompatible underlying philosophies. For example, the design decisions behind Jesth accidentally created an unlimited pool of reserved words (headers with double square brackets on either side are reserved words), from which I used [[END]] to mark the end of a Jesth stream. TOML currently doesn't have such a thing since they already use these double square brackets on each side for something that is trivially done in Jesth.
[1] https://github.com/pyrustic/jesth/tree/master/docs/modules
Hi ! Thank you for your reply ! I think the best way to be sure that Jesth will meet your needs is to try jesth-demo [0].
I think Jesth does a better job than TOML, YAML and JSON when it comes to nested structures or readability in general. JSON remains the boss of machine-to-machine communication, though !
It is also possible that my other project Exn [1] meets your needs.
[0] https://github.com/pyrustic/jesth-demo#readme
[1] https://news.ycombinator.com/item?id=34947927
thank you very much, here is my notebook app https://github.com/shi-yan/Epiphany
Exn does look very related.
Jesth is like a broken INI file parser that can only split a document into sections (each section consists of a header and a body which is just a list of strings).
Now, on top of that, I can write a hack to convert an arbitrary section to a dictionary data structure (provided the body of that section is written with a specific syntax designed for my hack).
I made this hack and included it in the Jesth library, so people can use it, much like the Python standard library is just there to help people not waste time rewriting the same algorithms for common tasks.
Jesth would be like JSON which is only about data. CUE, Dhall and Jsonnet jump on top of JSON to add some cool stuff.
I used Jesth for example to design a docstring markup language [1], as well as a scripting language [2].
I will soon publish a simple data validation mechanism for Jesth dict-sections (sections intended to be converted into a dictionary data structure). It might inspire people to create a more complex data validation or data constraint language on top of Jesth. This could be more readable than what is done elsewhere.
[1] https://github.com/pyrustic/jesth/tree/master/docs/modules
[2] https://github.com/pyrustic/backstage
Related posts
- Show HN: Paradict – Streamable multi-format serialization with schema
- Show HN: Backstage – Three-speed scripting language and task automation tool
- Scientists Discover 380M-Year-Old Heart, Preserved
- PenX: A structured open-source knowledge base
- Collect your thoughts and notes without leaving the commnand line