== 0.7.1 Fancy Pants release * Clean stale PID files when starting as daemon, fixes #53 [Chu Yeow] * Require EventMachine 0.11.0 for UNIX domain sockets. Until it's released, install from: gem install eventmachine --source http://code.macournoyer.com * Ruby 1.8.5 compatibility, closes #49 [Wincent Colaiuta] * Move all EventMachine stuff out of Server, you can now create a Thin Backend that does not depend on EventMachine. * Rename Connector to Backend. Extend Thin::Backends::Base to implement your own. * Fix high memory usage with big POST body, fixes #48 == 0.7.0 Spherical Cow release * Add --max-persistent-conns option to sets the maximum number of persistent connections. Set to 0 to disable Keep-Alive. * INT signal now force stop and QUIT signal gracefully stops. * Warn when descriptors table size can't be set as high as expected. * Eval Rackup config file using top level bindings. * Remove daemons gem dependency on Windows plateform, fixes #45. * Change default timeout from 60 to 30 seconds. * Add --max-conns option to sets the maximum number of file or socket descriptors that your process may open, defaults to 1024. * Tail logfile when stopping and restarting a demonized server, fixes #26. * Wrap application in a Rack::CommonLogger adapter in debug mode. * --debug (-D) option no longer set $DEBUG so logging will be less verbose and Ruby won't be too strict, fixes #36. * Deprecate Server#silent in favour of Logging.silent. * Persistent connection (keep-alive) support. * Fix -s option not being included in generated config file, fixes #37. * Add Swiftiply support. Use w/ the --swiftiply (-y) option in the thin script, closes #28 [Alex MacCaw] == 0.6.4 Sexy Lobster release * Fix error when stopping server on UNIX domain socket, fixes #42 * Rescue errors in Connection#get_peername more gracefully, setting REMOTE_ADDR to nil, fixes #43 == 0.6.3 Ninja Cookie release * Add tasks for Vlad the Deployer in example/vlad.rake [cnantais] * Add Ramaze Rackup config file in example dir [tmm1] Use like this from you Ramaze app dir: thin start -r /path/to/thin/example/ramaze.ru * Add the --rackup option to load a Rack config file instead of the Rails adapter. So you can use any framework with the thin script and start cluster and stuff like that. A Rack config file is one that is usable through the rackup command and looks like this: use Rack::CommonLogger run MyCrazyRackAdapter.new(:uterly, 'cool') Then use it with thin like this: thin start --rackup config.ru * thin config --chrdir ... -C thin/yml do not change current directory anymore, fixes #33. * Add a better sample god config file in example/thin.god that loads all info from config files in /etc/thin. Drop-in replacement for the thin runlevel service [Gump]. * Add support for specifying a custom Connector to the server and add more doc about Server configuration. * Add a script to run thin as a runlevel service that can start at startup, closes #31 [Gump] Setup the service like this: sudo thin install /etc/thin This will install the boot script under /etc/init.d/thin. Then copy your config files to /etc/thin. Works only under Linux. * Set process name to 'thin server (0.0.0.0:3000)' when running as a daemon, closes #32. * Make sure chdir option from config file is used when present. * Raise an error when starting a server as a daemon and pid file already exist, fixes #27. == 0.6.2 Rambo release * Server now let current connections finish before stopping, fixes #18 * Fix uploading hanging bug when body is moved to a tempfile, also delete the tempfile properly upon completion, fixes #25 * 'thin restart' now sends HUP signals rather then stopping & starting, closes #17 * HUP signal now launches a new process with the same options. * Add PID and more info from the last request to the Stats adapter mostly taken from Rack::ShowException. * pid and log files in cluster are no longer required to be relative to the app directory (chdir option), fixes #24 * Revert to using #each when building response headers under Ruby 1.8, solves an issue w/ Camping adapter, fixes #22 * Restructure thin script options in 3 sections: server, daemon and cluster * Add --only (-o) option to control only one server of a cluster. * Stylize stats page and make the url configurable from the thin script. * Raise error if attempting to use unix sockets on windows. * Add example config files for http://www.tildeslash.com/monit usage. Include the example file using "include /path/to/thin/monit/file" in your monitrc file. The group settings let you do this to manage your clusters: sudo monit -g blog restart all There are examples of thin listening on sockets and thin listening on unix sockets. == 0.6.1 Cheesecake release * Remove socket file when server stops. * Set back cluster to use 'thin' command to launch servers. == 0.6.0 Big Pony release * Add support for connection through UNIX domain socket. Use the --socket (-S) option w/ the thin script to configure the socket filename. Nginx support binding to a UNIX socket like this: upstream backend { server unix:/tmp/thin.0.sock; server unix:/tmp/thin.1.sock; server unix:/tmp/thin.2.sock; } Start your servers like this: thin start -s3 -S/tmp/thin.sock * Remove Server#listen! method. Use Server#start instead. * Server can now yield a Rack::Builder to allow building an app in one call: Server.start '0.0.0.0', 3000 do use Rack::CommonLogger use Rack::ShowExceptions map "/lobster" do use Rack::Lint run Rack::Lobster.new end end * Add a very basic stats page through Stats adapter, load w/ --stats and browse to /stats. * Add --trace (-V) option to trace request/response and get backtrace w/out all Ruby debug stuff. * Add --config (-C) option to load options from a config file in thin script [Matt Todd]. * Alter response headers to output directly to a string. * Improve specs stability. * Move request body to a Tempfile if too big (> 112 MB) * Remove useless check for max header size in Request (already done in the parser) == 0.5.4 Flying Mustard release * Don't read the full body, use direct streaming when sending response. See: Response#each As a result, the Content-Length can not be calculated anymore. You have to do set this in your adapter. All frameworks do it anyway. It improve memory usage and boost speed for low concurrency. Thanks to Kent Sibilev and Ezra for their help on that one. * Add 'Server' response header * Fix --user and --group option not changing daemon process privileges == 0.5.3 Purple Yogurt release * win32 pre-compiled gem now available * change rake task configuration to allow win32 gem build * Add prefix option to thin script to mount app under a given path. == 0.5.2 Cheezburger release * Add cluster support through the -s option in the thin script, start 3 thins like this: thin start -s3 -p3000 3 thin servers will be started on port 3000, 3001, 3002, also the port number will be injected in the pid and log filenames. * Fix IOError when writing to logger when starting server as a daemon. * Really change directory when the -c option is specified. * Add restart command to thin script. * Fix typos in thin script usage message and expand chdir path. * Rename thin script options to be the same as mongrel_rails script [thronedrk]: -o --host => -a --address --log-file => --log --pid-file => --pid --env => --environment == 0.5.1 LOLCAT release * Add URL rewriting to Rails adapter so that page caching works and / fetches index.html if present. * Fix bug in multiline response header parsing. * Add specs for the Rails adapter. * Fix Set-Cookie headers in Rails adapter to handle multiple values correctly. * Fix Ruby 1.9 incompatibility in Response#headers= and Rakefile. * Fix parser to be Ruby 1.9 compatible [Aman Gupta] * Set gemspec to use EventMachine version 0.8.1 as it's the latest one having precompiled windows binaries. [Francis Cianfrocca]. * Add -D option to thin script to set debugging on. * Output incoming data and response when debugging is on. == 0.5.0 * Full rewrite to use EventMachine, Rack and Mongrel parser == 0.4.1 * Fix Rails environment option not being used in thin script. == 0.4.0 * First alphaish release as a gem.