thin 1.7.0 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +4 -1
- data/README.md +34 -102
- data/lib/thin/runner.rb +2 -1
- data/lib/thin/server.rb +3 -3
- data/lib/thin/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31c955b827052e1932230bf04e3818d77ea20a06
|
4
|
+
data.tar.gz: 4f21bb96c7a098ea400d5d788b900912e78e2231
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4eb0b26d8523233a49ae1f68c63f765173f8f96d73066a53574aab352e1ccc9b89e4949399fd3e45bab13de08587232c05f7e91565b7ab9ac8fa4ca9f43d98fd
|
7
|
+
data.tar.gz: cd0fe1693ed40ec399ca882ca33fecf7c7c14b4925ad462be7df16db89db380f03657e2dec026b0fd2bd0f9eaea8e7e4c7fc1e3484249ff1f43ca28100936030
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
== 1.7.1 Muffin Mode
|
2
|
+
* Ruby 2.4 support (Fixnum deprecation) [nimish-mehta]
|
3
|
+
* Allow ERB templates in config files [markets]
|
4
|
+
|
1
5
|
== 1.7.0 Dunder Mifflin
|
2
6
|
* Rack 2 support
|
3
7
|
* Ensure Response body.close is called in the same thread
|
@@ -13,7 +17,6 @@
|
|
13
17
|
* Check for empty PID files [z1dane]
|
14
18
|
* Update Event Machine version to 1.0.4, Ruby 2.2.0 fix [freemanoid]
|
15
19
|
|
16
|
-
|
17
20
|
== 1.6.3 Protein Powder
|
18
21
|
* Add HTTP 422 status code [rajcybage]
|
19
22
|
* Add warning about EM reactor still running when stopping.
|
data/README.md
CHANGED
@@ -1,35 +1,17 @@
|
|
1
|
-
Thin
|
2
|
-
====
|
1
|
+
# Thin
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
Thin is a Ruby web server that glues together 3 of the best Ruby libraries in web history:
|
7
|
-
|
8
|
-
* The Mongrel parser: the root of Mongrel speed and security
|
9
|
-
* Event Machine: a network I/O library with extremely high scalability, performance and stability
|
10
|
-
* Rack: a minimal interface between webservers and Ruby frameworks
|
11
|
-
|
12
|
-
Which makes it, with all humility, the most secure, stable, fast and extensible Ruby web server
|
13
|
-
bundled in an easy to use gem for your own pleasure.
|
14
|
-
|
15
|
-
Site: http://code.macournoyer.com/thin/
|
16
|
-
Group: http://groups.google.com/group/thin-ruby/topics
|
17
|
-
Bugs: http://github.com/macournoyer/thin/issues
|
18
|
-
Code: http://github.com/macournoyer/thin
|
19
|
-
IRC: #thin on freenode
|
3
|
+
A small and fast Ruby web server
|
20
4
|
|
21
5
|
## Installation
|
22
6
|
|
23
|
-
|
24
|
-
|
25
|
-
|
7
|
+
```
|
8
|
+
gem install thin
|
9
|
+
```
|
26
10
|
|
27
|
-
Or
|
11
|
+
Or add `thin` to your `Gemfile`:
|
28
12
|
|
29
|
-
```
|
30
|
-
|
31
|
-
cd thin
|
32
|
-
rake install
|
13
|
+
```ruby
|
14
|
+
gem 'thin'
|
33
15
|
```
|
34
16
|
|
35
17
|
## Usage
|
@@ -37,18 +19,30 @@ rake install
|
|
37
19
|
A +thin+ script offers an easy way to start your Rack application:
|
38
20
|
|
39
21
|
```
|
40
|
-
cd to/your/app
|
41
22
|
thin start
|
42
23
|
```
|
43
24
|
|
44
|
-
|
45
|
-
|
25
|
+
Browse the `example` directory for sample applications.
|
26
|
+
|
27
|
+
## Usage with Rails Action Cable
|
28
|
+
|
29
|
+
To use Thin with Action Cable, add the following to your `Gemfile`:
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
gem 'faye-websocket'
|
33
|
+
gem 'thin' # If not already done
|
34
|
+
```
|
35
|
+
|
36
|
+
Create a `config/initializers/thin_action_cable.rb`:
|
46
37
|
|
47
|
-
|
38
|
+
```ruby
|
39
|
+
Rails.application.config.action_cable.use_faye = true
|
40
|
+
Faye::WebSocket.load_adapter 'thin'
|
41
|
+
```
|
48
42
|
|
49
|
-
###
|
43
|
+
### CLI
|
50
44
|
|
51
|
-
Use a rackup file and bind to localhost port 8080:
|
45
|
+
Use a rackup (config.ru) file and bind to localhost port 8080:
|
52
46
|
|
53
47
|
```
|
54
48
|
thin -R config.ru -a 127.0.0.1 -p 8080 start
|
@@ -60,11 +54,15 @@ Store the server process ID, log to a file and daemonize:
|
|
60
54
|
thin -p 9292 -P tmp/pids/thin.pid -l logs/thin.log -d start
|
61
55
|
```
|
62
56
|
|
63
|
-
Thin is quite flexible in that many options can be specified at the command line (see
|
57
|
+
Thin is quite flexible in that many options can be specified at the command line (see `thin -h` for more).
|
64
58
|
|
65
59
|
### Configuration files
|
66
60
|
|
67
|
-
You can create configuration
|
61
|
+
You can create a configuration file using `thin config -C config/thin.yml`.
|
62
|
+
|
63
|
+
You can then use it with all commands, such as: `thin start -C config/thin.yml`.
|
64
|
+
|
65
|
+
Here is an example config file:
|
68
66
|
|
69
67
|
```yaml
|
70
68
|
---
|
@@ -87,79 +85,13 @@ chdir: /path/to/your/apps/root
|
|
87
85
|
tag: a-name-to-show-up-in-ps aux
|
88
86
|
```
|
89
87
|
|
90
|
-
### Command Line Options
|
91
|
-
|
92
|
-
This is the usage for the thin command which can be obtained by running `thin -h` at the command line.
|
93
|
-
|
94
|
-
```sh
|
95
|
-
Usage: thin [options] start|stop|restart|config|install
|
96
|
-
|
97
|
-
Server options:
|
98
|
-
-a, --address HOST bind to HOST address (default: 0.0.0.0)
|
99
|
-
-p, --port PORT use PORT (default: 3000)
|
100
|
-
-S, --socket FILE bind to unix domain socket
|
101
|
-
-y, --swiftiply [KEY] Run using swiftiply
|
102
|
-
-A, --adapter NAME Rack adapter to use (default: autodetect)
|
103
|
-
(rack, rails, ramaze, merb, file)
|
104
|
-
-R, --rackup FILE Load a Rack config file instead of Rack adapter
|
105
|
-
-c, --chdir DIR Change to dir before starting
|
106
|
-
--stats PATH Mount the Stats adapter under PATH
|
107
|
-
|
108
|
-
SSL options:
|
109
|
-
--ssl Enables SSL
|
110
|
-
--ssl-key-file PATH Path to private key
|
111
|
-
--ssl-cert-file PATH Path to certificate
|
112
|
-
--ssl-disable-verify Disables (optional) client cert requests
|
113
|
-
|
114
|
-
Adapter options:
|
115
|
-
-e, --environment ENV Framework environment (default: development)
|
116
|
-
--prefix PATH Mount the app under PATH (start with /)
|
117
|
-
|
118
|
-
Daemon options:
|
119
|
-
-d, --daemonize Run daemonized in the background
|
120
|
-
-l, --log FILE File to redirect output (default: /home/robert/log/thin.log)
|
121
|
-
-P, --pid FILE File to store PID (default: tmp/pids/thin.pid)
|
122
|
-
-u, --user NAME User to run daemon as (use with -g)
|
123
|
-
-g, --group NAME Group to run daemon as (use with -u)
|
124
|
-
--tag NAME Additional text to display in process listing
|
125
|
-
|
126
|
-
Cluster options:
|
127
|
-
-s, --servers NUM Number of servers to start
|
128
|
-
-o, --only NUM Send command to only one server of the cluster
|
129
|
-
-C, --config FILE Load options from config file
|
130
|
-
--all [DIR] Send command to each config files in DIR
|
131
|
-
-O, --onebyone Restart the cluster one by one (only works with restart command)
|
132
|
-
-w, --wait NUM Maximum wait time for server to be started in seconds (use with -O)
|
133
|
-
|
134
|
-
Tuning options:
|
135
|
-
-b, --backend CLASS Backend to use, full classname
|
136
|
-
-t, --timeout SEC Request or command timeout in sec (default: 30)
|
137
|
-
-f, --force Force the execution of the command
|
138
|
-
--max-conns NUM Maximum number of open file descriptors (default: 1024)
|
139
|
-
Might require sudo to set higher than 1024
|
140
|
-
--max-persistent-conns NUM Maximum number of persistent connections
|
141
|
-
(default: 100)
|
142
|
-
--threaded Call the Rack application in threads [experimental]
|
143
|
-
--threadpool-size NUM Sets the size of the EventMachine threadpool.
|
144
|
-
(default: 20)
|
145
|
-
--no-epoll Disable the use of epoll
|
146
|
-
|
147
|
-
Common options:
|
148
|
-
-r, --require FILE require the library
|
149
|
-
-q, --quiet Silence all logging
|
150
|
-
-D, --debug Enable debug logging
|
151
|
-
-V, --trace Set tracing on (log raw request/response)
|
152
|
-
-h, --help Show this message
|
153
|
-
-v, --version Show version
|
154
|
-
```
|
155
|
-
|
156
88
|
## License
|
157
89
|
|
158
90
|
Ruby License, http://www.ruby-lang.org/en/LICENSE.txt.
|
159
91
|
|
160
92
|
## Credits
|
161
93
|
|
162
|
-
The parser was
|
94
|
+
The parser was originally from Mongrel http://mongrel.rubyforge.org by Zed Shaw.
|
163
95
|
Mongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed under
|
164
96
|
the Ruby license and the GPL2.
|
165
97
|
|
@@ -167,4 +99,4 @@ Thin is copyright Marc-Andre Cournoyer <macournoyer@gmail.com>
|
|
167
99
|
|
168
100
|
Get help at http://groups.google.com/group/thin-ruby/
|
169
101
|
Report bugs at https://github.com/macournoyer/thin/issues
|
170
|
-
and major security issues directly to me macournoyer@gmail.com.
|
102
|
+
and major security issues directly to me at macournoyer@gmail.com.
|
data/lib/thin/runner.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'logger'
|
2
2
|
require 'optparse'
|
3
3
|
require 'yaml'
|
4
|
+
require 'erb'
|
4
5
|
|
5
6
|
module Thin
|
6
7
|
# CLI runner.
|
@@ -219,7 +220,7 @@ module Thin
|
|
219
220
|
private
|
220
221
|
def load_options_from_config_file!
|
221
222
|
if file = @options.delete(:config)
|
222
|
-
YAML.
|
223
|
+
YAML.load(ERB.new(File.read(file)).result).each { |key, value| @options[key.to_sym] = value }
|
223
224
|
end
|
224
225
|
end
|
225
226
|
|
data/lib/thin/server.rb
CHANGED
@@ -104,9 +104,9 @@ module Thin
|
|
104
104
|
# received in any order.
|
105
105
|
args.each do |arg|
|
106
106
|
case arg
|
107
|
-
when
|
108
|
-
when String
|
109
|
-
when Hash
|
107
|
+
when 0.class, /^\d+$/ then port = arg.to_i
|
108
|
+
when String then host = arg
|
109
|
+
when Hash then options = arg
|
110
110
|
else
|
111
111
|
@app = arg if arg.respond_to?(:call)
|
112
112
|
end
|
data/lib/thin/version.rb
CHANGED
@@ -6,11 +6,11 @@ module Thin
|
|
6
6
|
module VERSION #:nodoc:
|
7
7
|
MAJOR = 1
|
8
8
|
MINOR = 7
|
9
|
-
TINY =
|
9
|
+
TINY = 1
|
10
10
|
|
11
11
|
STRING = [MAJOR, MINOR, TINY].join('.')
|
12
12
|
|
13
|
-
CODENAME = "
|
13
|
+
CODENAME = "Muffin Mode".freeze
|
14
14
|
|
15
15
|
RACK = [1, 0].freeze # Rack protocol version
|
16
16
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-Andre Cournoyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
147
|
version: '0'
|
148
148
|
requirements: []
|
149
149
|
rubyforge_project: thin
|
150
|
-
rubygems_version: 2.
|
150
|
+
rubygems_version: 2.5.1
|
151
151
|
signing_key:
|
152
152
|
specification_version: 4
|
153
153
|
summary: A thin and fast web server
|