itsi 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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/Cargo.lock +74 -74
  4. data/crates/itsi_scheduler/Cargo.toml +1 -1
  5. data/crates/itsi_scheduler/extconf.rb +3 -1
  6. data/crates/itsi_server/Cargo.lock +1 -1
  7. data/crates/itsi_server/Cargo.toml +1 -1
  8. data/crates/itsi_server/extconf.rb +3 -1
  9. data/crates/itsi_server/src/lib.rs +1 -0
  10. data/crates/itsi_server/src/ruby_types/itsi_grpc_call.rs +2 -2
  11. data/crates/itsi_server/src/ruby_types/itsi_http_request.rs +9 -11
  12. data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +6 -1
  13. data/crates/itsi_server/src/server/binds/listener.rs +4 -1
  14. data/crates/itsi_server/src/server/http_message_types.rs +1 -1
  15. data/crates/itsi_server/src/server/middleware_stack/middlewares/error_response/default_responses.rs +32 -34
  16. data/crates/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +3 -4
  17. data/crates/itsi_server/src/server/middleware_stack/middlewares/etag.rs +23 -38
  18. data/crates/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +65 -14
  19. data/crates/itsi_server/src/server/middleware_stack/middlewares/max_body.rs +1 -1
  20. data/crates/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +1 -1
  21. data/crates/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +21 -8
  22. data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +1 -5
  23. data/crates/itsi_server/src/server/middleware_stack/middlewares/static_response.rs +12 -3
  24. data/crates/itsi_server/src/server/process_worker.rs +2 -1
  25. data/crates/itsi_server/src/server/serve_strategy/acceptor.rs +96 -0
  26. data/crates/itsi_server/src/server/serve_strategy/mod.rs +1 -0
  27. data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +80 -136
  28. data/crates/itsi_server/src/server/thread_worker.rs +10 -3
  29. data/crates/itsi_server/src/services/itsi_http_service.rs +26 -21
  30. data/crates/itsi_server/src/services/mime_types.rs +185 -183
  31. data/crates/itsi_server/src/services/rate_limiter.rs +16 -34
  32. data/crates/itsi_server/src/services/static_file_server.rs +7 -13
  33. data/docs/content/features/_index.md +1 -1
  34. data/examples/rails_with_static_assets/Gemfile.lock +1 -1
  35. data/examples/rails_with_static_assets/Itsi.rb +4 -1
  36. data/gems/scheduler/Cargo.lock +15 -15
  37. data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
  38. data/gems/server/Cargo.lock +73 -73
  39. data/gems/server/lib/itsi/server/config/config_helpers.rb +1 -2
  40. data/gems/server/lib/itsi/server/config/middleware/etag.md +3 -7
  41. data/gems/server/lib/itsi/server/config/middleware/etag.rb +2 -4
  42. data/gems/server/lib/itsi/server/config/options/listen_backlog.rb +1 -1
  43. data/gems/server/lib/itsi/server/config/options/send_buffer_size.md +15 -0
  44. data/gems/server/lib/itsi/server/config/options/send_buffer_size.rb +19 -0
  45. data/gems/server/lib/itsi/server/config.rb +24 -25
  46. data/gems/server/lib/itsi/server/route_tester.rb +1 -1
  47. data/gems/server/lib/itsi/server/version.rb +1 -1
  48. data/gems/server/test/middleware/etag.rb +3 -3
  49. data/gems/server/test/options/ruby_thread_request_backlog_size.rb +2 -3
  50. data/lib/itsi/version.rb +1 -1
  51. data/tasks.txt +8 -7
  52. metadata +8 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48a2f9ed6dbf64c922c0afd1a8f7ecd07fbed9587b6863cd3052eb1b957d00da
4
- data.tar.gz: c69b07d771b76e228213f251e77170ce20b81c169327781865d4f03a865e934b
3
+ metadata.gz: d26838019381b65a1bec973d72b93cb32a377dba836951cb3e43fed1f7eb3737
4
+ data.tar.gz: 1e95bfc6b703baca4813252c6cbd6dd5838d7690db71e4d49fdb3988ffc5058c
5
5
  SHA512:
