tipi 0.40 → 0.41

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,25 +3,7 @@
3
3
  require 'rack'
4
4
 
5
5
  module Tipi
6
- module RackAdapter
7
- # Implements a rack input stream:
8
- # https://www.rubydoc.info/github/rack/rack/master/file/SPEC#label-The+Input+Stream
9
- class InputStream
10
- def initialize(request)
11
- @request = request
12
- end
13
-
14
- def gets; end
15
-
16
- def read(length = nil, outbuf = nil); end
17
-
18
- def each(&block)
19
- @request.each_chunk(&block)
20
- end
21
-
22
- def rewind; end
23
- end
24
-
6
+ module RackAdapter
25
7
  class << self
26
8
  def run(app)
27
9
  ->(req) { respond(req, app.(env(req))) }
@@ -32,41 +14,8 @@ module Tipi
32
14
  instance_eval(src, path, 1)
33
15
  end
34
16
 
35
- RACK_ENV = {
36
- 'SCRIPT_NAME' => '',
37
- 'rack.version' => Rack::VERSION,
38
- 'SERVER_PORT' => '80', # ?
39
- 'rack.url_scheme' => 'http', # ?
40
- 'rack.errors' => STDERR, # ?
41
- 'rack.multithread' => false,
42
- 'rack.run_once' => false,
43
- 'rack.hijack?' => false,
44
- 'rack.hijack' => nil,
45
- 'rack.hijack_io' => nil,
46
- 'rack.session' => nil,
47
- 'rack.logger' => nil,
48
- 'rack.multipart.buffer_size' => nil,
49
- 'rack.multipar.tempfile_factory' => nil
50
- }
51
-
52
17
  def env(request)
53
- Hash.new do |h, k|
54
- h[k] = env_value_from_request(request, k)
55
- end
56
- end
57
-
58
- HTTP_HEADER_RE = /^HTTP_(.+)$/.freeze
59
-
60
- def env_value_from_request(request, key)
61
- case key
62
- when 'REQUEST_METHOD' then request.method
63
- when 'PATH_INFO' then request.path
64
- when 'QUERY_STRING' then request.query_string || ''
65
- when 'SERVER_NAME' then request.headers['host']
66
- when 'rack.input' then InputStream.new(request)
67
- when HTTP_HEADER_RE then request.headers[$1.downcase]
68
- else RACK_ENV[key]
69
- end
18
+ Qeweney.rack_env_from_request(request)
70
19
  end
71
20
 
72
21
  def respond(request, (status_code, headers, body))
@@ -8,7 +8,7 @@ module Tipi
8
8
 
9
9
  def serve_io(io, opts)
10
10
  if !opts[:stat] || opts[:stat].size >= SPLICE_CHUNKS_SIZE_THRESHOLD
11
- @adapter.respond_from_io(self, io, opts[:headers])
11
+ @adapter.respond_from_io(self, io, opts[:headers], opts[:chunk_size] || 2**14)
12
12
  else
13
13
  respond(io.read, opts[:headers] || {})
14
14
  end
data/lib/tipi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tipi
4
- VERSION = '0.40'
4
+ VERSION = '0.41'
5
5
  end
data/tipi.gemspec CHANGED
@@ -14,13 +14,14 @@ Gem::Specification.new do |s|
14
14
  }
15
15
  s.rdoc_options = ["--title", "tipi", "--main", "README.md"]
16
16
  s.extra_rdoc_files = ["README.md"]
17
+ s.extensions = ["ext/tipi/extconf.rb"]
17
18
  s.require_paths = ["lib"]
18
19
  s.required_ruby_version = '>= 2.6'
19
20
 
20
21
  s.executables = ['tipi']
21
22
 
22
- s.add_runtime_dependency 'polyphony', '~>0.57.0'
23
- s.add_runtime_dependency 'qeweney', '~>0.10.0'
23
+ s.add_runtime_dependency 'polyphony', '~>0.64'
24
+ s.add_runtime_dependency 'qeweney', '~>0.11'
24
25
 
25
26
  s.add_runtime_dependency 'http_parser.rb', '~>0.6.0'
26
27
  s.add_runtime_dependency 'http-2', '~>0.10.0'
