JQL in go

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • rql

    Resource Query Language for REST

  • 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

    Goven (go-oven) is a go library that allows you to have a drop-in query language for your database schema.

  • goven seems to be a better choice.

  • 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.

    InfluxDB logo
  • participle

    A parser library for Go

  • 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.

  • cel-go

    Fast, portable, non-Turing complete expression evaluation with gradual typing (Go)

  • There’s also https://github.com/google/cel-go which is similar but different at the same time

  • peggo

    Discontinued PEG parser generator

  • 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

  • convert-dsl-to-es-query-with-antlr

    Convert custom sql like dsl query to es query

  • 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

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts