puma 6.4.3 → 8.0.2

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +448 -8
  3. data/README.md +110 -51
  4. data/docs/5.0-Upgrade.md +98 -0
  5. data/docs/6.0-Upgrade.md +56 -0
  6. data/docs/7.0-Upgrade.md +52 -0
  7. data/docs/8.0-Upgrade.md +100 -0
  8. data/docs/deployment.md +58 -23
  9. data/docs/fork_worker.md +11 -1
  10. data/docs/grpc.md +62 -0
  11. data/docs/images/favicon.svg +1 -0
  12. data/docs/images/running-puma.svg +1 -0
  13. data/docs/images/standard-logo.svg +1 -0
  14. data/docs/java_options.md +54 -0
  15. data/docs/jungle/README.md +1 -1
  16. data/docs/kubernetes.md +11 -16
  17. data/docs/plugins.md +6 -2
  18. data/docs/restart.md +2 -2
  19. data/docs/signals.md +21 -21
  20. data/docs/stats.md +11 -5
  21. data/docs/systemd.md +14 -5
  22. data/ext/puma_http11/extconf.rb +20 -32
  23. data/ext/puma_http11/http11_parser.java.rl +51 -65
  24. data/ext/puma_http11/mini_ssl.c +29 -9
  25. data/ext/puma_http11/org/jruby/puma/EnvKey.java +241 -0
  26. data/ext/puma_http11/org/jruby/puma/Http11.java +194 -101
  27. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +71 -85
  28. data/ext/puma_http11/puma_http11.c +125 -118
  29. data/lib/puma/app/status.rb +11 -3
  30. data/lib/puma/binder.rb +22 -12
  31. data/lib/puma/cli.rb +11 -9
  32. data/lib/puma/client.rb +233 -136
  33. data/lib/puma/client_env.rb +171 -0
  34. data/lib/puma/cluster/worker.rb +24 -21
  35. data/lib/puma/cluster/worker_handle.rb +38 -8
  36. data/lib/puma/cluster.rb +74 -48
  37. data/lib/puma/cluster_accept_loop_delay.rb +91 -0
  38. data/lib/puma/commonlogger.rb +3 -3
  39. data/lib/puma/configuration.rb +197 -64
  40. data/lib/puma/const.rb +23 -12
  41. data/lib/puma/control_cli.rb +11 -7
  42. data/lib/puma/detect.rb +13 -0
  43. data/lib/puma/dsl.rb +483 -127
  44. data/lib/puma/error_logger.rb +7 -5
  45. data/lib/puma/events.rb +25 -10
  46. data/lib/puma/io_buffer.rb +8 -4
  47. data/lib/puma/jruby_restart.rb +0 -16
  48. data/lib/puma/launcher/bundle_pruner.rb +3 -5
  49. data/lib/puma/launcher.rb +76 -59
  50. data/lib/puma/log_writer.rb +17 -11
  51. data/lib/puma/minissl/context_builder.rb +1 -0
  52. data/lib/puma/minissl.rb +1 -1
  53. data/lib/puma/null_io.rb +26 -0
  54. data/lib/puma/plugin/systemd.rb +3 -3
  55. data/lib/puma/rack/urlmap.rb +1 -1
  56. data/lib/puma/reactor.rb +19 -13
  57. data/lib/puma/{request.rb → response.rb} +57 -209
  58. data/lib/puma/runner.rb +15 -17
  59. data/lib/puma/sd_notify.rb +1 -4
  60. data/lib/puma/server.rb +200 -104
  61. data/lib/puma/server_plugin_control.rb +32 -0
  62. data/lib/puma/single.rb +7 -4
  63. data/lib/puma/state_file.rb +3 -2
  64. data/lib/puma/thread_pool.rb +179 -96
  65. data/lib/puma/util.rb +0 -7
  66. data/lib/puma.rb +10 -0
  67. data/lib/rack/handler/puma.rb +11 -8
  68. data/tools/Dockerfile +15 -5
  69. metadata +26 -16
  70. data/ext/puma_http11/ext_help.h +0 -15
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.3
4
+ version: 8.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Phoenix
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-09-19 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: nio4r
@@ -24,10 +23,11 @@ dependencies:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
25
  version: '2.0'
27
- description: Puma is a simple, fast, threaded, and highly parallel HTTP 1.1 server
28
- for Ruby/Rack applications. Puma is intended for use in both development and production
29
- environments. It's great for highly parallel Ruby implementations such as Rubinius
30
- and JRuby as well as as providing process worker support to support CRuby well.
26
+ description: |
27
+ Puma is a simple, fast, multi-threaded, and highly parallel HTTP 1.1 server
28
+ for Ruby/Rack applications. Puma is intended for use in both development and
29
+ production environments. It's great for highly parallel Ruby implementations such as
30
+ JRuby and TruffleRuby as well as as providing process worker support to support CRuby well.
31
31
  email:
32
32
  - evan@phx.io
33
33
  executables:
@@ -43,13 +43,22 @@ files:
43
43
  - bin/puma
44
44
  - bin/puma-wild
45
45
  - bin/pumactl
46
+ - docs/5.0-Upgrade.md
47
+ - docs/6.0-Upgrade.md
48
+ - docs/7.0-Upgrade.md
49
+ - docs/8.0-Upgrade.md
46
50
  - docs/architecture.md
