rainbows 5.0.0 → 5.0.0.5.ge717
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/.olddoc.yml +6 -3
- data/Documentation/rainbows.1.txt +2 -2
- data/FAQ +1 -1
- data/GNUmakefile +1 -2
- data/HACKING +1 -1
- data/README +5 -5
- data/Sandbox +1 -1
- data/Static_Files +0 -8
- data/TUNING +2 -2
- data/Test_Suite +1 -1
- data/archive/rfmig.rb +1 -1
- data/lib/rainbows.rb +1 -1
- data/lib/rainbows/configurator.rb +1 -1
- data/lib/rainbows/epoll.rb +1 -1
- data/lib/rainbows/reverse_proxy.rb +1 -1
- data/rainbows.gemspec +4 -5
- data/t/byte-range-common.sh +9 -8
- data/t/t0300-async_sinatra.sh +1 -1
- data/t/test_isolate.rb +9 -6
- data/vs_Unicorn +1 -1
- metadata +18 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ca864460733b7f19467c85350948190f34dd8063
|
|
4
|
+
data.tar.gz: bddf103c8b19c4d936e1ff67a939dfe60b63ecf6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c4db9d819af7d582d7dc5eb9b714ea818e5e7d2832073b9a3c60f9c829729acb032b242b9b5939fd5269a511ca4347455510c7ee0ed3a07f69cbf37cc0d8a563
|
|
7
|
+
data.tar.gz: fb42bee73a9ac1c9893c1866457fd6f4d7570c8cdb62399745588b948feb0b9892c9a9e3c09f4c25f9aa4a2f783382b5813be0d1d58f4cab56a114bca5c4c348
|
data/.olddoc.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
cgit_url:
|
|
2
|
+
cgit_url: https://bogomips.org/rainbows.git
|
|
3
3
|
git_url: git://bogomips.org/rainbows.git
|
|
4
|
-
rdoc_url:
|
|
4
|
+
rdoc_url: https://bogomips.org/rainbows/
|
|
5
5
|
merge_html:
|
|
6
6
|
rainbows_1: Documentation/rainbows.1.html
|
|
7
7
|
Summary: Documentation/comparison.html
|
|
@@ -15,4 +15,7 @@ noindex:
|
|
|
15
15
|
- Unicorn::SocketHelper
|
|
16
16
|
- EM
|
|
17
17
|
- Revactor
|
|
18
|
-
ml_url:
|
|
18
|
+
ml_url: https://bogomips.org/rainbows-public/
|
|
19
|
+
nntp_url:
|
|
20
|
+
- nntp://news.public-inbox.org/inbox.comp.lang.ruby.rainbows
|
|
21
|
+
- nntp://news.gmane.org/gmane.comp.lang.ruby.rainbows.general
|
|
@@ -155,7 +155,7 @@ RACKUP_FILE, some frameworks do not require them.
|
|
|
155
155
|
* [Rack RDoc][2]
|
|
156
156
|
* [Rackup HowTo][3]
|
|
157
157
|
|
|
158
|
-
[1]:
|
|
158
|
+
[1]: https://bogomips.org/rainbows/
|
|
159
159
|
[2]: http://rdoc.info/gems/r#/gems/rack/frames
|
|
160
160
|
[3]: http://wiki.github.com/rack/rack/tutorial-rackup-howto
|
|
161
|
-
[4]:
|
|
161
|
+
[4]: https://bogomips.org/rainbows/SIGNALS.html
|
data/FAQ
CHANGED
|
@@ -64,7 +64,7 @@ requires a extra {patch}[http://haproxy.1wt.eu/download/patches/].
|
|
|
64
64
|
If you don't need streaming "rack.input", then nginx is a great HTTPS
|
|
65
65
|
reverse proxy.
|
|
66
66
|
|
|
67
|
-
Refer to the {unicorn FAQ}[
|
|
67
|
+
Refer to the {unicorn FAQ}[https://bogomips.org/unicorn/FAQ.html] on how
|
|
68
68
|
to ensure redirects go to "https://" URLs.
|
|
69
69
|
|
|
70
70
|
|
data/GNUmakefile
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# use GNU Make to run tests in parallel, and without depending on RubyGems
|
|
2
2
|
all::
|
|
3
|
-
|
|
4
|
-
RSYNC_DEST := rainbows.bogomips.org:/srv/rainbows
|
|
3
|
+
RSYNC_DEST := bogomips.org:/srv/bogomips/rainbows
|
|
5
4
|
rfpackage := rainbows
|
|
6
5
|
PLACEHOLDERS := rainbows_1 Summary
|
|
7
6
|
|
data/HACKING
CHANGED
|
@@ -13,7 +13,7 @@ Please wrap documentation at 72 characters-per-line or less (long URLs
|
|
|
13
13
|
are exempt) so it is comfortably readable from terminals.
|
|
14
14
|
|
|
15
15
|
When referencing mailing list posts, use
|
|
16
|
-
"
|
|
16
|
+
"https://bogomips.org/rainbows-public/<Message-ID>/" if possible since
|
|
17
17
|
the Message-ID remains searchable even if the website becomes unavailable.
|
|
18
18
|
|
|
19
19
|
== Contributing
|
data/README
CHANGED
|
@@ -5,7 +5,7 @@ unicorn, but designed to handle applications that expect long
|
|
|
5
5
|
request/response times and/or slow clients.
|
|
6
6
|
|
|
7
7
|
If you're on GNU/Linux and overwhelmed by options in \Rainbows!,
|
|
8
|
-
consider {yahns}[
|
|
8
|
+
consider {yahns}[https://yhbt.net/yahns/] as it has fewer options
|
|
9
9
|
and more energy-efficient during non-peak traffic and may also
|
|
10
10
|
be configured as a single worker process.
|
|
11
11
|
|
|
@@ -51,7 +51,7 @@ network concurrency.
|
|
|
51
51
|
* Designed for {Rack}[http://rack.github.io/], the standard for
|
|
52
52
|
modern Ruby HTTP applications.
|
|
53
53
|
|
|
54
|
-
* Built on {Unicorn}[
|
|
54
|
+
* Built on {Unicorn}[https://bogomips.org/unicorn/], inheriting its
|
|
55
55
|
process/socket management features such as transparent upgrades and
|
|
56
56
|
Ruby configuration DSL.
|
|
57
57
|
|
|
@@ -117,7 +117,7 @@ In APP_ROOT (where config.ru is located), run:
|
|
|
117
117
|
For deployments, it can use a config file for Unicorn and
|
|
118
118
|
\Rainbows!-specific options specified by the +--config-file/-c+
|
|
119
119
|
command-line switch. \Rainbows! accepts all options found in
|
|
120
|
-
{Unicorn::Configurator}[
|
|
120
|
+
{Unicorn::Configurator}[https://bogomips.org/unicorn/Unicorn/Configurator.html]
|
|
121
121
|
as well as the "\Rainbows!" block, so you can have the following in your
|
|
122
122
|
config file:
|
|
123
123
|
|
|
@@ -142,7 +142,7 @@ You can get the latest source via git from the following locations
|
|
|
142
142
|
You may browse the code from the web and download the latest snapshot
|
|
143
143
|
tarballs here:
|
|
144
144
|
|
|
145
|
-
*
|
|
145
|
+
* https://bogomips.org/rainbows.git
|
|
146
146
|
* http://repo.or.cz/w/rainbows.git (gitweb)
|
|
147
147
|
|
|
148
148
|
Inline patches (from "git format-patch") to the mailing list are
|
|
@@ -168,6 +168,6 @@ to post on the mailing list. No top posting.
|
|
|
168
168
|
|
|
169
169
|
* email: mailto:rainbows-public@bogomips.org
|
|
170
170
|
* subscribe: mailto:rainbows-public+subscribe@bogomips.org
|
|
171
|
-
* archives:
|
|
171
|
+
* archives: https://bogomips.org/rainbows-public/
|
|
172
172
|
nntp://news.public-inbox.org/inbox.comp.lang.ruby.rainbows
|
|
173
173
|
nntp://news.gmane.org/gmane.comp.lang.ruby.rainbows.general
|
data/Sandbox
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Tips for using \Rainbows! with Sandbox installation tools
|
|
2
2
|
|
|
3
|
-
Most {tips for unicorn}[
|
|
3
|
+
Most {tips for unicorn}[https://bogomips.org/unicorn/Sandbox.html]
|
|
4
4
|
for Bundler and Isolate apply to \Rainbows! as well.
|
|
5
5
|
|
|
6
6
|
== TLDR (Bundler)
|
data/Static_Files
CHANGED
|
@@ -61,11 +61,3 @@ With large files and high-throughput clients, there should be little
|
|
|
61
61
|
performance difference compared to optimal C implementation such as
|
|
62
62
|
nginx and lighttpd. Ruby runtime overhead matters more when serving
|
|
63
63
|
slower clients and smaller files.
|
|
64
|
-
|
|
65
|
-
== The Future...
|
|
66
|
-
|
|
67
|
-
We'll also support an open file cache (similar to nginx) which
|
|
68
|
-
allows us to reuse open file descriptors.
|
|
69
|
-
|
|
70
|
-
Under Linux, we'll support the splice(2) system call for zero-copy
|
|
71
|
-
proxying {io_splice}[http://bogomips.org/ruby_io_splice/], too.
|
data/TUNING
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Tuning \Rainbows!
|
|
2
2
|
|
|
3
|
-
Most of the {tuning notes}[
|
|
3
|
+
Most of the {tuning notes}[https://bogomips.org/unicorn/TUNING.html]
|
|
4
4
|
apply to \Rainbows! as well. \Rainbows! is not particularly optimized
|
|
5
5
|
at the moment and is designed for applications that spend large amounts
|
|
6
6
|
of the time waiting on network activity. Thus memory usage and memory
|
|
@@ -26,7 +26,7 @@ never be the primary goal of the project.
|
|
|
26
26
|
the kernel.
|
|
27
27
|
|
|
28
28
|
* If your workers do not seem to be releasing memory to the OS after
|
|
29
|
-
traffic spikes, consider the {mall}[
|
|
29
|
+
traffic spikes, consider the {mall}[https://bogomips.org/mall/] library
|
|
30
30
|
which allows access to the mallopt(3) function from Ruby. As of
|
|
31
31
|
October 2009 tcmalloc (the default allocator for Ruby Enterprise
|
|
32
32
|
Edition) does not release memory back to the kernel, the best it can
|
data/Test_Suite
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
t/README
|
|
1
|
+
./t/README
|
data/archive/rfmig.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
require 'find'
|
|
3
3
|
require 'fileutils'
|
|
4
4
|
rfdir = 'rubyforge.org:/var/www/gforge-projects/rainbows/'
|
|
5
|
-
newbase = '
|
|
5
|
+
newbase = 'https://bogomips.org/rainbows/'
|
|
6
6
|
refresh = '<meta http-equiv="refresh" content="0; url=%s" />'
|
|
7
7
|
old = 'rf.old'
|
|
8
8
|
new = 'rf.new'
|
data/lib/rainbows.rb
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# the value passed to TCP_DEFER_ACCEPT actually matters in Linux 2.6.32+
|
|
5
5
|
Unicorn::SocketHelper::DEFAULTS[:tcp_defer_accept] = 60
|
|
6
6
|
|
|
7
|
-
# See
|
|
7
|
+
# See https://bogomips.org/rainbows/ for documentation
|
|
8
8
|
module Rainbows
|
|
9
9
|
# :stopdoc:
|
|
10
10
|
O = {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- encoding: binary -*-
|
|
2
2
|
|
|
3
3
|
# This module adds \Rainbows! to the
|
|
4
|
-
# {Unicorn::Configurator}[
|
|
4
|
+
# {Unicorn::Configurator}[https://bogomips.org/unicorn/Unicorn/Configurator.html]
|
|
5
5
|
# \Rainbows!-specific configuration options must be inside a the Rainbows!
|
|
6
6
|
# block, otherwise Unicorn::Configurator directives may be used anywhere
|
|
7
7
|
# in the file.
|
data/lib/rainbows/epoll.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require 'sendfile'
|
|
4
4
|
|
|
5
5
|
# Edge-triggered epoll concurrency model using
|
|
6
|
-
# {sleepy_penguin}[
|
|
6
|
+
# {sleepy_penguin}[https://bogomips.org/sleepy_penguin/] for epoll.
|
|
7
7
|
#
|
|
8
8
|
# Unlike more portable options like Coolio and EventMachine, this
|
|
9
9
|
# is Linux-only, but uses edge-triggering instead of level-triggering,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require 'socket'
|
|
4
4
|
require 'thread'
|
|
5
5
|
require 'uri'
|
|
6
|
-
require 'kcar' #
|
|
6
|
+
require 'kcar' # https://bogomips.org/kcar/ -- gem install kcar
|
|
7
7
|
|
|
8
8
|
# This is lightly tested and has an unstable configuration interface.
|
|
9
9
|
# ***** Do not rely on anything under the ReverseProxy namespace! *****
|
data/rainbows.gemspec
CHANGED
|
@@ -19,18 +19,17 @@
|
|
|
19
19
|
s.summary = summary
|
|
20
20
|
|
|
21
21
|
# we want a newer Rack for a valid HeaderHash#each
|
|
22
|
-
s.add_dependency(%q<rack>, ['
|
|
22
|
+
s.add_dependency(%q<rack>, ['>= 1.1', '< 3.0'])
|
|
23
23
|
|
|
24
24
|
# kgio 2.5 has kgio_wait_* methods that take optional timeout args
|
|
25
25
|
s.add_dependency(%q<kgio>, ['~> 2.5'])
|
|
26
26
|
|
|
27
27
|
# we need unicorn for the HTTP parser and process management
|
|
28
|
-
# we need unicorn
|
|
29
|
-
|
|
30
|
-
s.add_dependency(%q<unicorn>, ["~> 5.0"])
|
|
28
|
+
# we need unicorn 5.1+ to relax the Rack dependency.
|
|
29
|
+
s.add_dependency(%q<unicorn>, ["~> 5.1"])
|
|
31
30
|
|
|
32
31
|
s.add_development_dependency(%q<isolate>, "~> 3.1")
|
|
33
|
-
s.add_development_dependency(%q<olddoc>, "~> 1.
|
|
32
|
+
s.add_development_dependency(%q<olddoc>, "~> 1.2")
|
|
34
33
|
|
|
35
34
|
# optional runtime dependencies depending on configuration
|
|
36
35
|
# see t/test_isolate.rb for the exact versions we've tested with
|
data/t/byte-range-common.sh
CHANGED
|
@@ -34,14 +34,15 @@ check_content_range () {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
t_begin "read random blob sha1s" && {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
file="file://$(pwd)/random_blob"
|
|
38
|
+
sha1_head=$(curl -sSff $range_head $file | rsha1)
|
|
39
|
+
sha1_tail=$(curl -sSff $range_tail $file | rsha1)
|
|
40
|
+
sha1_mid=$(curl -sSff $range_mid $file | rsha1)
|
|
41
|
+
sha1_n1=$(curl -sSff $range_n1 $file | rsha1)
|
|
42
|
+
sha1_n2=$(curl -sSff $range_n2 $file | rsha1)
|
|
43
|
+
sha1_1b_head=$(curl -sSff $range_1b_head $file | rsha1)
|
|
44
|
+
sha1_1b_tail=$(curl -sSff $range_1b_tail $file | rsha1)
|
|
45
|
+
sha1_1b_mid=$(curl -sSff $range_1b_mid $file | rsha1)
|
|
45
46
|
sha1_all=$(rsha1 < random_blob)
|
|
46
47
|
echo "$sha1_all=$sha1_n1"
|
|
47
48
|
}
|
data/t/t0300-async_sinatra.sh
CHANGED
data/t/test_isolate.rb
CHANGED
|
@@ -17,15 +17,18 @@
|
|
|
17
17
|
lock.flock(File::LOCK_EX)
|
|
18
18
|
Isolate.now!(opts) do
|
|
19
19
|
gem 'kgio', '2.10.0'
|
|
20
|
-
gem 'rack', '
|
|
21
|
-
gem 'kcar', '0.
|
|
22
|
-
gem 'raindrops', '0.
|
|
23
|
-
gem 'unicorn', '5.0
|
|
20
|
+
gem 'rack', '2.0.1'
|
|
21
|
+
gem 'kcar', '0.6.0'
|
|
22
|
+
gem 'raindrops', '0.17.0'
|
|
23
|
+
gem 'unicorn', '5.2.0'
|
|
24
24
|
|
|
25
25
|
if engine == "ruby"
|
|
26
26
|
gem 'sendfile', '1.2.2'
|
|
27
|
-
gem 'eventmachine', '1.0.
|
|
28
|
-
|
|
27
|
+
gem 'eventmachine', '1.2.0.1'
|
|
28
|
+
|
|
29
|
+
# not compatible with rack 2.x
|
|
30
|
+
# gem 'async_sinatra', '1.2.1'
|
|
31
|
+
|
|
29
32
|
if RUBY_VERSION.to_f < 2.2
|
|
30
33
|
gem 'cool.io', '1.1.0'
|
|
31
34
|
gem 'neverblock', '0.1.6.2'
|
data/vs_Unicorn
CHANGED
|
@@ -82,7 +82,7 @@ unicorn code), some things are not:
|
|
|
82
82
|
to different worker processes, and if your listen() +:backlog+ is
|
|
83
83
|
overflowing: to other machines in your cluster.
|
|
84
84
|
|
|
85
|
-
* Accepts the same {signals}[
|
|
85
|
+
* Accepts the same {signals}[https://bogomips.org/unicorn/SIGNALS.html]
|
|
86
86
|
for process management, so you can share scripts to manage them (and
|
|
87
87
|
nginx, too).
|
|
88
88
|
|
metadata
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rainbows
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.0.0
|
|
4
|
+
version: 5.0.0.5.ge717
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rainbows! hackers
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2016-11-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rack
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '1.1'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '3.0'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
|
-
- - "
|
|
27
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: '1.1'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '3.0'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: kgio
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,14 +50,14 @@ dependencies:
|
|
|
44
50
|
requirements:
|
|
45
51
|
- - "~>"
|
|
46
52
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '5.
|
|
53
|
+
version: '5.1'
|
|
48
54
|
type: :runtime
|
|
49
55
|
prerelease: false
|
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
57
|
requirements:
|
|
52
58
|
- - "~>"
|
|
53
59
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '5.
|
|
60
|
+
version: '5.1'
|
|
55
61
|
- !ruby/object:Gem::Dependency
|
|
56
62
|
name: isolate
|
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,14 +78,14 @@ dependencies:
|
|
|
72
78
|
requirements:
|
|
73
79
|
- - "~>"
|
|
74
80
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '1.
|
|
81
|
+
version: '1.2'
|
|
76
82
|
type: :development
|
|
77
83
|
prerelease: false
|
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
85
|
requirements:
|
|
80
86
|
- - "~>"
|
|
81
87
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '1.
|
|
88
|
+
version: '1.2'
|
|
83
89
|
description: |-
|
|
84
90
|
\Rainbows! is an HTTP server for sleepy Rack applications. It is based on
|
|
85
91
|
unicorn, but designed to handle applications that expect long
|
|
@@ -425,7 +431,7 @@ files:
|
|
|
425
431
|
- t/worker-follows-master-to-death.ru
|
|
426
432
|
- t/write-on-close.ru
|
|
427
433
|
- vs_Unicorn
|
|
428
|
-
homepage:
|
|
434
|
+
homepage: https://bogomips.org/rainbows/
|
|
429
435
|
licenses:
|
|
430
436
|
- GPL-2.0+
|
|
431
437
|
- Nonstandard
|
|
@@ -441,12 +447,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
441
447
|
version: '0'
|
|
442
448
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
443
449
|
requirements:
|
|
444
|
-
- - "
|
|
450
|
+
- - ">"
|
|
445
451
|
- !ruby/object:Gem::Version
|
|
446
|
-
version:
|
|
452
|
+
version: 1.3.1
|
|
447
453
|
requirements: []
|
|
448
454
|
rubyforge_project:
|
|
449
|
-
rubygems_version: 2.
|
|
455
|
+
rubygems_version: 2.6.6
|
|
450
456
|
signing_key:
|
|
451
457
|
specification_version: 4
|
|
452
458
|
summary: "- unicorn for sleepy apps and slow clients"
|