macournoyer / thin

A very fast & simple Ruby web server

macournoyer (author)
Sun Sep 28 12:27:24 -0700 2008
commit  2ab507223d0aec596f3574e5f7fc30c276efa68a
tree    926cddc22b4e837fd8fd8fad83946e24d466c8ef
parent  f7599b6d2711966bc38d19dd415a0888a144dfb1
thin / CHANGELOG
f7599b6d » macournoyer 2008-09-28 Update changelog and rename... Comment 1 == 1.0.0 That's What She Said release
2 * Fixed vlad.rake to allow TCP or socket [hellekin]
3 * Updated Mack adapter to handle both <0.8.0 and >0.8.0 [Mark Bates]
4 * rails rack adapter uses File.readable_real? so it recognizes ACL permissions [Ricardo Chimal]
5 * Log a warning if Rack application returns nil body [Michael S. Klishin]
b4808879 » macournoyer 2008-07-25 Add changelog entry for las... 6 * Handle nil and Time header values correctly [#76 state:resolved] [tmm1]
c9634028 » macournoyer 2008-07-19 Add changelog entry for las... 7 * Add Content-Length header to response automatically when possible [#74 state:resolved] [dkubb]
a8ed858f » macournoyer 2008-07-18 Runner now remembers -r, -D... 8 * Runner now remembers -r, -D and -V parameters so that clustered servers inherit those and
9 `restart` keep your parameters.
34da9ea8 » macournoyer 2008-07-13 Make Set-Cookie header, in ... 10 * Make Set-Cookie header, in Rails adapter, compatible with current Rack spec [Pedro Belo]
11 [#73, state:resolved]
37fbf1d5 » macournoyer 2008-07-13 Add --no-epoll option to di... 12 * Add --no-epoll option to disable epoll usage on Linux [#61 state:resolved]
13 * Add --force (-f) option to force stopping of a daemonized server [#72 state:resolved]
d6a6fc96 » macournoyer 2008-07-01 Update changelog for last c... 14 * Update halycon adapter loader [mtodd]
15
bdddd866 » macournoyer 2008-06-24 Require EventMachine 0.12.0... 16 == 0.8.2 Double Margarita release
17 * Require EventMachine 0.12.0
44d6ce72 » macournoyer 2008-05-26 Fix timeout handling when r... 18 * [bug] Fix timeout handling when running command
19 * [bug] Fix hanging when restarting and no process is running in single server move, fixes #67
c8c527be » macournoyer 2008-04-22 Add changelog for last commit 20 * Added Mack adapter [markbates]
ae6f5b56 » macournoyer 2008-04-22 Add changelog entry for las... 21 * Allow rackup .rb files by getting a conventionally named constant as the app [bmizerany]
22
b02c717f » macournoyer 2008-04-08 Define deferred?(env) in yo... 23 == 0.8.1 Rebel Porpoise release
a9acdec9 » macournoyer 2008-04-18 Rescue all types of errors ... 24 * [bug] Rescue all types of errors when processing request, fixes #62
79f2a325 » macournoyer 2008-04-18 Use Swiftiply backend when ... 25 * [bug] Use Swiftiply backend when -y option is specified, fixes #63 and #64
c90f50f6 » macournoyer 2008-04-18 Allow passing port as a str... 26 * Allow passing port as a string in Server.new
b02c717f » macournoyer 2008-04-08 Define deferred?(env) in yo... 27 * Define deferred?(env) in your Rack application to set if a request is handled in a
28 thread (return true) or not (return false).
29
97d1b9ed » macournoyer 2008-04-03 Name 0.8.0 release Dodgy De... 30 == 0.8.0 Dodgy Dentist release
79f2a325 » macournoyer 2008-04-18 Use Swiftiply backend when ... 31 * [bug] Fix server crash when header too large.
a3a783e2 » macournoyer 2008-04-05 Add --require (-r) option t... 32 * Add --require (-r) option to require a library, before executing your script.
33 * Rename --rackup short option to -R, warn and load as rackup when file ends with .ru.
dc472b68 » macournoyer 2008-04-05 Refactor Rack loader. 34 * List supported adapters in command usage.
35 * Add file adapter to built-in adapter, serve static files in current directory.
6cb32ec3 » macournoyer 2008-04-03 Allow disabling signal hand... 36 * Allow disabling signal handling in Server with :signals => false
01dece1c » macournoyer 2008-04-03 * Make Server.new arguments... 37 * Make Server.new arguments more flexible, can now specify any of host, port, app or hash options.
38 * Add --backend option to specified which backend to use, closes #55
79f2a325 » macournoyer 2008-04-18 Use Swiftiply backend when ... 39 * [bug] Serve static file only on GET and HEAD requests in Rails adapter, fixes #58
4d3709fa » macournoyer 2008-03-28 * Add threaded option to ru... 40 * Add threaded option to run server in threaded mode, calling the application in a
41 thread allowing for concurrency in the Rack adapter, closes #46
af63af25 » macournoyer 2008-03-13 * Guess which adapter to us... 42 * Guess which adapter to use from directory (chdir option)
43 or use specified one in 'adapter' option, re #47.
44
cda09475 » macournoyer 2008-02-27 Fix high memory usage with ... 45 == 0.7.1 Fancy Pants release
d44352ac » macournoyer 2008-03-03 Clean stale PID files when ... 46 * Clean stale PID files when starting as daemon, fixes #53 [Chu Yeow]
1cb90c6a » macournoyer 2008-03-05 A couple fixes to prepare f... 47 * Require EventMachine 0.11.0 for UNIX domain sockets. Until it's released, install from:
38a20d9d » macournoyer 2008-03-03 Require EventMachine 0.11 48 gem install eventmachine --source http://code.macournoyer.com
4c30c781 » macournoyer 2008-03-02 Load cgi_multipart_eof_fix ... Comment 49 * Ruby 1.8.5 compatibility, closes #49 [Wincent Colaiuta]
dee65369 » macournoyer 2008-02-29 Not so cool hack to make su... 50 * Move all EventMachine stuff out of Server, you can now create a Thin Backend that
51 does not depend on EventMachine.
b686394e » macournoyer 2008-02-28 Rename Connector to Backend... 52 * Rename Connector to Backend. Extend Thin::Backends::Base to implement your own.
61da9491 » macournoyer 2008-02-27 Add ticket ref in CHANGELOG 53 * Fix high memory usage with big POST body, fixes #48
cda09475 » macournoyer 2008-02-27 Fix high memory usage with ... 54
96217b94 » macournoyer 2008-02-14 Change release name to Sphe... 55 == 0.7.0 Spherical Cow release
2b7d72da » macournoyer 2008-02-20 * Add --max-persistent-conn... 56 * Add --max-persistent-conns option to sets the maximum number of persistent connections.
57 Set to 0 to disable Keep-Alive.
58 * INT signal now force stop and QUIT signal gracefully stops.
0304be1f » macournoyer 2008-02-17 Warn when descriptors table... 59 * Warn when descriptors table size can't be set as high as expected.
8cd1a958 » macournoyer 2008-02-17 Eval Rackup config file usi... 60 * Eval Rackup config file using top level bindings.
35fc7426 » macournoyer 2008-02-17 Add changelog for last commit 61 * Remove daemons gem dependency on Windows plateform, fixes #45.
6c6ded81 » macournoyer 2008-02-15 * Change default timeout fr... 62 * Change default timeout from 60 to 30 seconds.
2b7d72da » macournoyer 2008-02-20 * Add --max-persistent-conn... 63 * Add --max-conns option to sets the maximum number of file or socket descriptors that
64 your process may open, defaults to 1024.
6c6ded81 » macournoyer 2008-02-15 * Change default timeout fr... 65 * Tail logfile when stopping and restarting a demonized server, fixes #26.
65d6456c » macournoyer 2008-02-11 * Wrap application in a Rac... 66 * Wrap application in a Rack::CommonLogger adapter in debug mode.
67 * --debug (-D) option no longer set $DEBUG so logging will be less verbose
68 and Ruby won't be too strict, fixes #36.
6c6ded81 » macournoyer 2008-02-15 * Change default timeout fr... 69 * Deprecate Server#silent in favour of Logging.silent.
04664f6b » macournoyer 2008-02-24 keep-alive != pipelining 70 * Persistent connection (keep-alive) support.
be7b2468 » macournoyer 2008-02-09 Fix -s option not being inc... 71 * Fix -s option not being included in generated config file, fixes #37.
704af397 » macournoyer 2008-02-08 Add ticket ref and contribu... 72 * Add Swiftiply support. Use w/ the --swiftiply (-y) option in the thin script,
73 closes #28 [Alex MacCaw]
e442be1f » macournoyer 2008-01-24 Add persistent connection (... 74
7c1472b6 » macournoyer 2008-02-12 Rescue errors in Connection... 75 == 0.6.4 Sexy Lobster release
7e8c975b » macournoyer 2008-02-12 Fix error when stopping ser... 76 * Fix error when stopping server on UNIX domain socket, fixes #42
7c1472b6 » macournoyer 2008-02-12 Rescue errors in Connection... 77 * Rescue errors in Connection#get_peername more gracefully, setting REMOTE_ADDR to nil, fixes #43
78
2a7e1025 » macournoyer 2008-01-31 Raise an error when startin... 79 == 0.6.3 Ninja Cookie release
74c348b2 » macournoyer 2008-02-07 Add tasks for Vlad the Depl... 80 * Add tasks for Vlad the Deployer in example/vlad.rake [cnantais]
f877d8ba » macournoyer 2008-02-06 * Add Ramaze Rackup config ... 81 * Add Ramaze Rackup config file in example dir [tmm1]
82 Use like this from you Ramaze app dir:
83
84 thin start -r /path/to/thin/example/ramaze.ru
85
ab5f77d0 » macournoyer 2008-02-05 * Add the --rackup option t... 86 * Add the --rackup option to load a Rack config file instead of the Rails adapter.
87 So you can use any framework with the thin script and start cluster and stuff like that.
88 A Rack config file is one that is usable through the rackup command and looks like this:
89
90 use Rack::CommonLogger
91 run MyCrazyRackAdapter.new(:uterly, 'cool')
92
93 Then use it with thin like this:
94
95 thin start --rackup config.ru
96
05459cd9 » macournoyer 2008-02-05 thin config --chrdir ... -C... 97 * thin config --chrdir ... -C thin/yml do not change current directory anymore, fixes #33.
86ca18a9 » macournoyer 2008-02-05 * Add a better sample god c... 98 * Add a better sample god config file in example/thin.god that loads all info from config
74c348b2 » macournoyer 2008-02-07 Add tasks for Vlad the Depl... 99 files in /etc/thin. Drop-in replacement for the thin runlevel service [Gump].
100 * Add support for specifying a custom Connector to the server and add more doc about Server
86ca18a9 » macournoyer 2008-02-05 * Add a better sample god c... 101 configuration.
74c348b2 » macournoyer 2008-02-07 Add tasks for Vlad the Depl... 102 * Add a script to run thin as a runlevel service that can start at startup, closes #31 [Gump]
348f6e4d » macournoyer 2008-02-03 Change thin service install... 103 Setup the service like this:
117e405e » macournoyer 2008-02-02 * Add a script to run thin ... 104
348f6e4d » macournoyer 2008-02-03 Change thin service install... 105 sudo thin install /etc/thin
117e405e » macournoyer 2008-02-02 * Add a script to run thin ... 106
348f6e4d » macournoyer 2008-02-03 Change thin service install... 107 This will install the boot script under /etc/init.d/thin. Then copy your config files to
108 /etc/thin. Works only under Linux.
2772b6e2 » macournoyer 2008-02-02 Set process name to 'thin s... 109 * Set process name to 'thin server (0.0.0.0:3000)' when running as a daemon, closes #32.
3210ef9b » macournoyer 2008-02-02 Make sure chdir option from... 110 * Make sure chdir option from config file is used when present.
2a7e1025 » macournoyer 2008-01-31 Raise an error when startin... 111 * Raise an error when starting a server as a daemon and pid file already exist, fixes #27.
112
855d90da » macournoyer 2008-01-26 Refactor plateform check lo... 113 == 0.6.2 Rambo release
b6aa2a6e » macournoyer 2008-01-29 Server now let current conn... 114 * Server now let current connections finish before stopping, fixes #18
dc607a67 » macournoyer 2008-01-29 * Fix uploading hanging bug... 115 * Fix uploading hanging bug when body is moved to a tempfile,
116 also delete the tempfile properly upon completion, fixes #25
117 * 'thin restart' now sends HUP signals rather then stopping & starting, closes #17
546e6a9e » macournoyer 2008-01-28 * thin restart now sends HU... 118 * HUP signal now launches a new process with the same options.
5d29f05e » macournoyer 2008-01-27 * Add PID and more info fro... 119 * Add PID and more info from the last request to the Stats adapter
120 mostly taken from Rack::ShowException.
cb878db6 » macournoyer 2008-01-27 * pid and log files in clus... 121 * pid and log files in cluster are no longer required to be relative to the
122 app directory (chdir option), fixes #24
f7451b3d » macournoyer 2008-01-27 * Revert to using #each whe... 123 * Revert to using #each when building response headers under Ruby 1.8,
124 solves an issue w/ Camping adapter, fixes #22
3e3bb71d » macournoyer 2008-01-27 Restructure thin script opt... 125 * Restructure thin script options in 3 sections: server, daemon and cluster
126 * Add --only (-o) option to control only one server of a cluster.
e4d9619f » macournoyer 2008-01-26 Stylize stats page and make... 127 * Stylize stats page and make the url configurable from the thin script.
3e3bb71d » macournoyer 2008-01-27 Restructure thin script opt... 128 * Raise error if attempting to use unix sockets on windows.
76908538 » macournoyer 2008-01-30 Improve announcement email ... 129 * Add example config files for http://www.tildeslash.com/monit usage.
6520c075 » kevwil 2008-01-26 add monit examples, add usa... 130 Include the example file using "include /path/to/thin/monit/file" in your monitrc file.
131 The group settings let you do this to manage your clusters:
132
133 sudo monit -g blog restart all
134
135 There are examples of thin listening on sockets and thin listening on unix sockets.
136
488564f0 » macournoyer 2008-01-25 Remove socket file when ser... 137 == 0.6.1 Cheesecake release
138 * Remove socket file when server stops.
139 * Set back cluster to use 'thin' command to launch servers.
140
31af2a1b » macournoyer 2008-01-25 Rename version 0.5.5 to 0.6... 141 == 0.6.0 Big Pony release
a68f46d6 » macournoyer 2008-01-23 Add support for connection ... 142 * Add support for connection through UNIX domain socket.
143 Use the --socket (-S) option w/ the thin script to configure the socket filename.
144 Nginx support binding to a UNIX socket like this:
145
146 upstream backend {
147 server unix:/tmp/thin.0.sock;
148 server unix:/tmp/thin.1.sock;
149 server unix:/tmp/thin.2.sock;
150 }
151
152 Start your servers like this:
153
154 thin start -s3 -S/tmp/thin.sock
155
156 * Remove Server#listen! method. Use Server#start instead.
57eceafe » macournoyer 2008-01-22 Server can now yield a Rack... 157 * Server can now yield a Rack::Builder to allow building an app in one call:
158
159 Server.start '0.0.0.0', 3000 do
160 use Rack::CommonLogger
161 use Rack::ShowExceptions
162 map "/lobster" do
163 use Rack::Lint
164 run Rack::Lobster.new
165 end
166 end
167
98d3e8f4 » macournoyer 2008-01-21 Add a very basic stats page... 168 * Add a very basic stats page through Stats adapter, load w/ --stats and browse to /stats.
2b8482fd » macournoyer 2008-01-21 Add --trace (-V) option to ... 169 * Add --trace (-V) option to trace request/response and get backtrace w/out all Ruby debug stuff.
170 * Add --config (-C) option to load options from a config file in thin script [Matt Todd].
a6b4cae7 » macournoyer 2008-01-20 Alter response headers to o... 171 * Alter response headers to output directly to a string.
d50a45e3 » macournoyer 2008-01-20 Improve specs stability. 172 * Improve specs stability.
6aa930c5 » macournoyer 2008-01-19 Move request body to a Temp... 173 * Move request body to a Tempfile if too big (> 112 MB)
174 * Remove useless check for max header size in Request (already done in the parser)
175
787a4284 » macournoyer 2008-01-18 Fix --user and --group opti... 176 == 0.5.4 Flying Mustard release
782a71e8 » macournoyer 2008-01-18 Prototyping response body s... 177 * Don't read the full body, use direct streaming when sending response.
178 See: Response#each
54a99f93 » macournoyer 2008-01-19 Typos in CHANGELOG and upda... 179 As a result, the Content-Length can not be calculated anymore.
180 You have to do set this in your adapter. All frameworks do it anyway.
181 It improve memory usage and boost speed for low concurrency.
182 Thanks to Kent Sibilev and Ezra for their help on that one.
183 * Add 'Server' response header
787a4284 » macournoyer 2008-01-18 Fix --user and --group opti... 184 * Fix --user and --group option not changing daemon process privileges
185
d0e2e14d » macournoyer 2008-01-13 Add prefix option to thin s... 186 == 0.5.3 Purple Yogurt release
2176ea64 » macournoyer 2008-01-17 Merge git://git.bantamtech.... 187 * win32 pre-compiled gem now available
188 * change rake task configuration to allow win32 gem build
d0e2e14d » macournoyer 2008-01-13 Add prefix option to thin s... 189 * Add prefix option to thin script to mount app under a given path.
190
08229939 » macournoyer 2008-01-08 Rename thin script options ... 191 == 0.5.2 Cheezburger release
6a772566 » macournoyer 2008-01-12 Add cluster support through... 192 * Add cluster support through the -s option in the thin script, start 3 thins like this:
193 thin start -s3 -p3000
194 3 thin servers will be started on port 3000, 3001, 3002, also the port number will be
195 injected in the pid and log filenames.
1a226855 » macournoyer 2008-01-09 Fix IOError when writing to... 196 * Fix IOError when writing to logger when starting server as a daemon.
197 * Really change directory when the -c option is specified.
198 * Add restart command to thin script.
0ff4b424 » macournoyer 2008-01-12 Update TODO and ann email f... 199 * Fix typos in thin script usage message and expand chdir path.
6a772566 » macournoyer 2008-01-12 Add cluster support through... 200 * Rename thin script options to be the same as mongrel_rails script [thronedrk]:
201 -o --host => -a --address
202 --log-file => --log
203 --pid-file => --pid
204 --env => --environment
08229939 » macournoyer 2008-01-08 Rename thin script options ... 205
206 == 0.5.1 LOLCAT release
6b31acff » macournoyer 2008-01-06 Add URL rewriting to Rails ... 207 * Add URL rewriting to Rails adapter so that page caching works and / fetches index.html if present.
96ef5249 » macournoyer 2008-01-06 * Fix bug in multiline resp... 208 * Fix bug in multiline response header parsing.
209 * Add specs for the Rails adapter.
210 * Fix Set-Cookie headers in Rails adapter to handle multiple values correctly.
c646a937 » macournoyer 2008-01-05 Fix Ruby 1.9 incompatibilit... 211 * Fix Ruby 1.9 incompatibility in Response#headers= and Rakefile.
dbfb0718 » macournoyer 2008-01-05 Fix parser to be Ruby 1.9 c... 212 * Fix parser to be Ruby 1.9 compatible [Aman Gupta]
bce0fabf » macournoyer 2008-01-04 Set gemspec to use EventMac... 213 * Set gemspec to use EventMachine version 0.8.1 as it's the latest one having precompiled windows binaries.
dbfb0718 » macournoyer 2008-01-05 Fix parser to be Ruby 1.9 c... 214 [Francis Cianfrocca].
edaaa848 » macournoyer 2008-01-04 * Add -D option to thin scr... 215 * Add -D option to thin script to set debugging on.
216 * Output incoming data and response when debugging is on.
bce0fabf » macournoyer 2008-01-04 Set gemspec to use EventMac... 217
35ec139c » macournoyer 2007-12-16 Update README to reflect la... 218 == 0.5.0
219 * Full rewrite to use EventMachine, Rack and Mongrel parser
220
13bb0c16 » macournoyer 2007-12-05 branch to experiment w/ Eve... 221 == 0.4.1
222 * Fix Rails environment option not being used in thin script.
223
2a00b0f3 » macournoyer 2007-12-03 Set version to 0.4.0, prepa... 224 == 0.4.0
6134e439 » kevwil 2008-01-16 sync with main repo, tweak ... 225 * First alphaish release as a gem.