News for hackers. Stuff that matters.
Re:Puma: A Ruby Web Server Built For Concurrency by mbq on Friday January 06, 2012 @07:56AM (#3433080)
tl;dr it parses HTTP headers with Ragel, which is a really nice idea; the state machine part is a yummy bite.
Re:Puma: A Ruby Web Server Built For Concurrency by zedshaw on Friday January 06, 2012 @11:59AM (#3434014)
It 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!
Re:Puma: A Ruby Web Server Built For Concurrency by dnc on Friday January 06, 2012 @08:40AM (#3433209)
Correct 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.
Re:Puma: A Ruby Web Server Built For Concurrency by carmen on Friday January 06, 2012 @10:17AM (#3433570)
this 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

Re:Puma: A Ruby Web Server Built For Concurrency by mattgreenrocks on Friday January 06, 2012 @11:00AM (#3433743)
Thin's --threaded flag is still considered experimental. Also, spawning a native OS thread per incoming connection is not cheap, either.
Re:Puma: A Ruby Web Server Built For Concurrency by getsat on Friday January 06, 2012 @11:15AM (#3433800)
At high numbers of concurrent connections, your thread stacks consume a non-trivial amount of ram, too.
Re:Puma: A Ruby Web Server Built For Concurrency by towelrod on Friday January 06, 2012 @10:39AM (#3433659)
thin uses EventMachine and puma uses threads.