6
- metadata.gz: 9f99f959ffa9090035849acd0433d9117ca73d2565d2eb0d656a2b6f2dbc2dbfcef32b27a2c2ab2c20f143faca27a6c96df000046659d36d54ab0cfd43fcb690
7
- data.tar.gz: af9a7f471ee483dcb28b6a3c1520b7a050423427f2b1219308f64ee2a12dfe862de61eb46688ae0accf2fc634c65a01e393a3f3f5044476a124541b0d0a9b453
6
+ metadata.gz: f666599892fb63930aaee662395015f46d91e15bbc054878d759de084938d7402de8c2d7b9644b554dfe779b346d99f4d6e6b0114fa3296f1dc21b49b375ff99
7
+ data.tar.gz: aee5a3016644f6a97c02d0445b14e984a9af751c7f7bac2e437c15622f3a45300e5a69d305354f601260ed45585a88fdde37c66a60fa34d61d1645ae72e862c6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [0.2.16] - 2025-05-02
2
+ - Optimized static error responses
3
+ - Optimized rate limit middleware
4
+ - Made default static serve command use more efficient defaults
5
+ - Reduced cloning in main accept-loop
6
+ - Fixed ability to set nodelay to false.
7
+ - Added send_buffer_size option.
8
+ - Worker pinning accepts ruby workers too
9
+ - Fixed ordering incomaptibility in etag forwarding from static file server
10
+
1
11
  ## [0.2.14] - 2025-04-30
2
12
  - Support new-line separated headers for Rack 2 backward compatibility.
