itsi-server 0.2.15 → 0.2.16

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +73 -73
  3. data/ext/itsi_scheduler/Cargo.toml +1 -1
  4. data/ext/itsi_server/Cargo.lock +1 -1
  5. data/ext/itsi_server/Cargo.toml +1 -1
  6. data/ext/itsi_server/extconf.rb +3 -1
  7. data/ext/itsi_server/src/lib.rs +1 -0
  8. data/ext/itsi_server/src/ruby_types/itsi_grpc_call.rs +2 -2
  9. data/ext/itsi_server/src/ruby_types/itsi_http_request.rs +9 -11
  10. data/ext/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +6 -1
  11. data/ext/itsi_server/src/server/binds/listener.rs +4 -1
  12. data/ext/itsi_server/src/server/http_message_types.rs +1 -1
  13. data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response/default_responses.rs +32 -34
  14. data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +3 -4
  15. data/ext/itsi_server/src/server/middleware_stack/middlewares/etag.rs +23 -38
  16. data/ext/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +65 -14
  17. data/ext/itsi_server/src/server/middleware_stack/middlewares/max_body.rs +1 -1
  18. data/ext/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +1 -1
  19. data/ext/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +21 -8
  20. data/ext/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +1 -5
  21. data/ext/itsi_server/src/server/middleware_stack/middlewares/static_response.rs +12 -3
  22. data/ext/itsi_server/src/server/process_worker.rs +2 -1
  23. data/ext/itsi_server/src/server/serve_strategy/acceptor.rs +96 -0
  24. data/ext/itsi_server/src/server/serve_strategy/mod.rs +1 -0
  25. data/ext/itsi_server/src/server/serve_strategy/single_mode.rs +80 -136
  26. data/ext/itsi_server/src/server/thread_worker.rs +10 -3
  27. data/ext/itsi_server/src/services/itsi_http_service.rs +26 -21
  28. data/ext/itsi_server/src/services/mime_types.rs +185 -183
  29. data/ext/itsi_server/src/services/rate_limiter.rs +16 -34
  30. data/ext/itsi_server/src/services/static_file_server.rs +7 -13
  31. data/lib/itsi/server/config/config_helpers.rb +1 -2
  32. data/lib/itsi/server/config/middleware/etag.md +3 -7
  33. data/lib/itsi/server/config/middleware/etag.rb +2 -4
  34. data/lib/itsi/server/config/options/listen_backlog.rb +1 -1
  35. data/lib/itsi/server/config/options/send_buffer_size.md +15 -0
  36. data/lib/itsi/server/config/options/send_buffer_size.rb +19 -0
  37. data/lib/itsi/server/config.rb +24 -25
  38. data/lib/itsi/server/route_tester.rb +1 -1
  39. data/lib/itsi/server/version.rb +1 -1
  40. metadata +4 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 839060ed768988b5230a345dc4820dd16f025d95a0e0392eb01e9e446aa912bb
4
- data.tar.gz: ddc0c5c09b6d883094b6bfcf62d31a66493928aec61bc9cf4cb82f742f3f99e1
3
+ metadata.gz: dacff69074fbea9c3b26f533549c9f1b8cf2bb369f8ef15346180fbfac81b4e6
4
+ data.tar.gz: cd0d38e8ac1be9114281d7a28ab1ea5d6d9394dff87b7a17c7fb259eee0a1dbe
5
5
  SHA512:
6
- metadata.gz: da0187a1d822b7da1b30ac352fe1914a9f1f791f33674c19511e491576c87c665cba9b86d4f7699bf2c3acc9cf797a457d6b2e273a8831da24ad3f05b60c0e8e
7
- data.tar.gz: 6e7a8a000821d26e438b2c750ad87011176e75f6341311aeb41dbdc6ef952c70733a3c9d7ddbc9fd500e70287718760e95140b43b2657c6ad23413470d9aa1bf
6
+ metadata.gz: 5464271b5aa30ba1c02addbd365fc1a7891b357dbb2ef4c02f5f9b26048714c77011ba60a2a82abc2da843bb3e7dbe253105b4ae0e49eeea12b028a2cf6f0cef
7
+ data.tar.gz: 88ecd2101bfc629d0d198c14877f9dfdc6cb104a6978712f2f16c3dfb3cc00fa4aeb4cf4e164884af90e175c879b501565c973549c8189e9e5a5a991df1e87bb
data/Cargo.lock CHANGED
@@ -24,7 +24,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
24
24
  checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
