rainbows 5.0.0 → 5.0.0.5.ge717
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|