2019 LookML Open-Source State of the Union
--
As Looker’s annual JOIN event was being put together for 2019, something was different from years past. Whereas in 2018, open-source LookML software was near non-existent, in the course of a year, a number of open source projects had sprung up, signalling the growth of a nascent open-source community around Looker and LookML development in particular.
With this growth in open-source projects, and little in the way to organize and discover them, we saw a need to put together a comprehensive survey. We presented this overview at JOIN, and now bring it to you in the first (of hopefully many such) LookML Open-Source State of the Union reports.
We’re going to focus on LookML specifically, rather than all Looker-related projects [1], which means that most of these will be of direct benefit to LookML developers and analysts. After surveying the landscape, we’ve categorized projects into five broad functions, though some projects offer functionality in more than one category:
- Parsers: Interpret LookML text into a more usable/structured format for other software.
- Linters: Evaluate LookML against a set of rules, primarily to automate feedback to developers making LookML changes.
- Visualizers & Informational: Provide alternate presentations of LookML contents for informational or navigational purposes.
- Generators: Automate the writing of LookML from some other process or format.
- Testers: Evaluate LookML within the context of a connection, Looker instance, or data, primarily to automate feedback to developers making LookML changes, or, to monitor for breaking external changes.
- Syntax Highlighters: Add a bit of color to your LookML in various text editors.
Parsers
Since parsers are an important foundational component for working with a language, like LookML, and are used by many projects, we’ll cover them first.
With the introduction of LookML, Looker created a brand new syntax. Thus, at the time, there were no parsers for it. Fast forward a couple of years, and there are now two independent actively maintained open-source implementations of LookML parsers.
Both have similar feature sets, with the main difference being convenience of use from either Node.js or Python. In case you’re not using either of these, both libraries also allow a command-line…