4 ms·
tl;dr it parses HTTP headers with Ragel, which is a really nice idea; the state machine part is a yummy bite.
by mbq 15y ago
tl;dr it parses HTTP headers with Ragel, which is a really nice idea; the state machine part is a yummy bite.
- dnc 15y agoCorrect me if I'm wrong, but I don't see how is this different from Thin, AFAIK it also uses Ragel for the same purpose.
- towelrod 15y agothin uses EventMachine and puma uses threads.
- carmen 15y agothis is in the parser files in puma: * Copyright (c) 2005 Zed A. Shaw puma's README wording make it seem like the Ragel parser is some new thing unique to Puma, and doesnt mention Zed. no wonder he hatest rubyists also, thin has had a --threaded flag for years
- mattgreenrocks 15y agoThin's --threaded flag is still considered experimental. Also, spawning a native OS thread per incoming connection is not cheap, either.
- getsat 15y agoAt high numbers of concurrent connections, your thread stacks consume a non-trivial amount of ram, too.
- zedshaw 15y agoIt is a really nice idea, which is why I used it in Mongrel and now it looks Puma is a fork of Mongrel so I'm doing it again!