tipi 0.37 → 0.37.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -5
- data/TODO.md +3 -5
- data/lib/tipi/http1_adapter.rb +8 -6
- data/lib/tipi/http2_stream.rb +1 -1
- data/lib/tipi/version.rb +1 -1
- data/test/test_http_server.rb +2 -1
- data/tipi.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46b961262c4d31ce6e479864bced5b698f77e757f60e93a9dff8ba7401f2fa0d
|
4
|
+
data.tar.gz: 23881ff338c0b7aeaea31a7700ed08271eca7349322fb1868246c1541386c2b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccb684d646130d74292809c1c3080f5c4280d260ae38da119813d9137e84278dfe61cf7471512353b95ea36ced2bb2913fd23695e1b3ce549a17a66d243c1bd6
|
7
|
+
data.tar.gz: fe7e6ed4c6b10ae4d409edbf9e3a105d49763cccc6c8ed81f42af5b7a903b45f53548bff830a63051c5626cd107fe169538bba08b83f8a26adf5b36f51a4f070
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tipi (0.37)
|
4
|
+
tipi (0.37.1)
|
5
5
|
http-2 (~> 0.10.0)
|
6
6
|
http_parser.rb (~> 0.6.0)
|
7
7
|
msgpack (~> 1.4.2)
|
8
|
-
polyphony (~> 0.
|
9
|
-
qeweney (~> 0.
|
8
|
+
polyphony (~> 0.52.0)
|
9
|
+
qeweney (~> 0.6)
|
10
10
|
rack (>= 2.0.8, < 2.3.0)
|
11
11
|
websocket (~> 1.2.8)
|
12
12
|
|
@@ -28,8 +28,8 @@ GEM
|
|
28
28
|
minitest (>= 5.0)
|
29
29
|
ruby-progressbar
|
30
30
|
msgpack (1.4.2)
|
31
|
-
polyphony (0.
|
32
|
-
qeweney (0.
|
31
|
+
polyphony (0.52.0)
|
32
|
+
qeweney (0.6)
|
33
33
|
escape_utils (~> 1.2.1)
|
34
34
|
rack (2.2.3)
|
35
35
|
rake (12.3.3)
|
data/TODO.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
|
1
|
+
For immediate execution:
|
2
2
|
|
3
|
-
Problems to fix:
|
4
3
|
|
5
|
-
- Memory leak (in server? multi agent? multi client?)
|
6
4
|
|
7
5
|
# Roadmap
|
8
6
|
|
@@ -14,7 +12,7 @@ Problems to fix:
|
|
14
12
|
- https://gitlab.com/honeyryderchuck/http-2-next
|
15
13
|
- Open an issue there, ask what's the difference between the two gems?
|
16
14
|
|
17
|
-
## 0.
|
15
|
+
## 0.38
|
18
16
|
|
19
17
|
- Add more poly CLI commands and options:
|
20
18
|
|
@@ -26,7 +24,7 @@ Problems to fix:
|
|
26
24
|
- set port to bind to
|
27
25
|
- set forking process count
|
28
26
|
|
29
|
-
## 0.
|
27
|
+
## 0.39 Working Sinatra application
|
30
28
|
|
31
29
|
- app with database access (postgresql)
|
32
30
|
- benchmarks!
|
data/lib/tipi/http1_adapter.rb
CHANGED
@@ -197,15 +197,17 @@ module Tipi
|
|
197
197
|
# @param headers
|
198
198
|
def respond(body, headers)
|
199
199
|
consume_request if @parsing
|
200
|
-
data = format_headers(headers, body)
|
200
|
+
data = [format_headers(headers, body)]
|
201
201
|
if body
|
202
202
|
if @parser.http_minor == 0
|
203
203
|
data << body
|
204
204
|
else
|
205
|
-
data << body.bytesize.to_s(16) << CRLF << body << CRLF_ZERO_CRLF_CRLF
|
205
|
+
# data << body.bytesize.to_s(16) << CRLF << body << CRLF_ZERO_CRLF_CRLF
|
206
|
+
data << "#{body.bytesize.to_s(16)}\r\n#{body}\r\n0\r\n\r\n"
|
206
207
|
end
|
207
208
|
end
|
208
|
-
@conn
|
209
|
+
# Polyphony.backend_sendv(@conn, data, 0)
|
210
|
+
@conn.write(*data)
|
209
211
|
end
|
210
212
|
|
211
213
|
DEFAULT_HEADERS_OPTS = {
|
@@ -220,7 +222,7 @@ module Tipi
|
|
220
222
|
# @return [void]
|
221
223
|
def send_headers(headers, opts = DEFAULT_HEADERS_OPTS)
|
222
224
|
data = format_headers(headers, true)
|
223
|
-
@conn.write(data
|
225
|
+
@conn.write(data)
|
224
226
|
end
|
225
227
|
|
226
228
|
# Sends a response body chunk. If no headers were sent, default headers are
|
@@ -233,7 +235,7 @@ module Tipi
|
|
233
235
|
data = []
|
234
236
|
data << "#{chunk.bytesize.to_s(16)}\r\n#{chunk}\r\n" if chunk
|
235
237
|
data << "0\r\n\r\n" if done
|
236
|
-
@conn.write(data.join)
|
238
|
+
@conn.write(data.join) unless data.empty?
|
237
239
|
end
|
238
240
|
|
239
241
|
# Finishes the response to the current request. If no headers were sent,
|
@@ -257,7 +259,7 @@ module Tipi
|
|
257
259
|
def format_headers(headers, body)
|
258
260
|
status = headers[':status']
|
259
261
|
status ||= (body ? Qeweney::Status::OK : Qeweney::Status::NO_CONTENT)
|
260
|
-
lines =
|
262
|
+
lines = format_status_line(body, status)
|
261
263
|
headers.each do |k, v|
|
262
264
|
next if k =~ /^:/
|
263
265
|
|
data/lib/tipi/http2_stream.rb
CHANGED
data/lib/tipi/version.rb
CHANGED
data/test/test_http_server.rb
CHANGED
@@ -210,7 +210,8 @@ class HTTP1ServerTest < MiniTest::Test
|
|
210
210
|
|
211
211
|
opts = {
|
212
212
|
upgrade: {
|
213
|
-
echo: lambda do |
|
213
|
+
echo: lambda do |adapter, _headers|
|
214
|
+
conn = adapter.conn
|
214
215
|
conn << <<~HTTP.http_lines
|
215
216
|
HTTP/1.1 101 Switching Protocols
|
216
217
|
Upgrade: echo
|
data/tipi.gemspec
CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
s.executables = ['tipi']
|
21
21
|
|
22
|
-
s.add_runtime_dependency 'polyphony', '~>0.
|
23
|
-
s.add_runtime_dependency 'qeweney', '~>0.
|
22
|
+
s.add_runtime_dependency 'polyphony', '~>0.52.0'
|
23
|
+
s.add_runtime_dependency 'qeweney', '~>0.6'
|
24
24
|
|
25
25
|
s.add_runtime_dependency 'http_parser.rb', '~>0.6.0'
|
26
26
|
s.add_runtime_dependency 'http-2', '~>0.10.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:
|
4
|
+
version: 0.37.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: polyphony
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.52.0
|
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: 0.
|
26
|
+
version: 0.52.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: qeweney
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.6'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.6'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: http_parser.rb
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|