thin 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|