Skip to content(if available)orjump to list(if available)

Show HN: Autarkie – Instant grammar fuzzing using Rust macros

mmastrac

This is awesome. I've been working on a project to make the PostgreSQL/EdgeDB/Gel protocols declarative in Rust (see https://github.com/geldata/gel-rust/blob/master/gel-pg-proto... for an example) and my approach to fuzzing has been somewhat arbitrary (you can see at the bottom).

I've used AFL but never managed to create a consistent fuzzing process using it.

This _should_ allow me to add some more extensive fuzz tests than I've currently been using, even though the grammar is binary since we're really just "parsing" and "rendering" text that happens to be [u8] rather than str.

I don't think there's been any real discussion of the Postgres message format philosophy, but it's a very regular syntax: messages are composed of primitives and lists. Lists are either length-prefixed or zero-suffixed. Everything else is just a combination of these building blocks.

r9295

Glad to hear this! Please create an issue if you run into any issues during the integration.