47
51
  - docs/compile_options.md
48
52
  - docs/deployment.md
49
53
  - docs/fork_worker.md
54
+ - docs/grpc.md
55
+ - docs/images/favicon.svg
50
56
  - docs/images/puma-connection-flow-no-reactor.png
51
57
  - docs/images/puma-connection-flow.png
52
58
  - docs/images/puma-general-arch.png
59
+ - docs/images/running-puma.svg
60
+ - docs/images/standard-logo.svg
61
+ - docs/java_options.md
53
62
  - docs/jungle/README.md
54
63
  - docs/jungle/rc.d/README.md
55
64
  - docs/jungle/rc.d/puma
@@ -65,7 +74,6 @@ files:
65
74
  - docs/testing_benchmarks_local_files.md
66
75
  - docs/testing_test_rackup_ci_files.md
67
76
  - ext/puma_http11/PumaHttp11Service.java
68
- - ext/puma_http11/ext_help.h
69
77
  - ext/puma_http11/extconf.rb
70
78
  - ext/puma_http11/http11_parser.c
71
79
  - ext/puma_http11/http11_parser.h
@@ -74,6 +82,7 @@ files:
74
82
  - ext/puma_http11/http11_parser_common.rl
75
83
  - ext/puma_http11/mini_ssl.c
76
84
  - ext/puma_http11/no_ssl/PumaHttp11Service.java
85
+ - ext/puma_http11/org/jruby/puma/EnvKey.java
77
86
  - ext/puma_http11/org/jruby/puma/Http11.java
78
87
  - ext/puma_http11/org/jruby/puma/Http11Parser.java
79
88
  - ext/puma_http11/org/jruby/puma/MiniSSL.java
@@ -83,9 +92,11 @@ files:
83
92
  - lib/puma/binder.rb
84
93
  - lib/puma/cli.rb
85
94
  - lib/puma/client.rb
95
+ - lib/puma/client_env.rb
86
96
  - lib/puma/cluster.rb
87
97
  - lib/puma/cluster/worker.rb
88
98
  - lib/puma/cluster/worker_handle.rb
99
+ - lib/puma/cluster_accept_loop_delay.rb
89
100
  - lib/puma/commonlogger.rb
90
101
  - lib/puma/configuration.rb
91
102
  - lib/puma/const.rb
@@ -110,10 +121,11 @@ files:
110
121
  - lib/puma/rack/urlmap.rb
111
122
  - lib/puma/rack_default.rb
112
123
  - lib/puma/reactor.rb
113
- - lib/puma/request.rb
124
+ - lib/puma/response.rb
114
125
  - lib/puma/runner.rb
115
126
  - lib/puma/sd_notify.rb
116
127
  - lib/puma/server.rb
128
+ - lib/puma/server_plugin_control.rb
117
129
  - lib/puma/single.rb
118
130
  - lib/puma/state_file.rb
119
131
  - lib/puma/thread_pool.rb
@@ -126,11 +138,11 @@ licenses:
126
138
  - BSD-3-Clause
127
139
  metadata:
128
140
  bug_tracker_uri: https://github.com/puma/puma/issues
129
- changelog_uri: https://github.com/puma/puma/blob/master/History.md
141
+ changelog_uri: https://github.com/puma/puma/blob/main/History.md
130
142
  homepage_uri: https://puma.io
131
143
  source_code_uri: https://github.com/puma/puma
132
144
  rubygems_mfa_required: 'true'
133
- post_install_message:
145
+ msys2_mingw_dependencies: openssl
134
146
  rdoc_options: []
135
147
  require_paths:
136
148
  - lib
@@ -138,16 +150,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
150
  requirements:
139
151
  - - ">="
140
152
  - !ruby/object:Gem::Version
141
- version: '2.4'
153
+ version: '3.0'
142
154
  required_rubygems_version: !ruby/object:Gem::Requirement
143
155
  requirements:
144
156
  - - ">="
145
157
  - !ruby/object:Gem::Version
146
158
  version: '0'
147
159
  requirements: []
148
- rubygems_version: 3.5.16
149
- signing_key:
160
+ rubygems_version: 4.0.6
150
161
  specification_version: 4
151
- summary: Puma is a simple, fast, threaded, and highly parallel HTTP 1.1 server for
152
- Ruby/Rack applications
162
+ summary: A Ruby/Rack web server built for parallelism.
153
163
  test_files: []
@@ -1,15 +0,0 @@
1
- #ifndef ext_help_h
2
- #define ext_help_h
3
-
4
- #define RAISE_NOT_NULL(T) if(T == NULL) rb_raise(rb_eArgError, "%s", "NULL found for " # T " when shouldn't be.");
5
- #define DATA_GET(from,type,data_type,name) TypedData_Get_Struct(from,type,data_type,name); RAISE_NOT_NULL(name);
6
- #define REQUIRE_TYPE(V, T) if(TYPE(V) != T) rb_raise(rb_eTypeError, "%s", "Wrong argument type for " # V " required " # T);
7
- #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
8
-
9
- #ifdef DEBUG
10
- #define TRACE() fprintf(stderr, "> %s:%d:%s\n", __FILE__, __LINE__, __FUNCTION__)
11
- #else
12
- #define TRACE()
13
- #endif
14
-
15
- #endif