25
25
  dependencies = [
26
26
  "cfg-if",
27
- "getrandom 0.2.15",
27
+ "getrandom 0.2.16",
28
28
  "once_cell",
29
29
  "version_check",
30
30
  "zerocopy 0.7.35",
@@ -176,7 +176,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
176
176
  dependencies = [
177
177
  "proc-macro2",
178
178
  "quote",
179
- "syn 2.0.100",
179
+ "syn 2.0.101",
180
180
  "synstructure",
181
181
  ]
182
182
 
@@ -188,7 +188,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
188
188
  dependencies = [
189
189
  "proc-macro2",
190
190
  "quote",
191
- "syn 2.0.100",
191
+ "syn 2.0.101",
192
192
  ]
193
193
 
194
194
  [[package]]
@@ -205,9 +205,9 @@ dependencies = [
205
205
 
206
206
  [[package]]
207
207
  name = "async-compression"
208
- version = "0.4.22"
208
+ version = "0.4.23"
209
209
  source = "registry+https://github.com/rust-lang/crates.io-index"
210
- checksum = "59a194f9d963d8099596278594b3107448656ba73831c9d8c783e613ce86da64"
210
+ checksum = "b37fc50485c4f3f736a4fb14199f6d5f5ba008d7f28fe710306c92780f004c07"
211
211
  dependencies = [
212
212
  "brotli",
213
213
  "flate2",
@@ -228,7 +228,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
228
228
  dependencies = [
229
229
  "proc-macro2",
230
230
  "quote",
231
- "syn 2.0.100",
231
+ "syn 2.0.101",
232
232
  ]
233
233
 
234
234
  [[package]]
@@ -423,7 +423,7 @@ dependencies = [
423
423
  "regex",
424
424
  "rustc-hash 1.1.0",
425
425
  "shlex",
426
- "syn 2.0.100",
426
+ "syn 2.0.101",
427
427
  "which",
428
428
  ]
429
429
 
@@ -469,9 +469,9 @@ dependencies = [
469
469
 
470
470
  [[package]]
471
471
  name = "brotli"
472
- version = "7.0.0"
472
+ version = "8.0.0"
473
473
  source = "registry+https://github.com/rust-lang/crates.io-index"
474
- checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd"
474
+ checksum = "cf19e729cdbd51af9a397fb9ef8ac8378007b797f8273cfbfdf45dcaa316167b"
475
475
  dependencies = [
476
476
  "alloc-no-stdlib",
477
477
  "alloc-stdlib",
@@ -480,9 +480,9 @@ dependencies = [
480
480
 
481
481
  [[package]]
482
482
  name = "brotli-decompressor"
483
- version = "4.0.3"
483
+ version = "5.0.0"
484
484
  source = "registry+https://github.com/rust-lang/crates.io-index"
485
- checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd"
485
+ checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03"
486
486
  dependencies = [
487
487
  "alloc-no-stdlib",
488
488
  "alloc-stdlib",
@@ -518,9 +518,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
518
518
 
519
519
  [[package]]
520
520
  name = "cc"
521
- version = "1.2.19"
521
+ version = "1.2.20"
522
522
  source = "registry+https://github.com/rust-lang/crates.io-index"
523
- checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362"
523
+ checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a"
524
524
  dependencies = [
525
525
  "jobserver",
526
526
  "libc",
@@ -550,9 +550,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
550
550
 
551
551
  [[package]]
552
552
  name = "chrono"
553
- version = "0.4.40"
553
+ version = "0.4.41"
554
554
  source = "registry+https://github.com/rust-lang/crates.io-index"
555
- checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c"
555
+ checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
556
556
  dependencies = [
557
557
  "android-tzdata",
558
558
  "iana-time-zone",
@@ -629,7 +629,7 @@ dependencies = [
629
629
  "heck 0.5.0",
630
630
  "proc-macro2",
631
631
  "quote",
632
- "syn 2.0.100",
632
+ "syn 2.0.101",
633
633
  ]
634
634
 
635
635
  [[package]]
@@ -821,7 +821,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
821
821
  dependencies = [
822
822
  "proc-macro2",
823
823
  "quote",
824
- "syn 2.0.100",
824
+ "syn 2.0.101",
825
825
  "unicode-xid",
826
826
  ]
827
827
 
@@ -865,7 +865,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
865
865
  dependencies = [
866
866
  "proc-macro2",
867
867
  "quote",
868
- "syn 2.0.100",
868
+ "syn 2.0.101",
869
869
  ]
870
870
 
871
871
  [[package]]
@@ -1060,7 +1060,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
1060
1060
  dependencies = [
1061
1061
  "proc-macro2",
1062
1062
  "quote",
1063
- "syn 2.0.100",
1063
+ "syn 2.0.101",
1064
1064
  ]
1065
1065
 
1066
1066
  [[package]]
@@ -1105,9 +1105,9 @@ dependencies = [
1105
1105
 
1106
1106
  [[package]]
1107
1107
  name = "getrandom"
1108
- version = "0.2.15"
1108
+ version = "0.2.16"
1109
1109
  source = "registry+https://github.com/rust-lang/crates.io-index"
1110
- checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
1110
+ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
1111
1111
  dependencies = [
1112
1112
  "cfg-if",
1113
1113
  "js-sys",
@@ -1195,9 +1195,9 @@ dependencies = [
1195
1195
 
1196
1196
  [[package]]
1197
1197
  name = "hashbrown"
1198
- version = "0.15.2"
1198
+ version = "0.15.3"
1199
1199
  source = "registry+https://github.com/rust-lang/crates.io-index"
1200
- checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
1200
+ checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
1201
1201
 
1202
1202
  [[package]]
1203
1203
  name = "headers"
@@ -1552,7 +1552,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
1552
1552
  dependencies = [
1553
1553
  "proc-macro2",
1554
1554
  "quote",
1555
- "syn 2.0.100",
1555
+ "syn 2.0.101",
1556
1556
  ]
1557
1557
 
1558
1558
  [[package]]
@@ -1644,7 +1644,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1644
1644
 
1645
1645
  [[package]]
1646
1646
  name = "itsi-server"
1647
- version = "0.2.15"
1647
+ version = "0.2.16"
1648
1648
  dependencies = [
1649
1649
  "argon2",
1650
1650
  "async-channel",
@@ -1923,7 +1923,7 @@ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
1923
1923
  dependencies = [
1924
1924
  "proc-macro2",
1925
1925
  "quote",
1926
- "syn 2.0.100",
1926
+ "syn 2.0.101",
1927
1927
  ]
1928
1928
 
1929
1929
  [[package]]
@@ -2271,7 +2271,7 @@ dependencies = [
2271
2271
  "phf_shared",
2272
2272
  "proc-macro2",
2273
2273
  "quote",
2274
- "syn 2.0.100",
2274
+ "syn 2.0.101",
2275
2275
  ]
2276
2276
 
2277
2277
  [[package]]
@@ -2300,7 +2300,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
2300
2300
  dependencies = [
2301
2301
  "proc-macro2",
2302
2302
  "quote",
2303
- "syn 2.0.100",
2303
+ "syn 2.0.101",
2304
2304
  ]
2305
2305
 
2306
2306
  [[package]]
@@ -2333,7 +2333,7 @@ version = "0.2.21"
2333
2333
  source = "registry+https://github.com/rust-lang/crates.io-index"
2334
2334
  checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
2335
2335
  dependencies = [
2336
- "zerocopy 0.8.24",
2336
+ "zerocopy 0.8.25",
2337
2337
  ]
2338
2338
 
2339
2339
  [[package]]
@@ -2343,7 +2343,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2343
2343
  checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6"
2344
2344
  dependencies = [
2345
2345
  "proc-macro2",
2346
- "syn 2.0.100",
2346
+ "syn 2.0.101",
2347
2347
  ]
2348
2348
 
2349
2349
  [[package]]
@@ -2413,9 +2413,9 @@ dependencies = [
2413
2413
 
2414
2414
  [[package]]
2415
2415
  name = "quinn-proto"
2416
- version = "0.11.10"
2416
+ version = "0.11.11"
2417
2417
  source = "registry+https://github.com/rust-lang/crates.io-index"
2418
- checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc"
2418
+ checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b"
2419
2419
  dependencies = [
2420
2420
  "bytes",
2421
2421
  "getrandom 0.3.2",
@@ -2433,9 +2433,9 @@ dependencies = [
2433
2433
 
2434
2434
  [[package]]
2435
2435
  name = "quinn-udp"
2436
- version = "0.5.11"
2436
+ version = "0.5.12"
2437
2437
  source = "registry+https://github.com/rust-lang/crates.io-index"
2438
- checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5"
2438
+ checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842"
2439
2439
  dependencies = [
2440
2440
  "cfg_aliases",
2441
2441
  "libc",
@@ -2518,7 +2518,7 @@ version = "0.6.4"
2518
2518
  source = "registry+https://github.com/rust-lang/crates.io-index"
2519
2519
  checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2520
2520
  dependencies = [
2521
- "getrandom 0.2.15",
2521
+ "getrandom 0.2.16",
2522
2522
  ]
2523
2523
 
2524
2524
  [[package]]
@@ -2571,7 +2571,7 @@ dependencies = [
2571
2571
  "quote",
2572
2572
  "regex",
2573
2573
  "shell-words",
2574
- "syn 2.0.100",
2574
+ "syn 2.0.101",
2575
2575
  ]
2576
2576
 
2577
2577
  [[package]]
@@ -2637,7 +2637,7 @@ version = "0.5.0"
2637
2637
  source = "registry+https://github.com/rust-lang/crates.io-index"
2638
2638
  checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
2639
2639
  dependencies = [
2640
- "getrandom 0.2.15",
2640
+ "getrandom 0.2.16",
2641
2641
  "libredox",
2642
2642
  "thiserror 2.0.12",
2643
2643
  ]
@@ -2739,7 +2739,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
2739
2739
  dependencies = [
2740
2740
  "cc",
2741
2741
  "cfg-if",
2742
- "getrandom 0.2.15",
2742
+ "getrandom 0.2.16",
2743
2743
  "libc",
2744
2744
  "untrusted",
2745
2745
  "windows-sys 0.52.0",
@@ -2787,9 +2787,9 @@ dependencies = [
2787
2787
 
2788
2788
  [[package]]
2789
2789
  name = "rustix"
2790
- version = "1.0.5"
2790
+ version = "1.0.7"
2791
2791
  source = "registry+https://github.com/rust-lang/crates.io-index"
2792
- checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf"
2792
+ checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
2793
2793
  dependencies = [
2794
2794
  "bitflags 2.9.0",
2795
2795
  "errno",
@@ -2953,7 +2953,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
2953
2953
  dependencies = [
2954
2954
  "proc-macro2",
2955
2955
  "quote",
2956
- "syn 2.0.100",
2956
+ "syn 2.0.101",
2957
2957
  ]
2958
2958
 
2959
2959
  [[package]]
@@ -3032,9 +3032,9 @@ checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
3032
3032
 
3033
3033
  [[package]]
3034
3034
  name = "sha2"
3035
- version = "0.10.8"
3035
+ version = "0.10.9"
3036
3036
  source = "registry+https://github.com/rust-lang/crates.io-index"
3037
- checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
3037
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
3038
3038
  dependencies = [
3039
3039
  "cfg-if",
3040
3040
  "cpufeatures",
@@ -3193,9 +3193,9 @@ dependencies = [
3193
3193
 
3194
3194
  [[package]]
3195
3195
  name = "syn"
3196
- version = "2.0.100"
3196
+ version = "2.0.101"
3197
3197
  source = "registry+https://github.com/rust-lang/crates.io-index"
3198
- checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
3198
+ checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
3199
3199
  dependencies = [
3200
3200
  "proc-macro2",
3201
3201
  "quote",
@@ -3213,13 +3213,13 @@ dependencies = [
3213
3213
 
3214
3214
  [[package]]
3215
3215
  name = "synstructure"
3216
- version = "0.13.1"
3216
+ version = "0.13.2"
3217
3217
  source = "registry+https://github.com/rust-lang/crates.io-index"
3218
- checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
3218
+ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
3219
3219
  dependencies = [
3220
3220
  "proc-macro2",
3221
3221
  "quote",
3222
- "syn 2.0.100",
3222
+ "syn 2.0.101",
3223
3223
  ]
3224
3224
 
3225
3225
  [[package]]
@@ -3251,7 +3251,7 @@ dependencies = [
3251
3251
  "fastrand",
3252
3252
  "getrandom 0.3.2",
3253
3253
  "once_cell",
3254
- "rustix 1.0.5",
3254
+ "rustix 1.0.7",
3255
3255
  "windows-sys 0.59.0",
3256
3256
  ]
3257
3257
 
@@ -3290,7 +3290,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3290
3290
  dependencies = [
3291
3291
  "proc-macro2",
3292
3292
  "quote",
3293
- "syn 2.0.100",
3293
+ "syn 2.0.101",
3294
3294
  ]
3295
3295
 
3296
3296
  [[package]]
@@ -3301,7 +3301,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
3301
3301
  dependencies = [
3302
3302
  "proc-macro2",
3303
3303
  "quote",
3304
- "syn 2.0.100",
3304
+ "syn 2.0.101",
3305
3305
  ]
3306
3306
 
3307
3307
  [[package]]
@@ -3398,7 +3398,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
3398
3398
  dependencies = [
3399
3399
  "proc-macro2",
3400
3400
  "quote",
3401
- "syn 2.0.100",
3401
+ "syn 2.0.101",
3402
3402
  ]
3403
3403
 
3404
3404
  [[package]]
@@ -3436,9 +3436,9 @@ dependencies = [
3436
3436
 
3437
3437
  [[package]]
3438
3438
  name = "tokio-util"
3439
- version = "0.7.14"
3439
+ version = "0.7.15"
3440
3440
  source = "registry+https://github.com/rust-lang/crates.io-index"
3441
- checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034"
3441
+ checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
3442
3442
  dependencies = [
3443
3443
  "bytes",
3444
3444
  "futures-core",
@@ -3508,7 +3508,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
3508
3508
  dependencies = [
3509
3509
  "proc-macro2",
3510
3510
  "quote",
3511
- "syn 2.0.100",
3511
+ "syn 2.0.101",
3512
3512
  ]
3513
3513
 
3514
3514
  [[package]]
@@ -3768,7 +3768,7 @@ dependencies = [
3768
3768
  "log",
3769
3769
  "proc-macro2",
3770
3770
  "quote",
3771
- "syn 2.0.100",
3771
+ "syn 2.0.101",
3772
3772
  "wasm-bindgen-shared",
3773
3773
  ]
3774
3774
 
@@ -3803,7 +3803,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
3803
3803
  dependencies = [
3804
3804
  "proc-macro2",
3805
3805
  "quote",
3806
- "syn 2.0.100",
3806
+ "syn 2.0.101",
3807
3807
  "wasm-bindgen-backend",
3808
3808
  "wasm-bindgen-shared",
3809
3809
  ]
@@ -3852,9 +3852,9 @@ dependencies = [
3852
3852
 
3853
3853
  [[package]]
3854
3854
  name = "webpki-roots"
3855
- version = "0.26.8"
3855
+ version = "0.26.10"
3856
3856
  source = "registry+https://github.com/rust-lang/crates.io-index"
3857
- checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9"
3857
+ checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93"
3858
3858
  dependencies = [
3859
3859
  "rustls-pki-types",
3860
3860
  ]
@@ -3945,7 +3945,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
3945
3945
  dependencies = [
3946
3946
  "proc-macro2",
3947
3947
  "quote",
3948
- "syn 2.0.100",
3948
+ "syn 2.0.101",
3949
3949
  ]
3950
3950
 
3951
3951
  [[package]]
@@ -3956,7 +3956,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
3956
3956
  dependencies = [
3957
3957
  "proc-macro2",
3958
3958
  "quote",
3959
- "syn 2.0.100",
3959
+ "syn 2.0.101",
3960
3960
  ]
3961
3961
 
3962
3962
  [[package]]
@@ -3967,7 +3967,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
3967
3967
  dependencies = [
3968
3968
  "proc-macro2",
3969
3969
  "quote",
3970
- "syn 2.0.100",
3970
+ "syn 2.0.101",
3971
3971
  ]
3972
3972
 
3973
3973
  [[package]]
@@ -3978,7 +3978,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
3978
3978
  dependencies = [
3979
3979
  "proc-macro2",
3980
3980
  "quote",
3981
- "syn 2.0.100",
3981
+ "syn 2.0.101",
3982
3982
  ]
3983
3983
 
3984
3984
  [[package]]
@@ -4314,7 +4314,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
4314
4314
  dependencies = [
4315
4315
  "proc-macro2",
4316
4316
  "quote",
4317
- "syn 2.0.100",
4317
+ "syn 2.0.101",
4318
4318
  "synstructure",
4319
4319
  ]
4320
4320
 
@@ -4329,11 +4329,11 @@ dependencies = [
4329
4329
 
4330
4330
  [[package]]
4331
4331
  name = "zerocopy"
4332
- version = "0.8.24"
4332
+ version = "0.8.25"
4333
4333
  source = "registry+https://github.com/rust-lang/crates.io-index"
4334
- checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
4334
+ checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
4335
4335
  dependencies = [
4336
- "zerocopy-derive 0.8.24",
4336
+ "zerocopy-derive 0.8.25",
4337
4337
  ]
4338
4338
 
4339
4339
  [[package]]
@@ -4344,18 +4344,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
4344
4344
  dependencies = [
4345
4345
  "proc-macro2",
4346
4346
  "quote",
4347
- "syn 2.0.100",
4347
+ "syn 2.0.101",
4348
4348
  ]
4349
4349
 
4350
4350
  [[package]]
4351
4351
  name = "zerocopy-derive"
4352
- version = "0.8.24"
4352
+ version = "0.8.25"
4353
4353
  source = "registry+https://github.com/rust-lang/crates.io-index"
4354
- checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be"
4354
+ checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
4355
4355
  dependencies = [
4356
4356
  "proc-macro2",
4357
4357
  "quote",
4358
- "syn 2.0.100",
4358
+ "syn 2.0.101",
4359
4359
  ]
4360
4360
 
4361
4361
  [[package]]
@@ -4375,7 +4375,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
4375
4375
  dependencies = [
4376
4376
  "proc-macro2",
4377
4377
  "quote",
4378
- "syn 2.0.100",
4378
+ "syn 2.0.101",
4379
4379
  "synstructure",
4380
4380
  ]
4381
4381
 
@@ -4404,7 +4404,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
4404
4404
  dependencies = [
4405
4405
  "proc-macro2",
4406
4406
  "quote",
4407
- "syn 2.0.100",
4407
+ "syn 2.0.101",
4408
4408
  ]
4409
4409
 
4410
4410
  [[package]]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "itsi-scheduler"
3
- version = "0.2.15"
3
+ version = "0.2.16"
4
4
  edition = "2021"
5
5
  authors = ["Wouter Coppieters <wc@pico.net.nz>"]
6
6
  license = "MIT"
@@ -111,7 +111,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
111
111
 
112
112
  [[package]]
113
113
  name = "atty"
114
- version = "0.2.15"
114
+ version = "0.2.16"
115
115
  source = "registry+https://github.com/rust-lang/crates.io-index"
116
116
  checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
117
117
  dependencies = [
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "itsi-server"
3
- version = "0.2.15"
3
+ version = "0.2.16"
4
4
  edition = "2021"
5
5
  authors = ["Wouter Coppieters <wc@pico.net.nz>"]
6
6
  license = "MIT"
@@ -3,4 +3,6 @@
3
3
  require "mkmf"
4
4
  require "rb_sys/mkmf"
5
5
 
6
- create_rust_makefile("itsi/server/itsi_server")
6
+ create_rust_makefile("itsi/server/itsi_server") do |r|
7
+ r.extra_rustflags = ["-C target-cpu=native"]
8
+ end
@@ -1,4 +1,5 @@
1
1
  #![deny(unused_crate_dependencies)]
2
+
2
3
  pub mod default_responses;
3
4
  pub mod env;
4
5
  pub mod prelude;
@@ -126,12 +126,12 @@ impl ItsiGrpcCall {
126
126
  nonblocking: bool,
127
127
  ) -> itsi_error::Result<HttpResponse> {
128
128
  let (request, mut receiver) = ItsiGrpcCall::new(hyper_request, context).await;
129
- let shutdown_channel = context.service.shutdown_channel.clone();
129
+ let shutdown_channel = context.service.shutdown_receiver.clone();
130
130
  let response_stream = request.stream.clone();
131
131
  let sender = if nonblocking {
132
132
  &context.nonblocking_sender
133
133
  } else {
134
- &context.sender
134
+ &context.job_sender
135
135
  };
136
136
  match sender
137
137
  .send(RequestJob::ProcessGrpcRequest(request, app))
@@ -180,24 +180,22 @@ impl ItsiHttpRequest {
180
180
  ) -> itsi_error::Result<HttpResponse> {
181
181
  match ItsiHttpRequest::new(hyper_request, context, script_name).await {
182
182
  Ok((request, mut receiver)) => {
183
- let shutdown_channel = context.service.shutdown_channel.clone();
183
+ let shutdown_channel = context.service.shutdown_receiver.clone();
184
184
  let response = request.response.clone();
185
185
  let sender = if nonblocking {
186
186
  &context.nonblocking_sender
187
187
  } else {
188
- &context.sender
188
+ &context.job_sender
189
189
  };
190
190
  match sender.try_send(RequestJob::ProcessHttpRequest(request, app)) {
191
191
  Err(err) => match err {
192
- async_channel::TrySendError::Full(_) => {
193
- Ok(SERVICE_UNAVAILABLE_RESPONSE
194
- .to_http_response(context.accept.clone())
195
- .await)
196
- }
192
+ async_channel::TrySendError::Full(_) => Ok(SERVICE_UNAVAILABLE_RESPONSE
193
+ .to_http_response(context.accept)
194
+ .await),
197
195
  async_channel::TrySendError::Closed(err) => {
198
196
  error!("Error occurred: {:?}", err);
199
197
  Ok(INTERNAL_SERVER_ERROR_RESPONSE
200
- .to_http_response(context.accept.clone())
198
+ .to_http_response(context.accept)
201
199
  .await)
202
200
  }
203
201
  },
@@ -309,7 +307,7 @@ impl ItsiHttpRequest {
309
307
  .parts
310
308
  .uri
311
309
  .host()
312
- .unwrap_or_else(|| &self.context.listener.host))
310
+ .unwrap_or_else(|| &self.context.listener_info.host))
313
311
  }
314
312
 
315
313
  pub(crate) fn scheme(&self) -> MagnusResult<&str> {
@@ -318,7 +316,7 @@ impl ItsiHttpRequest {
318
316
  .uri
319
317
  .scheme()
320
318
  .map(|scheme| scheme.as_str())
321
- .unwrap_or_else(|| &self.context.listener.scheme))
319
+ .unwrap_or_else(|| &self.context.listener_info.scheme))
322
320
  }
323
321
 
324
322
  pub(crate) fn headers(&self) -> MagnusResult<Vec<(&str, &str)>> {
@@ -354,7 +352,7 @@ impl ItsiHttpRequest {
354
352
  .parts
355
353
  .uri
356
354
  .port_u16()
357
- .unwrap_or(self.context.listener.port))
355
+ .unwrap_or(self.context.listener_info.port))
358
356
  }
359
357
 
360
358
  pub(crate) fn body(&self) -> MagnusResult<Option<Value>> {
@@ -82,7 +82,7 @@ pub struct ServerParams {
82
82
  preexisting_listeners: Option<String>,
83
83
  }
84
84
 
85
- #[derive(Debug, Clone)]
85
+ #[derive(Debug, Clone, Copy)]
86
86
  pub enum ItsiServerTokenPreference {
87
87
  Version,
88
88
  Name,
@@ -109,6 +109,7 @@ pub struct SocketOpts {
109
109
  pub listen_backlog: usize,
110
110
  pub nodelay: bool,
111
111
  pub recv_buffer_size: usize,
112
+ pub send_buffer_size: usize,
112
113
  }
113
114
 
114
115
  impl ServerParams {
@@ -248,6 +249,9 @@ impl ServerParams {
248
249
  let recv_buffer_size: usize = rb_param_hash
249
250
  .fetch::<_, Option<usize>>("recv_buffer_size")?
250
251
  .unwrap_or(262_144);
252
+ let send_buffer_size: usize = rb_param_hash
253
+ .fetch::<_, Option<usize>>("send_buffer_size")?
254
+ .unwrap_or(262_144);
251
255
 
252
256
  if let Some(level) = log_level {
253
257
  set_level(&level);
@@ -296,6 +300,7 @@ impl ServerParams {
296
300
  listen_backlog,
297
301
  nodelay,
298
302
  recv_buffer_size,
303
+ send_buffer_size,
299
304
  };
300
305
  let preexisting_listeners = rb_param_hash.delete::<_, Option<String>>("listeners")?;
301
306