3
13
 
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-scheduler"
1647
- version = "0.2.15"
1647
+ version = "0.2.16"
1648
1648
  dependencies = [
1649
1649
  "bytes",
1650
1650
  "derive_more",
@@ -1662,7 +1662,7 @@ dependencies = [
1662
1662
 
1663
1663
  [[package]]
1664
1664
  name = "itsi-server"
1665
- version = "0.2.15"
1665
+ version = "0.2.16"
1666
1666
  dependencies = [
1667
1667
  "argon2",
1668
1668
  "async-channel",
@@ -1950,7 +1950,7 @@ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
1950
1950
  dependencies = [
1951
1951
  "proc-macro2",
1952
1952
  "quote",
1953
- "syn 2.0.100",
1953
+ "syn 2.0.101",
1954
1954
  ]
1955
1955
 
1956
1956
  [[package]]
@@ -2298,7 +2298,7 @@ dependencies = [
2298
2298
  "phf_shared",
2299
2299
  "proc-macro2",
2300
2300
  "quote",
2301
- "syn 2.0.100",
2301
+ "syn 2.0.101",
2302
2302
  ]
2303
2303
 
2304
2304
  [[package]]
@@ -2327,7 +2327,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
2327
2327
  dependencies = [
2328
2328
  "proc-macro2",
2329
2329
  "quote",
2330
- "syn 2.0.100",
2330
+ "syn 2.0.101",
2331
2331
  ]
2332
2332
 
2333
2333
  [[package]]
@@ -2360,7 +2360,7 @@ version = "0.2.21"
2360
2360
  source = "registry+https://github.com/rust-lang/crates.io-index"
2361
2361
  checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
2362
2362
  dependencies = [
2363
- "zerocopy 0.8.24",
2363
+ "zerocopy 0.8.25",
2364
2364
  ]
2365
2365
 
2366
2366
  [[package]]
@@ -2370,7 +2370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2370
2370
  checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6"
2371
2371
  dependencies = [
2372
2372
  "proc-macro2",
2373
- "syn 2.0.100",
2373
+ "syn 2.0.101",
2374
2374
  ]
2375
2375
 
2376
2376
  [[package]]
@@ -2440,9 +2440,9 @@ dependencies = [
2440
2440
 
2441
2441
  [[package]]
2442
2442
  name = "quinn-proto"
2443
- version = "0.11.10"
2443
+ version = "0.11.11"
2444
2444
  source = "registry+https://github.com/rust-lang/crates.io-index"
2445
- checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc"
2445
+ checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b"
2446
2446
  dependencies = [
2447
2447
  "bytes",
2448
2448
  "getrandom 0.3.2",
@@ -2460,9 +2460,9 @@ dependencies = [
2460
2460
 
2461
2461
  [[package]]
2462
2462
  name = "quinn-udp"
2463
- version = "0.5.11"
2463
+ version = "0.5.12"
2464
2464
  source = "registry+https://github.com/rust-lang/crates.io-index"
2465
- checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5"
2465
+ checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842"
2466
2466
  dependencies = [
2467
2467
  "cfg_aliases",
2468
2468
  "libc",
@@ -2545,7 +2545,7 @@ version = "0.6.4"
2545
2545
  source = "registry+https://github.com/rust-lang/crates.io-index"
2546
2546
  checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2547
2547
  dependencies = [
2548
- "getrandom 0.2.15",
2548
+ "getrandom 0.2.16",
2549
2549
  ]
2550
2550
 
2551
2551
  [[package]]
@@ -2598,7 +2598,7 @@ dependencies = [
2598
2598
  "quote",
2599
2599
  "regex",
2600
2600
  "shell-words",
2601
- "syn 2.0.100",
2601
+ "syn 2.0.101",
2602
2602
  ]
2603
2603
 
2604
2604
  [[package]]
@@ -2664,7 +2664,7 @@ version = "0.5.0"
2664
2664
  source = "registry+https://github.com/rust-lang/crates.io-index"
2665
2665
  checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
2666
2666
  dependencies = [
2667
- "getrandom 0.2.15",
2667
+ "getrandom 0.2.16",
2668
2668
  "libredox",
2669
2669
  "thiserror 2.0.12",
2670
2670
  ]
@@ -2766,7 +2766,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
2766
2766
  dependencies = [
2767
2767
  "cc",
2768
2768
  "cfg-if",
2769
- "getrandom 0.2.15",
2769
+ "getrandom 0.2.16",
2770
2770
  "libc",
2771
2771
  "untrusted",
2772
2772
  "windows-sys 0.52.0",
@@ -2814,9 +2814,9 @@ dependencies = [
2814
2814
 
2815
2815
  [[package]]
2816
2816
  name = "rustix"
2817
- version = "1.0.5"
2817
+ version = "1.0.7"
2818
2818
  source = "registry+https://github.com/rust-lang/crates.io-index"
2819
- checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf"
2819
+ checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
2820
2820
  dependencies = [
2821
2821
  "bitflags 2.9.0",
2822
2822
  "errno",
@@ -2980,7 +2980,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
2980
2980
  dependencies = [
2981
2981
  "proc-macro2",
2982
2982
  "quote",
2983
- "syn 2.0.100",
2983
+ "syn 2.0.101",
2984
2984
  ]
2985
2985
 
2986
2986
  [[package]]
@@ -3059,9 +3059,9 @@ checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
3059
3059
 
3060
3060
  [[package]]
3061
3061
  name = "sha2"
3062
- version = "0.10.8"
3062
+ version = "0.10.9"
3063
3063
  source = "registry+https://github.com/rust-lang/crates.io-index"
3064
- checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
3064
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
3065
3065
  dependencies = [
3066
3066
  "cfg-if",
3067
3067
  "cpufeatures",
@@ -3220,9 +3220,9 @@ dependencies = [
3220
3220
 
3221
3221
  [[package]]
3222
3222
  name = "syn"
3223
- version = "2.0.100"
3223
+ version = "2.0.101"
3224
3224
  source = "registry+https://github.com/rust-lang/crates.io-index"
3225
- checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
3225
+ checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
3226
3226
  dependencies = [
3227
3227
  "proc-macro2",
3228
3228
  "quote",
@@ -3240,13 +3240,13 @@ dependencies = [
3240
3240
 
3241
3241
  [[package]]
3242
3242
  name = "synstructure"
3243
- version = "0.13.1"
3243
+ version = "0.13.2"
3244
3244
  source = "registry+https://github.com/rust-lang/crates.io-index"
3245
- checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
3245
+ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
3246
3246
  dependencies = [
3247
3247
  "proc-macro2",
3248
3248
  "quote",
3249
- "syn 2.0.100",
3249
+ "syn 2.0.101",
3250
3250
  ]
3251
3251
 
3252
3252
  [[package]]
@@ -3278,7 +3278,7 @@ dependencies = [
3278
3278
  "fastrand",
3279
3279
  "getrandom 0.3.2",
3280
3280
  "once_cell",
3281
- "rustix 1.0.5",
3281
+ "rustix 1.0.7",
3282
3282
  "windows-sys 0.59.0",
3283
3283
  ]
3284
3284
 
@@ -3317,7 +3317,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3317
3317
  dependencies = [
3318
3318
  "proc-macro2",
3319
3319
  "quote",
3320
- "syn 2.0.100",
3320
+ "syn 2.0.101",
3321
3321
  ]
3322
3322
 
3323
3323
  [[package]]
@@ -3328,7 +3328,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
3328
3328
  dependencies = [
3329
3329
  "proc-macro2",
3330
3330
  "quote",
3331
- "syn 2.0.100",
3331
+ "syn 2.0.101",
3332
3332
  ]
3333
3333
 
3334
3334
  [[package]]
@@ -3425,7 +3425,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
3425
3425
  dependencies = [
3426
3426
  "proc-macro2",
3427
3427
  "quote",
3428
- "syn 2.0.100",
3428
+ "syn 2.0.101",
3429
3429
  ]
3430
3430
 
3431
3431
  [[package]]
@@ -3463,9 +3463,9 @@ dependencies = [
3463
3463
 
3464
3464
  [[package]]
3465
3465
  name = "tokio-util"
3466
- version = "0.7.14"
3466
+ version = "0.7.15"
3467
3467
  source = "registry+https://github.com/rust-lang/crates.io-index"
3468
- checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034"
3468
+ checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
3469
3469
  dependencies = [
3470
3470
  "bytes",
3471
3471
  "futures-core",
@@ -3535,7 +3535,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
3535
3535
  dependencies = [
3536
3536
  "proc-macro2",
3537
3537
  "quote",
3538
- "syn 2.0.100",
3538
+ "syn 2.0.101",
3539
3539
  ]
3540
3540
 
3541
3541
  [[package]]
@@ -3795,7 +3795,7 @@ dependencies = [
3795
3795
  "log",
3796
3796
  "proc-macro2",
3797
3797
  "quote",
3798
- "syn 2.0.100",
3798
+ "syn 2.0.101",
3799
3799
  "wasm-bindgen-shared",
3800
3800
  ]
3801
3801
 
@@ -3830,7 +3830,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
3830
3830
  dependencies = [
3831
3831
  "proc-macro2",
3832
3832
  "quote",
3833
- "syn 2.0.100",
3833
+ "syn 2.0.101",
3834
3834
  "wasm-bindgen-backend",
3835
3835
  "wasm-bindgen-shared",
3836
3836
  ]
@@ -3879,9 +3879,9 @@ dependencies = [
3879
3879
 
3880
3880
  [[package]]
3881
3881
  name = "webpki-roots"
3882
- version = "0.26.8"
3882
+ version = "0.26.10"
3883
3883
  source = "registry+https://github.com/rust-lang/crates.io-index"
3884
- checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9"
3884
+ checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93"
3885
3885
  dependencies = [
3886
3886
  "rustls-pki-types",
3887
3887
  ]
@@ -3972,7 +3972,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
3972
3972
  dependencies = [
3973
3973
  "proc-macro2",
3974
3974
  "quote",
3975
- "syn 2.0.100",
3975
+ "syn 2.0.101",
3976
3976
  ]
3977
3977
 
3978
3978
  [[package]]
@@ -3983,7 +3983,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
3983
3983
  dependencies = [
3984
3984
  "proc-macro2",
3985
3985
  "quote",
3986
- "syn 2.0.100",
3986
+ "syn 2.0.101",
3987
3987
  ]
3988
3988
 
3989
3989
  [[package]]
@@ -3994,7 +3994,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
3994
3994
  dependencies = [
3995
3995
  "proc-macro2",
3996
3996
  "quote",
3997
- "syn 2.0.100",
3997
+ "syn 2.0.101",
3998
3998
  ]
3999
3999
 
4000
4000
  [[package]]
@@ -4005,7 +4005,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
4005
4005
  dependencies = [
4006
4006
  "proc-macro2",
4007
4007
  "quote",
4008
- "syn 2.0.100",
4008
+ "syn 2.0.101",
4009
4009
  ]
4010
4010
 
4011
4011
  [[package]]
@@ -4341,7 +4341,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
4341
4341
  dependencies = [
4342
4342
  "proc-macro2",
4343
4343
  "quote",
4344
- "syn 2.0.100",
4344
+ "syn 2.0.101",
4345
4345
  "synstructure",
4346
4346
  ]
4347
4347
 
@@ -4356,11 +4356,11 @@ dependencies = [
4356
4356
 
4357
4357
  [[package]]
4358
4358
  name = "zerocopy"
4359
- version = "0.8.24"
4359
+ version = "0.8.25"
4360
4360
  source = "registry+https://github.com/rust-lang/crates.io-index"
4361
- checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
4361
+ checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
4362
4362
  dependencies = [
4363
- "zerocopy-derive 0.8.24",
4363
+ "zerocopy-derive 0.8.25",
4364
4364
  ]
4365
4365
 
4366
4366
  [[package]]
@@ -4371,18 +4371,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
4371
4371
  dependencies = [
4372
4372
  "proc-macro2",
4373
4373
  "quote",
4374
- "syn 2.0.100",
4374
+ "syn 2.0.101",
4375
4375
  ]
4376
4376
 
4377
4377
  [[package]]
4378
4378
  name = "zerocopy-derive"
4379
- version = "0.8.24"
4379
+ version = "0.8.25"
4380
4380
  source = "registry+https://github.com/rust-lang/crates.io-index"
4381
- checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be"
4381
+ checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
4382
4382
  dependencies = [
4383
4383
  "proc-macro2",
4384
4384
  "quote",
4385
- "syn 2.0.100",
4385
+ "syn 2.0.101",
4386
4386
  ]
4387
4387
 
4388
4388
  [[package]]
@@ -4402,7 +4402,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
4402
4402
  dependencies = [
4403
4403
  "proc-macro2",
4404
4404
  "quote",
4405
- "syn 2.0.100",
4405
+ "syn 2.0.101",
4406
4406
  "synstructure",
4407
4407
  ]
4408
4408
 
@@ -4431,7 +4431,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
4431
4431
  dependencies = [
4432
4432
  "proc-macro2",
4433
4433
  "quote",
4434
- "syn 2.0.100",
4434
+ "syn 2.0.101",
4435
4435
  ]
4436
4436
 
4437
4437
  [[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"
@@ -3,4 +3,6 @@
3
3
  require "mkmf"
4
4
  require "rb_sys/mkmf"
5
5
 
6
- create_rust_makefile("itsi/scheduler/itsi_scheduler")
6
+ create_rust_makefile("itsi/scheduler/itsi_scheduler") do |r|
7
+ r.extra_rustflags = ["-C target-cpu=native"]
8
+ end
@@ -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>> {