&gt; There was successful attempt to generate simple HTTP parsers using Ragel, but the parsers are limited in functionality.<p>They are not limited in any way. You are free to combine as many state machines as you want with as convoluted logic as you want. But it takes some time to learn Ragel.