tipi 0.53 → 0.54
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/.github/FUNDING.yml +1 -1
- data/.github/workflows/test.yml +1 -3
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +17 -16
- data/lib/tipi/http1_adapter.rb +3 -9
- data/lib/tipi/version.rb +1 -1
- data/test/test_http_server.rb +8 -8
- data/tipi.gemspec +3 -3
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d233f020bba51d04d83ad3bc0af0fba949a4988ed206cb3eb27c6cb66e9d581
|
4
|
+
data.tar.gz: 7462a9e229e3d78dbed4ffac92029b6fa117df683b425102f6de259eab8adc2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0fff68a7a6848dbaf6a3b5f846ada34542b532bc42d79821c47981354214c914130fda8192ffe12bc334554264297000afe82742388713de87356e17e6dc8a6
|
7
|
+
data.tar.gz: d8e9c715aace1b1dc26a78a5463016f4d0a65c552fa865a8b471ccb60955abd350304d1ae7db1ddaeebd4577ded25b048078c3e4fe39abe5e32385cbb5eddae3
|
data/.github/FUNDING.yml
CHANGED
@@ -1 +1 @@
|
|
1
|
-
github:
|
1
|
+
github: noteflakes
|
data/.github/workflows/test.yml
CHANGED
@@ -8,7 +8,7 @@ jobs:
|
|
8
8
|
fail-fast: false
|
9
9
|
matrix:
|
10
10
|
os: [ubuntu-latest, macos-latest]
|
11
|
-
ruby: ['
|
11
|
+
ruby: ['3.0', '3.1', '3.2', 'head']
|
12
12
|
|
13
13
|
name: >-
|
14
14
|
${{matrix.os}}, ${{matrix.ruby}}
|
@@ -27,7 +27,5 @@ jobs:
|
|
27
27
|
ruby-version: ${{matrix.ruby}}
|
28
28
|
bundler-cache: true # 'bundle install' and cache
|
29
29
|
cache-version: 2
|
30
|
-
- name: Show Linux kernel version
|
31
|
-
run: uname -r
|
32
30
|
- name: Run tests
|
33
31
|
run: bundle exec rake test
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tipi (0.
|
4
|
+
tipi (0.54)
|
5
5
|
acme-client (~> 2.0.9)
|
6
6
|
ever (~> 0.1)
|
7
|
-
extralite (~> 1.
|
8
|
-
h1p (~> 0.
|
7
|
+
extralite (~> 1.25)
|
8
|
+
h1p (~> 0.6.1)
|
9
9
|
http-2 (~> 0.11)
|
10
10
|
localhost (~> 1.1.4)
|
11
11
|
msgpack (~> 1.4.2)
|
12
|
-
polyphony (~> 0.
|
12
|
+
polyphony (~> 1.0.2)
|
13
13
|
qeweney (~> 0.18)
|
14
14
|
rack (>= 2.0.8, < 2.3.0)
|
15
15
|
websocket (~> 1.2.8)
|
@@ -17,31 +17,32 @@ PATH
|
|
17
17
|
GEM
|
18
18
|
remote: https://rubygems.org/
|
19
19
|
specs:
|
20
|
-
acme-client (2.0.
|
20
|
+
acme-client (2.0.13)
|
21
21
|
faraday (>= 1.0, < 3.0.0)
|
22
|
-
faraday-retry (
|
22
|
+
faraday-retry (>= 1.0, < 3.0.0)
|
23
23
|
cuba (3.9.3)
|
24
24
|
rack (>= 1.6.0)
|
25
25
|
docile (1.4.0)
|
26
26
|
escape_utils (1.2.2)
|
27
27
|
ever (0.2)
|
28
|
-
extralite (1.
|
29
|
-
faraday (2.
|
28
|
+
extralite (1.26)
|
29
|
+
faraday (2.7.5)
|
30
30
|
faraday-net_http (>= 2.0, < 3.1)
|
31
31
|
ruby2_keywords (>= 0.0.4)
|
32
|
-
faraday-net_http (3.0.
|
33
|
-
faraday-retry (1.0
|
34
|
-
|
32
|
+
faraday-net_http (3.0.2)
|
33
|
+
faraday-retry (2.1.0)
|
34
|
+
faraday (~> 2.0)
|
35
|
+
h1p (0.6.1)
|
35
36
|
http-2 (0.11.0)
|
36
|
-
json (2.6.
|
37
|
-
localhost (1.1.
|
38
|
-
memory_profiler (1.0.
|
37
|
+
json (2.6.3)
|
38
|
+
localhost (1.1.10)
|
39
|
+
memory_profiler (1.0.1)
|
39
40
|
minitest (5.11.3)
|
40
41
|
msgpack (1.4.5)
|
41
|
-
polyphony (0.
|
42
|
+
polyphony (1.0.2)
|
42
43
|
qeweney (0.18)
|
43
44
|
escape_utils (~> 1.2.1)
|
44
|
-
rack (2.2.
|
45
|
+
rack (2.2.7)
|
45
46
|
rake (13.0.6)
|
46
47
|
ruby2_keywords (0.0.5)
|
47
48
|
simplecov (0.17.1)
|
data/lib/tipi/http1_adapter.rb
CHANGED
@@ -160,21 +160,15 @@ module Tipi
|
|
160
160
|
# response API
|
161
161
|
|
162
162
|
CRLF = "\r\n"
|
163
|
-
|
164
|
-
|
163
|
+
|
165
164
|
# Sends response including headers and body. Waits for the request to complete
|
166
165
|
# if not yet completed. The body is sent using chunked transfer encoding.
|
167
166
|
# @param request [Qeweney::Request] HTTP request
|
168
167
|
# @param body [String] response body
|
169
168
|
# @param headers
|
170
169
|
def respond(request, body, headers)
|
171
|
-
|
172
|
-
request.tx_incr(
|
173
|
-
if body
|
174
|
-
@conn.write(formatted_headers, body)
|
175
|
-
else
|
176
|
-
@conn.write(formatted_headers)
|
177
|
-
end
|
170
|
+
written = H1P.send_response(@conn, headers, body)
|
171
|
+
request.tx_incr(written)
|
178
172
|
end
|
179
173
|
|
180
174
|
CHUNK_LENGTH_PROC = ->(len) { "#{len.to_s(16)}\r\n" }
|
data/lib/tipi/version.rb
CHANGED
data/test/test_http_server.rb
CHANGED
@@ -34,7 +34,7 @@ class HTTP1ServerTest < MiniTest::Test
|
|
34
34
|
|
35
35
|
response = connection.readpartial(8192)
|
36
36
|
expected = <<~HTTP.chomp.crlf_lines.chomp
|
37
|
-
HTTP/1.1 200
|
37
|
+
HTTP/1.1 200 OK
|
38
38
|
Content-Length: 13
|
39
39
|
|
40
40
|
Hello, world!
|
@@ -52,7 +52,7 @@ class HTTP1ServerTest < MiniTest::Test
|
|
52
52
|
|
53
53
|
response = connection.readpartial(8192)
|
54
54
|
expected = <<~HTTP.crlf_lines.chomp
|
55
|
-
HTTP/1.1 200
|
55
|
+
HTTP/1.1 200 OK
|
56
56
|
Content-Length: 13
|
57
57
|
|
58
58
|
Hello, world!
|
@@ -68,13 +68,13 @@ class HTTP1ServerTest < MiniTest::Test
|
|
68
68
|
connection << "GET / HTTP/1.0\r\nConnection: keep-alive\r\n\r\n"
|
69
69
|
response = connection.readpartial(8192)
|
70
70
|
assert !connection.eof?
|
71
|
-
assert_equal("HTTP/1.1 200\r\nContent-Length: 2\r\n\r\nHi", response)
|
71
|
+
assert_equal("HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nHi", response)
|
72
72
|
|
73
73
|
connection << "GET / HTTP/1.1\r\n\r\n"
|
74
74
|
response = connection.readpartial(8192)
|
75
75
|
assert !connection.eof?
|
76
76
|
expected = <<~HTTP.crlf_lines.chomp
|
77
|
-
HTTP/1.1 200
|
77
|
+
HTTP/1.1 200 OK
|
78
78
|
Content-Length: 2
|
79
79
|
|
80
80
|
Hi
|
@@ -84,7 +84,7 @@ class HTTP1ServerTest < MiniTest::Test
|
|
84
84
|
connection << "GET / HTTP/1.0\r\n\r\n"
|
85
85
|
response = connection.readpartial(8192)
|
86
86
|
assert connection.eof?
|
87
|
-
assert_equal("HTTP/1.1 200\r\nContent-Length: 2\r\n\r\nHi", response)
|
87
|
+
assert_equal("HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nHi", response)
|
88
88
|
end
|
89
89
|
|
90
90
|
def test_pipelining_client
|
@@ -101,10 +101,10 @@ class HTTP1ServerTest < MiniTest::Test
|
|
101
101
|
response = connection.readpartial(8192)
|
102
102
|
|
103
103
|
expected = <<~HTTP.crlf_lines.chomp
|
104
|
-
HTTP/1.1 200
|
104
|
+
HTTP/1.1 200 OK
|
105
105
|
Content-Length: 13
|
106
106
|
|
107
|
-
Hello, world!HTTP/1.1 200
|
107
|
+
Hello, world!HTTP/1.1 200 OK
|
108
108
|
Content-Length: 14
|
109
109
|
|
110
110
|
Hello, foobar!
|
@@ -193,7 +193,7 @@ class HTTP1ServerTest < MiniTest::Test
|
|
193
193
|
response = connection.readpartial(8192)
|
194
194
|
assert !connection.eof?
|
195
195
|
expected = <<~HTTP.crlf_lines.chomp
|
196
|
-
HTTP/1.1 200
|
196
|
+
HTTP/1.1 200 OK
|
197
197
|
Content-Length: 2
|
198
198
|
|
199
199
|
Hi
|
data/tipi.gemspec
CHANGED
@@ -22,11 +22,11 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.executables = ['tipi']
|
24
24
|
|
25
|
-
s.add_runtime_dependency 'polyphony', '~>0.
|
25
|
+
s.add_runtime_dependency 'polyphony', '~>1.0.2'
|
26
26
|
s.add_runtime_dependency 'ever', '~>0.1'
|
27
27
|
s.add_runtime_dependency 'qeweney', '~>0.18'
|
28
|
-
s.add_runtime_dependency 'extralite', '~>1.
|
29
|
-
s.add_runtime_dependency 'h1p', '~>0.
|
28
|
+
s.add_runtime_dependency 'extralite', '~>1.25'
|
29
|
+
s.add_runtime_dependency 'h1p', '~>0.6.1'
|
30
30
|
|
31
31
|
s.add_runtime_dependency 'http-2', '~>0.11'
|
32
32
|
s.add_runtime_dependency 'rack', '>=2.0.8', '<2.3.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tipi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.54'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: polyphony
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.0.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ever
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.25'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.25'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: h1p
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.6.1
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.6.1
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: http-2
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -377,7 +377,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
377
377
|
- !ruby/object:Gem::Version
|
378
378
|
version: '0'
|
379
379
|
requirements: []
|
380
|
-
rubygems_version: 3.
|
380
|
+
rubygems_version: 3.4.1
|
381
381
|
signing_key:
|
382
382
|
specification_version: 4
|
383
383
|
summary: Tipi - the All-in-one Web Server for Ruby Apps
|