I&#x27;ve been using re2c lately and it&#x27;s really great.  It&#x27;s this gem from the 90&#x27;s that not a lot of people know about; I encountered it in the Ninja build system, where they were concerned about parsing megabytes of text very quickly.<p>It basically generates a bunch of gotos from readable regexes.<p><a href="http:&#x2F;&#x2F;re2c.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;re2c.org&#x2F;</a><p>One thing I haven&#x27;t explored is &quot;push vs pull&quot; scanners.  It&#x27;s basically the same thing as threads vs. async, so it could be really useful for async servers.  Normal scanners will pull data in when needed, but if you pass -f, it can apparently have data pushed upon it.<p>I guess Ragel can be used easily like this since Mongrel is async (?)