Skip to main content
HelixQL is a strongly typed, compiled query language for HelixDB. It was inspired from a combination of Gremlin, Cypher and Rust.

Why yet another query language?

Over the past few years, we’ve used Gremlin extensively for graph queries. It’s powerful and very expressive, but it’s also extremely verbose and horrible to read after any substantial complexity. The other major issue is that it’s obviously completely dynamic and is parsed at runtime when the query is executed. This leads to a horrible developer experience, not knowing if the query is valid until runtime. Building a new query language from scratch is obviously a big undertaking, but we thought it was a necessary step to improve the developer experience and make building with graphs better. Example Query Syntax:
QUERY QueryName(param1: Type, param2: Type) =>
    result <- traversal_expression
    RETURN result

Components

  • QUERY: Keyword to start a query definition
  • QueryName: Identifier for the query
  • parameters: Input parameters in parentheses
  • Type: Type of the parameter (e.g. String, I32, F64, Boolean, [Type] or schema Node/Edge)
  • =>: Separates query header from body
  • <-: Assignment operator
  • RETURN: Specifies output values

Next Steps