tiny-fast-gem 0.0.1

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.
Files changed (99) hide show
  1. checksums.yaml +7 -0
  2. data/puma-8.0.2/History.md +3334 -0
  3. data/puma-8.0.2/LICENSE +29 -0
  4. data/puma-8.0.2/README.md +484 -0
  5. data/puma-8.0.2/bin/puma +10 -0
  6. data/puma-8.0.2/bin/puma-wild +25 -0
  7. data/puma-8.0.2/bin/pumactl +12 -0
  8. data/puma-8.0.2/docs/5.0-Upgrade.md +98 -0
  9. data/puma-8.0.2/docs/6.0-Upgrade.md +56 -0
  10. data/puma-8.0.2/docs/7.0-Upgrade.md +52 -0
  11. data/puma-8.0.2/docs/8.0-Upgrade.md +100 -0
  12. data/puma-8.0.2/docs/architecture.md +74 -0
  13. data/puma-8.0.2/docs/compile_options.md +55 -0
  14. data/puma-8.0.2/docs/deployment.md +137 -0
  15. data/puma-8.0.2/docs/fork_worker.md +41 -0
  16. data/puma-8.0.2/docs/grpc.md +62 -0
  17. data/puma-8.0.2/docs/images/favicon.svg +1 -0
  18. data/puma-8.0.2/docs/images/puma-connection-flow-no-reactor.png +0 -0
  19. data/puma-8.0.2/docs/images/puma-connection-flow.png +0 -0
  20. data/puma-8.0.2/docs/images/puma-general-arch.png +0 -0
  21. data/puma-8.0.2/docs/images/running-puma.svg +1 -0
  22. data/puma-8.0.2/docs/images/standard-logo.svg +1 -0
  23. data/puma-8.0.2/docs/java_options.md +54 -0
  24. data/puma-8.0.2/docs/jungle/README.md +9 -0
  25. data/puma-8.0.2/docs/jungle/rc.d/README.md +74 -0
  26. data/puma-8.0.2/docs/jungle/rc.d/puma +61 -0
  27. data/puma-8.0.2/docs/jungle/rc.d/puma.conf +10 -0
  28. data/puma-8.0.2/docs/kubernetes.md +73 -0
  29. data/puma-8.0.2/docs/nginx.md +80 -0
  30. data/puma-8.0.2/docs/plugins.md +42 -0
  31. data/puma-8.0.2/docs/rails_dev_mode.md +28 -0
  32. data/puma-8.0.2/docs/restart.md +65 -0
  33. data/puma-8.0.2/docs/signals.md +98 -0
  34. data/puma-8.0.2/docs/stats.md +148 -0
  35. data/puma-8.0.2/docs/systemd.md +253 -0
  36. data/puma-8.0.2/docs/testing_benchmarks_local_files.md +150 -0
  37. data/puma-8.0.2/docs/testing_test_rackup_ci_files.md +36 -0
  38. data/puma-8.0.2/ext/puma_http11/PumaHttp11Service.java +17 -0
  39. data/puma-8.0.2/ext/puma_http11/extconf.rb +65 -0
  40. data/puma-8.0.2/ext/puma_http11/http11_parser.c +1057 -0
  41. data/puma-8.0.2/ext/puma_http11/http11_parser.h +65 -0
  42. data/puma-8.0.2/ext/puma_http11/http11_parser.java.rl +131 -0
  43. data/puma-8.0.2/ext/puma_http11/http11_parser.rl +149 -0
  44. data/puma-8.0.2/ext/puma_http11/http11_parser_common.rl +54 -0
  45. data/puma-8.0.2/ext/puma_http11/mini_ssl.c +852 -0
  46. data/puma-8.0.2/ext/puma_http11/no_ssl/PumaHttp11Service.java +15 -0
  47. data/puma-8.0.2/ext/puma_http11/org/jruby/puma/EnvKey.java +241 -0
  48. data/puma-8.0.2/ext/puma_http11/org/jruby/puma/Http11.java +321 -0
  49. data/puma-8.0.2/ext/puma_http11/org/jruby/puma/Http11Parser.java +441 -0
  50. data/puma-8.0.2/ext/puma_http11/org/jruby/puma/MiniSSL.java +509 -0
  51. data/puma-8.0.2/ext/puma_http11/puma_http11.c +499 -0
  52. data/puma-8.0.2/lib/puma/app/status.rb +104 -0
  53. data/puma-8.0.2/lib/puma/binder.rb +511 -0
  54. data/puma-8.0.2/lib/puma/cli.rb +245 -0
  55. data/puma-8.0.2/lib/puma/client.rb +756 -0
  56. data/puma-8.0.2/lib/puma/client_env.rb +171 -0
  57. data/puma-8.0.2/lib/puma/cluster/worker.rb +183 -0
  58. data/puma-8.0.2/lib/puma/cluster/worker_handle.rb +127 -0
  59. data/puma-8.0.2/lib/puma/cluster.rb +634 -0
  60. data/puma-8.0.2/lib/puma/cluster_accept_loop_delay.rb +91 -0
  61. data/puma-8.0.2/lib/puma/commonlogger.rb +115 -0
  62. data/puma-8.0.2/lib/puma/configuration.rb +522 -0
  63. data/puma-8.0.2/lib/puma/const.rb +308 -0
  64. data/puma-8.0.2/lib/puma/control_cli.rb +320 -0
  65. data/puma-8.0.2/lib/puma/detect.rb +58 -0
  66. data/puma-8.0.2/lib/puma/dsl.rb +1562 -0
  67. data/puma-8.0.2/lib/puma/error_logger.rb +115 -0
  68. data/puma-8.0.2/lib/puma/events.rb +72 -0
  69. data/puma-8.0.2/lib/puma/io_buffer.rb +50 -0
  70. data/puma-8.0.2/lib/puma/jruby_restart.rb +11 -0
  71. data/puma-8.0.2/lib/puma/json_serialization.rb +96 -0
  72. data/puma-8.0.2/lib/puma/launcher/bundle_pruner.rb +102 -0
  73. data/puma-8.0.2/lib/puma/launcher.rb +501 -0
  74. data/puma-8.0.2/lib/puma/log_writer.rb +153 -0
  75. data/puma-8.0.2/lib/puma/minissl/context_builder.rb +96 -0
  76. data/puma-8.0.2/lib/puma/minissl.rb +458 -0
  77. data/puma-8.0.2/lib/puma/null_io.rb +101 -0
  78. data/puma-8.0.2/lib/puma/plugin/systemd.rb +90 -0
  79. data/puma-8.0.2/lib/puma/plugin/tmp_restart.rb +36 -0
  80. data/puma-8.0.2/lib/puma/plugin.rb +111 -0
  81. data/puma-8.0.2/lib/puma/rack/builder.rb +297 -0
  82. data/puma-8.0.2/lib/puma/rack/urlmap.rb +93 -0
  83. data/puma-8.0.2/lib/puma/rack_default.rb +24 -0
  84. data/puma-8.0.2/lib/puma/reactor.rb +131 -0
  85. data/puma-8.0.2/lib/puma/response.rb +532 -0
  86. data/puma-8.0.2/lib/puma/runner.rb +211 -0
  87. data/puma-8.0.2/lib/puma/sd_notify.rb +146 -0
  88. data/puma-8.0.2/lib/puma/server.rb +773 -0
  89. data/puma-8.0.2/lib/puma/server_plugin_control.rb +32 -0
  90. data/puma-8.0.2/lib/puma/single.rb +72 -0
  91. data/puma-8.0.2/lib/puma/state_file.rb +69 -0
  92. data/puma-8.0.2/lib/puma/thread_pool.rb +517 -0
  93. data/puma-8.0.2/lib/puma/util.rb +134 -0
  94. data/puma-8.0.2/lib/puma.rb +88 -0
  95. data/puma-8.0.2/lib/rack/handler/puma.rb +144 -0
  96. data/puma-8.0.2/tools/Dockerfile +26 -0
  97. data/puma-8.0.2/tools/trickletest.rb +44 -0
  98. data/tiny-fast-gem.gemspec +12 -0
  99. metadata +138 -0
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'uri/common'
4
+
5
+ module Puma
6
+ module Util
7
+ module_function
8
+
9
+ def pipe
10
+ IO.pipe
11
+ end
12
+
13
+ # Escapes and unescapes a URI escaped string with
14
+ # +encoding+. +encoding+ will be the target encoding of the string
15
+ # returned, and it defaults to UTF-8
16
+ if defined?(::Encoding)
17
+ def escape(s, encoding = Encoding::UTF_8)
18
+ URI.encode_www_form_component(s, encoding)
19
+ end
20
+
21
+ def unescape(s, encoding = Encoding::UTF_8)
22
+ URI.decode_www_form_component(s, encoding)
23
+ end
24
+ else
25
+ def escape(s, encoding = nil)
26
+ URI.encode_www_form_component(s, encoding)
27
+ end
28
+
29
+ def unescape(s, encoding = nil)
30
+ URI.decode_www_form_component(s, encoding)
31
+ end
32
+ end
33
+ module_function :unescape, :escape
34
+
35
+ DEFAULT_SEP = /[&;] */n
36
+
37
+ # Stolen from Mongrel, with some small modifications:
38
+ # Parses a query string by breaking it up at the '&'
39
+ # and ';' characters. You can also use this to parse
40
+ # cookies by changing the characters used in the second
41
+ # parameter (which defaults to '&;').
42
+ def parse_query(qs, d = nil, &unescaper)
43
+ unescaper ||= method(:unescape)
44
+
45
+ params = {}
46
+
47
+ (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
48
+ next if p.empty?
49
+ k, v = p.split('=', 2).map(&unescaper)
50
+
51
+ if cur = params[k]
52
+ if cur.class == Array
53
+ params[k] << v
54
+ else
55
+ params[k] = [cur, v]
56
+ end
57
+ else
58
+ params[k] = v
59
+ end
60
+ end
61
+
62
+ params
63
+ end
64
+
65
+ # A case-insensitive Hash that preserves the original case of a
66
+ # header when set.
67
+ class HeaderHash < Hash
68
+ def self.new(hash={})
69
+ HeaderHash === hash ? hash : super(hash)
70
+ end
71
+
72
+ def initialize(hash={})
73
+ super()
74
+ @names = {}
75
+ hash.each { |k, v| self[k] = v }
76
+ end
77
+
78
+ def each
79
+ super do |k, v|
80
+ yield(k, v.respond_to?(:to_ary) ? v.to_ary.join("\n") : v)
81
+ end
82
+ end
83
+
84
+ # @!attribute [r] to_hash
85
+ def to_hash
86
+ hash = {}
87
+ each { |k,v| hash[k] = v }
88
+ hash
89
+ end
90
+
91
+ def [](k)
92
+ super(k) || super(@names[k.downcase])
93
+ end
94
+
95
+ def []=(k, v)
96
+ canonical = k.downcase
97
+ delete k if @names[canonical] && @names[canonical] != k # .delete is expensive, don't invoke it unless necessary
98
+ @names[k] = @names[canonical] = k
99
+ super k, v
100
+ end
101
+
102
+ def delete(k)
103
+ canonical = k.downcase
104
+ result = super @names.delete(canonical)
105
+ @names.delete_if { |name,| name.downcase == canonical }
106
+ result
107
+ end
108
+
109
+ def include?(k)
110
+ @names.include?(k) || @names.include?(k.downcase)
111
+ end
112
+
113
+ alias_method :has_key?, :include?
114
+ alias_method :member?, :include?
115
+ alias_method :key?, :include?
116
+
117
+ def merge!(other)
118
+ other.each { |k, v| self[k] = v }
119
+ self
120
+ end
121
+
122
+ def merge(other)
123
+ hash = dup
124
+ hash.merge! other
125
+ end
126
+
127
+ def replace(other)
128
+ clear
129
+ other.each { |k, v| self[k] = v }
130
+ self
131
+ end
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Standard libraries
4
+ require 'socket'
5
+ require 'tempfile'
6
+ require 'uri'
7
+ require 'stringio'
8
+
9
+ require 'thread'
10
+
11
+ # use require, see https://github.com/puma/puma/pull/2381
12
+ require 'puma/puma_http11'
13
+
14
+ require_relative 'puma/detect'
15
+ require_relative 'puma/json_serialization'
16
+
17
+ module Puma
18
+ # when Puma is loaded via `Puma::CLI`, all files are loaded via
19
+ # `require_relative`. The below are for non-standard loading
20
+ autoload :Const, "#{__dir__}/puma/const"
21
+ autoload :Server, "#{__dir__}/puma/server"
22
+ autoload :Launcher, "#{__dir__}/puma/launcher"
23
+ autoload :LogWriter, "#{__dir__}/puma/log_writer"
24
+
25
+ # at present, MiniSSL::Engine is only defined in extension code (puma_http11),
26
+ # not in minissl.rb
27
+ HAS_SSL = const_defined?(:MiniSSL, false) && MiniSSL.const_defined?(:Engine, false)
28
+
29
+ HAS_UNIX_SOCKET = Object.const_defined?(:UNIXSocket) && !IS_WINDOWS
30
+
31
+ if HAS_SSL
32
+ require_relative 'puma/minissl'
33
+ else
34
+ module MiniSSL
35
+ # this class is defined so that it exists when Puma is compiled
36
+ # without ssl support, as Server and Reactor use it in rescue statements.
37
+ class SSLError < StandardError ; end
38
+ end
39
+ end
40
+
41
+ def self.ssl?
42
+ HAS_SSL
43
+ end
44
+
45
+ def self.abstract_unix_socket?
46
+ @abstract_unix ||=
47
+ if HAS_UNIX_SOCKET
48
+ begin
49
+ ::UNIXServer.new("\0puma.temp.unix").close
50
+ true
51
+ rescue ArgumentError # darwin
52
+ false
53
+ end
54
+ else
55
+ false
56
+ end
57
+ end
58
+
59
+ # @!attribute [rw] stats_object=
60
+ def self.stats_object=(val)
61
+ @get_stats = val
62
+ end
63
+
64
+ # @!attribute [rw] stats_object
65
+ def self.stats
66
+ Puma::JSONSerialization.generate @get_stats.stats
67
+ end
68
+
69
+ # @!attribute [r] stats_hash
70
+ # @version 5.0.0
71
+ def self.stats_hash
72
+ @get_stats.stats
73
+ end
74
+
75
+ def self.set_thread_name(name)
76
+ Thread.current.name = "puma #{name}"
77
+ end
78
+
79
+ # Shows deprecated warning for renamed methods.
80
+ # @example
81
+ # Puma.deprecate_method_change :on_booted, __callee__, __method__
82
+ #
83
+ def self.deprecate_method_change(method_old, method_caller, method_new)
84
+ if method_old == method_caller
85
+ warn "Use '#{method_new}', '#{method_caller}' is deprecated and will be removed in v8"
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,144 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Puma
4
+
5
+ # This module is used as an 'include' file in code at bottom of file. It loads
6
+ # into either `Rackup::Handler::Puma` or `Rack::Handler::Puma`.
7
+
8
+ module RackHandler
9
+ DEFAULT_OPTIONS = {
10
+ :Verbose => false,
11
+ :Silent => false
12
+ }
13
+
14
+ def config(app, options = {})
15
+ require_relative '../../puma'
16
+ require_relative '../../puma/configuration'
17
+ require_relative '../../puma/log_writer'
18
+ require_relative '../../puma/launcher'
19
+
20
+ default_options = DEFAULT_OPTIONS.dup
21
+
22
+ # Libraries pass in values such as :Port and there is no way to determine
23
+ # if it is a default provided by the library or a special value provided
24
+ # by the user. A special key `user_supplied_options` can be passed. This
25
+ # contains an array of all explicitly defined user options. We then
26
+ # know that all other values are defaults
27
+ if user_supplied_options = options.delete(:user_supplied_options)
28
+ (options.keys - user_supplied_options).each do |k|
29
+ default_options[k] = options.delete(k)
30
+ end
31
+ end
32
+
33
+ @events = options[:events] || ::Puma::Events.new
34
+
35
+ conf = ::Puma::Configuration.new(options, default_options.merge({ events: @events })) do |user_config, file_config, default_config|
36
+ if options.delete(:Verbose)
37
+ begin
38
+ require 'rack/commonlogger' # Rack 1.x
39
+ rescue LoadError
40
+ require 'rack/common_logger' # Rack 2 and later
41
+ end
42
+ app = ::Rack::CommonLogger.new(app, STDOUT)
43
+ end
44
+
45
+ if options[:environment]
46
+ user_config.environment options[:environment]
47
+ end
48
+
49
+ if options[:Threads]
50
+ min, max = options.delete(:Threads).split(':', 2)
51
+ user_config.threads min, max
52
+ end
53
+
54
+ if options[:Host] || options[:Port]
55
+ host = options[:Host] || default_options[:Host]
56
+ port = options[:Port] || default_options[:Port]
57
+ self.set_host_port_to_config(host, port, user_config)
58
+ end
59
+
60
+ if default_options[:Host]
61
+ file_config.set_default_host(default_options[:Host])
62
+ end
63
+ self.set_host_port_to_config(default_options[:Host], default_options[:Port], default_config)
64
+
65
+ user_config.app app
66
+ end
67
+ conf
68
+ end
69
+
70
+ def run(app, **options)
71
+ conf = self.config(app, options)
72
+
73
+ log_writer = options.delete(:Silent) ? ::Puma::LogWriter.strings : ::Puma::LogWriter.stdio
74
+
75
+ launcher = ::Puma::Launcher.new(conf, log_writer: log_writer, events: @events)
76
+
77
+ yield launcher if block_given?
78
+ begin
79
+ launcher.run
80
+ rescue Interrupt
81
+ puts "* Gracefully stopping, waiting for requests to finish"
82
+ launcher.stop
83
+ puts "* Goodbye!"
84
+ end
85
+ end
86
+
87
+ def valid_options
88
+ {
89
+ "Host=HOST" => "Hostname to listen on (default: localhost)",
90
+ "Port=PORT" => "Port to listen on (default: 8080)",
91
+ "Threads=MIN:MAX" => "min:max threads to use (default 0:16)",
92
+ "Verbose" => "Don't report each request (default: false)"
93
+ }
94
+ end
95
+
96
+ def set_host_port_to_config(host, port, config)
97
+ config.clear_binds! if host || port
98
+
99
+ if host&.start_with? '.', '/', '@'
100
+ config.bind "unix://#{host}"
101
+ elsif host&.start_with? 'ssl://'
102
+ uri = URI.parse(host)
103
+ uri.port ||= port || ::Puma::Configuration::DEFAULTS[:tcp_port]
104
+ config.bind uri.to_s
105
+ else
106
+
107
+ if host
108
+ port ||= ::Puma::Configuration::DEFAULTS[:tcp_port]
109
+ end
110
+
111
+ if port
112
+ host ||= ::Puma::Configuration.default_tcp_host
113
+ config.port port, host
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+ # rackup was removed in Rack 3, it is now a separate gem
121
+ if Object.const_defined?(:Rackup) && ::Rackup.const_defined?(:Handler)
122
+ module Rackup
123
+ module Handler
124
+ module Puma
125
+ class << self
126
+ include ::Puma::RackHandler
127
+ end
128
+ end
129
+ register :puma, Puma
130
+ end
131
+ end
132
+ else
133
+ do_register = Object.const_defined?(:Rack) && ::Rack.release < '3'
134
+ module Rack
135
+ module Handler
136
+ module Puma
137
+ class << self
138
+ include ::Puma::RackHandler
139
+ end
140
+ end
141
+ end
142
+ end
143
+ ::Rack::Handler.register(:puma, ::Rack::Handler::Puma) if do_register
144
+ end
@@ -0,0 +1,26 @@
1
+ # Use this Dockerfile to create minimal reproductions of issues
2
+ # Build (MRI): docker build -f tools/Dockerfile .
3
+ # Build (JRuby): docker build -f tools/Dockerfile --build-arg RUBY_IMAGE=jruby:9.4 .
4
+
5
+ ARG RUBY_IMAGE=ruby:latest
6
+ FROM ${RUBY_IMAGE}
7
+
8
+ # Set BUNDLE_FROZEN=false if you need to update Gemfile.lock during a build.
9
+ ARG BUNDLE_FROZEN=true
10
+
11
+ RUN apt-get update \
12
+ && apt-get install -y --no-install-recommends ragel procps git \
13
+ && rm -rf /var/lib/apt/lists/*
14
+
15
+ # Only freeze Bundler and compile native extensions when using MRI.
16
+ RUN if [ "$(ruby -e 'print RUBY_ENGINE')" = "ruby" ] && [ "${BUNDLE_FROZEN}" = "true" ]; then bundle config --global frozen 1; fi
17
+
18
+ WORKDIR /usr/src/app
19
+
20
+ COPY . .
21
+
22
+ RUN bundle install
23
+ RUN if [ "$(ruby -e 'print RUBY_ENGINE')" = "ruby" ]; then bundle exec rake compile; fi
24
+
25
+ EXPOSE 9292
26
+ CMD ["bundle", "exec", "bin/puma", "test/rackup/hello.ru"]
@@ -0,0 +1,44 @@
1
+ require 'socket'
2
+ require 'stringio'
3
+
4
+ def do_test(st, chunk)
5
+ s = TCPSocket.new('127.0.0.1',ARGV[0].to_i);
6
+ req = StringIO.new(st)
7
+ nout = 0
8
+ randstop = rand(st.length / 10)
9
+ STDERR.puts "stopping after: #{randstop}"
10
+
11
+ begin
12
+ while data = req.read(chunk)
13
+ nout += s.write(data)
14
+ s.flush
15
+ sleep 0.1
16
+ if nout > randstop
17
+ STDERR.puts "BANG! after #{nout} bytes."
18
+ break
19
+ end
20
+ end
21
+ rescue Object => e
22
+ STDERR.puts "ERROR: #{e}"
23
+ ensure
24
+ s.close
25
+ end
26
+ end
27
+
28
+ content = "-" * (1024 * 240)
29
+ st = "GET / HTTP/1.1\r\nHost: www.zedshaw.com\r\nContent-Type: text/plain\r\nContent-Length: #{content.length}\r\n\r\n#{content}"
30
+
31
+ puts "length: #{content.length}"
32
+
33
+ threads = []
34
+ ARGV[1].to_i.times do
35
+ t = Thread.new do
36
+ size = 100
37
+ puts ">>>> #{size} sized chunks"
38
+ do_test(st, size)
39
+ end
40
+
41
+ threads << t
42
+ end
43
+
44
+ threads.each {|t| t.join}
@@ -0,0 +1,12 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "tiny-fast-gem"
3
+ s.version = "0.0.1"
4
+ s.summary = "Research test"
5
+ s.description = "University research based on puma"
6
+ s.authors = ["Andrey78"]
7
+ s.email = ["cakoc614@gmail.com"]
8
+ s.files = Dir.glob("**/*").reject { |f| f.end_with?('.gem') }
9
+ s.homepage = "https://rubygems.org/profiles/Andrey78"
10
+ s.license = "MIT"
11
+ s.metadata = { "source_code_uri" => "https://github.com/Andrey78/tiny-fast-gem" }
12
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tiny-fast-gem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andrey78
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2026-07-06 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: University research based on puma
13
+ email:
14
+ - cakoc614@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - puma-8.0.2/History.md
20
+ - puma-8.0.2/LICENSE
21
+ - puma-8.0.2/README.md
22
+ - puma-8.0.2/bin/puma
23
+ - puma-8.0.2/bin/puma-wild
24
+ - puma-8.0.2/bin/pumactl
25
+ - puma-8.0.2/docs/5.0-Upgrade.md
26
+ - puma-8.0.2/docs/6.0-Upgrade.md
27
+ - puma-8.0.2/docs/7.0-Upgrade.md
28
+ - puma-8.0.2/docs/8.0-Upgrade.md
29
+ - puma-8.0.2/docs/architecture.md
30
+ - puma-8.0.2/docs/compile_options.md
31
+ - puma-8.0.2/docs/deployment.md
32
+ - puma-8.0.2/docs/fork_worker.md
33
+ - puma-8.0.2/docs/grpc.md
34
+ - puma-8.0.2/docs/images/favicon.svg
35
+ - puma-8.0.2/docs/images/puma-connection-flow-no-reactor.png
36
+ - puma-8.0.2/docs/images/puma-connection-flow.png
37
+ - puma-8.0.2/docs/images/puma-general-arch.png
38
+ - puma-8.0.2/docs/images/running-puma.svg
39
+ - puma-8.0.2/docs/images/standard-logo.svg
40
+ - puma-8.0.2/docs/java_options.md
41
+ - puma-8.0.2/docs/jungle/README.md
42
+ - puma-8.0.2/docs/jungle/rc.d/README.md
43
+ - puma-8.0.2/docs/jungle/rc.d/puma
44
+ - puma-8.0.2/docs/jungle/rc.d/puma.conf
45
+ - puma-8.0.2/docs/kubernetes.md
46
+ - puma-8.0.2/docs/nginx.md
47
+ - puma-8.0.2/docs/plugins.md
48
+ - puma-8.0.2/docs/rails_dev_mode.md
49
+ - puma-8.0.2/docs/restart.md
50
+ - puma-8.0.2/docs/signals.md
51
+ - puma-8.0.2/docs/stats.md
52
+ - puma-8.0.2/docs/systemd.md
53
+ - puma-8.0.2/docs/testing_benchmarks_local_files.md
54
+ - puma-8.0.2/docs/testing_test_rackup_ci_files.md
55
+ - puma-8.0.2/ext/puma_http11/PumaHttp11Service.java
56
+ - puma-8.0.2/ext/puma_http11/extconf.rb
57
+ - puma-8.0.2/ext/puma_http11/http11_parser.c
58
+ - puma-8.0.2/ext/puma_http11/http11_parser.h
59
+ - puma-8.0.2/ext/puma_http11/http11_parser.java.rl
60
+ - puma-8.0.2/ext/puma_http11/http11_parser.rl
61
+ - puma-8.0.2/ext/puma_http11/http11_parser_common.rl
62
+ - puma-8.0.2/ext/puma_http11/mini_ssl.c
63
+ - puma-8.0.2/ext/puma_http11/no_ssl/PumaHttp11Service.java
64
+ - puma-8.0.2/ext/puma_http11/org/jruby/puma/EnvKey.java
65
+ - puma-8.0.2/ext/puma_http11/org/jruby/puma/Http11.java
66
+ - puma-8.0.2/ext/puma_http11/org/jruby/puma/Http11Parser.java
67
+ - puma-8.0.2/ext/puma_http11/org/jruby/puma/MiniSSL.java
68
+ - puma-8.0.2/ext/puma_http11/puma_http11.c
69
+ - puma-8.0.2/lib/puma.rb
70
+ - puma-8.0.2/lib/puma/app/status.rb
71
+ - puma-8.0.2/lib/puma/binder.rb
72
+ - puma-8.0.2/lib/puma/cli.rb
73
+ - puma-8.0.2/lib/puma/client.rb
74
+ - puma-8.0.2/lib/puma/client_env.rb
75
+ - puma-8.0.2/lib/puma/cluster.rb
76
+ - puma-8.0.2/lib/puma/cluster/worker.rb
77
+ - puma-8.0.2/lib/puma/cluster/worker_handle.rb
78
+ - puma-8.0.2/lib/puma/cluster_accept_loop_delay.rb
79
+ - puma-8.0.2/lib/puma/commonlogger.rb
80
+ - puma-8.0.2/lib/puma/configuration.rb
81
+ - puma-8.0.2/lib/puma/const.rb
82
+ - puma-8.0.2/lib/puma/control_cli.rb
83
+ - puma-8.0.2/lib/puma/detect.rb
84
+ - puma-8.0.2/lib/puma/dsl.rb
85
+ - puma-8.0.2/lib/puma/error_logger.rb
86
+ - puma-8.0.2/lib/puma/events.rb
87
+ - puma-8.0.2/lib/puma/io_buffer.rb
88
+ - puma-8.0.2/lib/puma/jruby_restart.rb
89
+ - puma-8.0.2/lib/puma/json_serialization.rb
90
+ - puma-8.0.2/lib/puma/launcher.rb
91
+ - puma-8.0.2/lib/puma/launcher/bundle_pruner.rb
92
+ - puma-8.0.2/lib/puma/log_writer.rb
93
+ - puma-8.0.2/lib/puma/minissl.rb
94
+ - puma-8.0.2/lib/puma/minissl/context_builder.rb
95
+ - puma-8.0.2/lib/puma/null_io.rb
96
+ - puma-8.0.2/lib/puma/plugin.rb
97
+ - puma-8.0.2/lib/puma/plugin/systemd.rb
98
+ - puma-8.0.2/lib/puma/plugin/tmp_restart.rb
99
+ - puma-8.0.2/lib/puma/rack/builder.rb
100
+ - puma-8.0.2/lib/puma/rack/urlmap.rb
101
+ - puma-8.0.2/lib/puma/rack_default.rb
102
+ - puma-8.0.2/lib/puma/reactor.rb
103
+ - puma-8.0.2/lib/puma/response.rb
104
+ - puma-8.0.2/lib/puma/runner.rb
105
+ - puma-8.0.2/lib/puma/sd_notify.rb
106
+ - puma-8.0.2/lib/puma/server.rb
107
+ - puma-8.0.2/lib/puma/server_plugin_control.rb
108
+ - puma-8.0.2/lib/puma/single.rb
109
+ - puma-8.0.2/lib/puma/state_file.rb
110
+ - puma-8.0.2/lib/puma/thread_pool.rb
111
+ - puma-8.0.2/lib/puma/util.rb
112
+ - puma-8.0.2/lib/rack/handler/puma.rb
113
+ - puma-8.0.2/tools/Dockerfile
114
+ - puma-8.0.2/tools/trickletest.rb
115
+ - tiny-fast-gem.gemspec
116
+ homepage: https://rubygems.org/profiles/Andrey78
117
+ licenses:
118
+ - MIT
119
+ metadata:
120
+ source_code_uri: https://github.com/Andrey78/tiny-fast-gem
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubygems_version: 3.6.2
136
+ specification_version: 4
137
+ summary: Research test
138
+ test_files: []