I coincidentally worked on something similar but I kept closer to the SQL standard. It grew out of business cases where you don't have strongly typed data to act on.
I more or less adopted the syntax from dumbql (https://github.com/tomakado/dumbql) and started off with a peg parser using ohm.js. As I started benchmarking I realized how slow it was and started looking for "fast paths" using regex. I ultimately resorted to a recursive descent parser similar to Elo. At that stage I already had a lot of tests and api in place, so I was able to get a lot of help from Claude.
I've been a beta tester from very early on. I came for the performance but stayed for the stability. I've only had a rare few crashes and all but one was a duplicate in the bug tracker.
I thought I needed search but as Mitchell put it, not a 1.0 feature. Ripgrep was always the answer.
Very happy to share the ghostty experience with the world!
I more or less adopted the syntax from dumbql (https://github.com/tomakado/dumbql) and started off with a peg parser using ohm.js. As I started benchmarking I realized how slow it was and started looking for "fast paths" using regex. I ultimately resorted to a recursive descent parser similar to Elo. At that stage I already had a lot of tests and api in place, so I was able to get a lot of help from Claude.
Website here: https://filtron.dev