I own a product which validates data in massive volume and has a bespoke expression language to enable flexibility of configuration, and high performance.
We are rearchitecting after a number of years of successfully growing functionality as we feel that we need to take things to a new level (faster innovation through smaller services & event sourcing, more functional designs, everything on a streaming basis moving away from batch) and that meant a totally new version would be the practical route. I was hoping as part of that that we could avoid continuing to 'reinvent the wheel' and find a good open source more standard offering.
As far as I can see there is in fact not much available, which kind of surprises me: I am hoping I am just missing something out there. Hence the question in the hope that someone is either working on or knows of something that fits the bill.
As I say there does not seem to be much. I am about to evaluate FEEL Scala, from Camunda / Zeebe, which looks good in many ways and from a great team, but it is interpreted and so while I am about to investigate with some benchmarks I am thinking is unlikely to tick my performance targets.
Maybe there is nothing, and is space for us to OS our existing framework - however I was hoping to move as it requires some renovation due to use of very old ANTLR and other dependencies, which will force upheaval anyway to get back to the same state - hence a change is somewhat amenable.
The language is required to provide both boolean rules and more general value expressions. It is an expression language, not Turing complete. It accesses contexts which contain hierarchically structured values - thus currentIssue.Owner.email for example. It has a plugin interface for addition of functions, but comes with a wide array of the typical functions - toUpper, toLower, replace - and typical operators + , - etc . It uses a set of types similar to FEEL: strings, dates, times, datetimes, integers, decimals, booleans, enums. It provides functions also for expressions over sets - max, min, same etc.
So please if you know of an open source JVM based high performance (thus compiled) expression language please do let me know.