@@ -31,9 +32,12 @@ Gem::Specification.new do |s|
31
32
  # for digital fabric
32
33
  s.add_runtime_dependency 'msgpack', '~>1.4.2'
33
34
 
35
+ s.add_development_dependency 'rake-compiler', '1.1.1'
34
36
  s.add_development_dependency 'rake', '~>12.3.3'
35
37
  s.add_development_dependency 'localhost', '~>1.1.4'
36
38
  s.add_development_dependency 'minitest', '~>5.11.3'
37
39
  s.add_development_dependency 'minitest-reporters', '~>1.4.2'
38
40
  s.add_development_dependency 'simplecov', '~>0.17.1'
41
+
42
+ s.add_development_dependency 'cuba', '~>3.9.3'
39
43
  end
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.40'
4
+ version: '0.41'
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-06-24 00:00:00.000000000 Z
11
+ date: 2021-07-26 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.57.0
19
+ version: '0.64'
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.57.0
26
+ version: '0.64'
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.10.0
33
+ version: '0.11'
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.10.0
40
+ version: '0.11'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: http_parser.rb
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -128,6 +128,20 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: 1.4.2
131
+ - !ruby/object:Gem::Dependency
132
+ name: rake-compiler
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '='
136
+ - !ruby/object:Gem::Version
137
+ version: 1.1.1
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '='
143
+ - !ruby/object:Gem::Version
144
+ version: 1.1.1
131
145
  - !ruby/object:Gem::Dependency
132
146
  name: rake
133
147
  requirement: !ruby/object:Gem::Requirement
@@ -198,11 +212,26 @@ dependencies:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
214
  version: 0.17.1
215
+ - !ruby/object:Gem::Dependency
216
+ name: cuba
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: 3.9.3
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: 3.9.3
201
229
  description:
202
230
  email: sharon@noteflakes.com
203
231
  executables:
204
232
  - tipi
205
- extensions: []
233
+ extensions:
234
+ - ext/tipi/extconf.rb
206
235
  extra_rdoc_files:
207
236
  - README.md
208
237
  files:
@@ -223,16 +252,17 @@ files:
223
252
  - df/routing_benchmark.rb
224
253
  - df/sample_agent.rb
225
254
  - df/server.rb
255
+ - df/server_utils.rb
226
256
  - df/sse_page.html
227
257
  - df/stress.rb
228
258
  - df/ws_page.html
229
259
  - docs/README.md
230
260
  - docs/tipi-logo.png
231
- - e
232
261
  - examples/automatic_certificate.rb
233
262
  - examples/cuba.ru
234
263
  - examples/hanami-api.ru
235
264
  - examples/hello.ru
265
+ - examples/http1_parser.rb
236
266
  - examples/http_request_ws_server.rb
237
267
  - examples/http_server.js
238
268
  - examples/http_server.rb
@@ -260,6 +290,10 @@ files:
260
290
  - examples/websocket_server.rb
261
291
  - examples/ws_page.html
262
292
  - examples/wss_page.html
293
+ - ext/tipi/extconf.rb
294
+ - ext/tipi/http1_parser.c
295
+ - ext/tipi/http1_parser.h
296
+ - ext/tipi/tipi_ext.c
263
297
  - lib/tipi.rb
264
298
  - lib/tipi/config_dsl.rb
265
299
  - lib/tipi/configuration.rb
@@ -273,6 +307,7 @@ files:
273
307
  - lib/tipi/digital_fabric/service.rb
274
308
  - lib/tipi/handler.rb
275
309
  - lib/tipi/http1_adapter.rb
310
+ - lib/tipi/http1_adapter_new.rb
276
311
  - lib/tipi/http2_adapter.rb
277
312
  - lib/tipi/http2_stream.rb
278
313
  - lib/tipi/rack_adapter.rb
@@ -310,7 +345,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
345
  - !ruby/object:Gem::Version
311
346
  version: '0'
312
347
  requirements: []
313
- rubygems_version: 3.1.4
348
+ rubygems_version: 3.1.6
314
349
  signing_key:
315
350
  specification_version: 4
316
351
  summary: Tipi - the All-in-one Web Server for Ruby Apps
data/e DELETED
File without changes