Parsing Simple Grammars in Scala With parboiled2

parboiled2 is a Macro-Based PEG Parser Generator written in Scala. It has become our preferred tool for creating parsers for simple grammars. It offers a fairly simple syntax for creating parsers and boasts significantly better performance over Scala Combinators.

To illustrate its use, we will use this post to build a parser for a simplified version of the Slack Assisted Search. Read more “Parsing Simple Grammars in Scala With parboiled2”

Ramping up on Finch: Avoiding Common Gotchas

While we have been using Scala for awhile at Threat Stack, we haven’t been overly satisfied with the HTTP servers that we have used. So a few months ago, we audited a number of options and ultimately decided to try out Finch. We chose Finch for its readable and idiomatic API for constructing HTTP endpoints, solid performance, and some other bells and whistles. We also brought in Circe to handle our JSON serialization needs. Circe was a clear pick for its solid performance and generic derivation.
Read more “Ramping up on Finch: Avoiding Common Gotchas”

Useful Scala Compiler Options Part 2: Advanced Language Features

Scala offers a number of advanced language features that are disabled by default. If you try to use any of them, the compiler will generate a warning informing you of their usage. There are a number of reasons that you might want to enable features (or keep them disabled). In this post, we will explore what each language feature is and under which circumstances you might want to enable them. (For a discussion of basic Scala Compiler options that we find useful at Threat Stack, see Part 1 of this series.)

Read more “Useful Scala Compiler Options Part 2: Advanced Language Features”

Useful Scala Compiler Options for Better Scala Development: Part 1

At Threat Stack, we like to leverage our tools to the fullest. Since we use Scala, it only makes sense for us to always be looking into ways of getting the most out of the Scala Compiler to enhance our productivity. And, as it turns out, the Scala Compiler offers a number of features that makes our lives way better! 

Read more “Useful Scala Compiler Options for Better Scala Development: Part 1”