Our great sponsors
-
goven
Goven (go-oven) is a go library that allows you to have a drop-in query language for your database schema.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
There is rql (resource query language), but it does not seem to be feature-complete and rather inactive. Maybe it would be a good starting point, though.
goven seems to be a better choice.
I used https://github.com/alecthomas/participle to implement a custom DSL for some projects. I think there's also an SQL example in the repository. After the parsing is solved it's 'only' about doing something useful with the query but at least you've full control of all aspects, which features you'd like to support and so on.
There’s also https://github.com/google/cel-go which is similar but different at the same time
I used a parsing expression generator to do something similar and built a defined internal lucene-style search syntax kind of like JQL. https://github.com/Baltoli/peggo
testuser514 is right. Here is simple antlr4 grammar that gets translated to ElasticSearch query: https://github.com/omurbekjk/convert-dsl-to-es-query-with-antlr