🏭 Grammar based fuzzing

As a developer, you’ve probably had to do some kind of testing at some point in your career. One of the most effective ways to test code is by doing fuzz testing, which involves generating random inputs to your program in order to try and find unexpected behavior. One way to do this is by using a tool like Dharma, which generates inputs from a grammar.

🎉 Creating Kharma

However, Dharma wasn’t being maintained anymore, and was lacking some features that I wanted to use, so I decided to write my own version of it. I named it Kharma, and it has several new features that weren’t available in Dharma. For example, Kharma allows you to write functions inside the grammar using Python code, which can be very useful for generating more complex inputs. Additionally, Kharma has the ability to generate random strings from regular expressions.

If you’re interested in trying out Kharma, you can check out the GitHub repository here.