itsi-server 0.2.15 → 0.2.17
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.
- checksums.yaml +4 -4
- data/Cargo.lock +75 -73
- data/exe/itsi +6 -1
- data/ext/itsi_acme/Cargo.toml +1 -1
- data/ext/itsi_scheduler/Cargo.toml +1 -1
- data/ext/itsi_server/Cargo.lock +1 -1
- data/ext/itsi_server/Cargo.toml +3 -1
- data/ext/itsi_server/extconf.rb +3 -1
- data/ext/itsi_server/src/lib.rs +7 -1
- data/ext/itsi_server/src/ruby_types/itsi_body_proxy/mod.rs +2 -0
- data/ext/itsi_server/src/ruby_types/itsi_grpc_call.rs +6 -6
- data/ext/itsi_server/src/ruby_types/itsi_grpc_response_stream/mod.rs +14 -13
- data/ext/itsi_server/src/ruby_types/itsi_http_request.rs +71 -42
- data/ext/itsi_server/src/ruby_types/itsi_http_response.rs +151 -152
- data/ext/itsi_server/src/ruby_types/itsi_server/file_watcher.rs +6 -15
- data/ext/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +32 -6
- data/ext/itsi_server/src/ruby_types/itsi_server.rs +1 -1
- data/ext/itsi_server/src/server/binds/listener.rs +49 -8
- data/ext/itsi_server/src/server/frame_stream.rs +142 -0
- data/ext/itsi_server/src/server/http_message_types.rs +143 -10
- data/ext/itsi_server/src/server/io_stream.rs +28 -5
- data/ext/itsi_server/src/server/lifecycle_event.rs +1 -1
- data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs +2 -3
- data/ext/itsi_server/src/server/middleware_stack/middlewares/compression.rs +8 -10
- data/ext/itsi_server/src/server/middleware_stack/middlewares/cors.rs +2 -3
- data/ext/itsi_server/src/server/middleware_stack/middlewares/csp.rs +3 -3
- data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response/default_responses.rs +54 -58
- data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +6 -9
- data/ext/itsi_server/src/server/middleware_stack/middlewares/etag.rs +27 -42
- data/ext/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +65 -14
- data/ext/itsi_server/src/server/middleware_stack/middlewares/max_body.rs +1 -1
- data/ext/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +8 -11
- data/ext/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +21 -8
- data/ext/itsi_server/src/server/middleware_stack/middlewares/redirect.rs +2 -3
- data/ext/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +1 -5
- data/ext/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +1 -2
- data/ext/itsi_server/src/server/middleware_stack/middlewares/static_response.rs +13 -6
- data/ext/itsi_server/src/server/mod.rs +1 -0
- data/ext/itsi_server/src/server/process_worker.rs +5 -5
- data/ext/itsi_server/src/server/serve_strategy/acceptor.rs +100 -0
- data/ext/itsi_server/src/server/serve_strategy/cluster_mode.rs +87 -31
- data/ext/itsi_server/src/server/serve_strategy/mod.rs +1 -0
- data/ext/itsi_server/src/server/serve_strategy/single_mode.rs +166 -206
- data/ext/itsi_server/src/server/signal.rs +37 -9
- data/ext/itsi_server/src/server/thread_worker.rs +92 -70
- data/ext/itsi_server/src/services/itsi_http_service.rs +67 -62
- data/ext/itsi_server/src/services/mime_types.rs +185 -183
- data/ext/itsi_server/src/services/rate_limiter.rs +16 -34
- data/ext/itsi_server/src/services/static_file_server.rs +35 -60
- data/lib/itsi/http_request.rb +31 -39
- data/lib/itsi/http_response.rb +5 -0
- data/lib/itsi/rack_env_pool.rb +59 -0
- data/lib/itsi/server/config/config_helpers.rb +1 -2
- data/lib/itsi/server/config/dsl.rb +5 -4
- data/lib/itsi/server/config/middleware/etag.md +3 -7
- data/lib/itsi/server/config/middleware/etag.rb +2 -4
- data/lib/itsi/server/config/middleware/proxy.rb +1 -1
- data/lib/itsi/server/config/middleware/rackup_file.rb +2 -2
- data/lib/itsi/server/config/options/auto_reload_config.rb +6 -2
- data/lib/itsi/server/config/options/include.rb +5 -2
- data/lib/itsi/server/config/options/listen_backlog.rb +1 -1
- data/lib/itsi/server/config/options/pipeline_flush.md +16 -0
- data/lib/itsi/server/config/options/pipeline_flush.rb +19 -0
- data/lib/itsi/server/config/options/send_buffer_size.md +15 -0
- data/lib/itsi/server/config/options/send_buffer_size.rb +19 -0
- data/lib/itsi/server/config/options/writev.md +25 -0
- data/lib/itsi/server/config/options/writev.rb +19 -0
- data/lib/itsi/server/config.rb +43 -31
- data/lib/itsi/server/default_config/Itsi.rb +1 -4
- data/lib/itsi/server/grpc/grpc_call.rb +2 -0
- data/lib/itsi/server/grpc/grpc_interface.rb +2 -2
- data/lib/itsi/server/rack/handler/itsi.rb +3 -1
- data/lib/itsi/server/rack_interface.rb +17 -12
- data/lib/itsi/server/route_tester.rb +1 -1
- data/lib/itsi/server/scheduler_interface.rb +2 -0
- data/lib/itsi/server/version.rb +1 -1
- data/lib/itsi/server.rb +1 -0
- data/lib/ruby_lsp/itsi/addon.rb +12 -13
- metadata +10 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8c75e7602b936f8ca0140844efef4617149bcd9228826e93cecec3673cba14e
|
4
|
+
data.tar.gz: ec9f4ba2c83ab3a0e6683ca7cce2e029f0c62224db9ba3a058caffc30be01504
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d2f60a69e5cf77986802f15c6168b27a74525fbfa2a8470e9fc28ab3e4f9ff7481ec372099298edb474ab9e7e5da555e6b295422ba3b2e2529cb83ff6a38ff4
|
7
|
+
data.tar.gz: 8c833ed1c2da13fd48b5895d334bd548bd651218ec9be952190f45b2b455745240276e090e5a5a621155e73cb8e39a9859437412af04741d7d8cb357e2a0da28
|
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.
|
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.
|
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.
|
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.
|
208
|
+
version = "0.4.23"
|
209
209
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
210
|
-
checksum = "
|
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.
|
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.
|
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 = "
|
472
|
+
version = "8.0.0"
|
473
473
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
474
|
-
checksum = "
|
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 = "
|
483
|
+
version = "5.0.0"
|
484
484
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
485
|
-
checksum = "
|
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.
|
521
|
+
version = "1.2.20"
|
522
522
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
523
|
-
checksum = "
|
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.
|
553
|
+
version = "0.4.41"
|
554
554
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
555
|
-
checksum = "
|
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.
|
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.
|
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.
|
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.
|
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.
|
1108
|
+
version = "0.2.16"
|
1109
1109
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1110
|
-
checksum = "
|
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.
|
1198
|
+
version = "0.15.3"
|
1199
1199
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1200
|
-
checksum = "
|
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.
|
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.
|
1647
|
+
version = "0.2.17"
|
1648
1648
|
dependencies = [
|
1649
1649
|
"argon2",
|
1650
1650
|
"async-channel",
|
@@ -1660,6 +1660,7 @@ dependencies = [
|
|
1660
1660
|
"either",
|
1661
1661
|
"fs2",
|
1662
1662
|
"futures",
|
1663
|
+
"futures-util",
|
1663
1664
|
"globset",
|
1664
1665
|
"http 1.3.1",
|
1665
1666
|
"http-body-util",
|
@@ -1695,6 +1696,7 @@ dependencies = [
|
|
1695
1696
|
"serde_magnus",
|
1696
1697
|
"sha-crypt",
|
1697
1698
|
"sha2",
|
1699
|
+
"smallvec",
|
1698
1700
|
"socket2",
|
1699
1701
|
"sysinfo",
|
1700
1702
|
"tempfile",
|
@@ -1923,7 +1925,7 @@ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
|
|
1923
1925
|
dependencies = [
|
1924
1926
|
"proc-macro2",
|
1925
1927
|
"quote",
|
1926
|
-
"syn 2.0.
|
1928
|
+
"syn 2.0.101",
|
1927
1929
|
]
|
1928
1930
|
|
1929
1931
|
[[package]]
|
@@ -2271,7 +2273,7 @@ dependencies = [
|
|
2271
2273
|
"phf_shared",
|
2272
2274
|
"proc-macro2",
|
2273
2275
|
"quote",
|
2274
|
-
"syn 2.0.
|
2276
|
+
"syn 2.0.101",
|
2275
2277
|
]
|
2276
2278
|
|
2277
2279
|
[[package]]
|
@@ -2300,7 +2302,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
|
|
2300
2302
|
dependencies = [
|
2301
2303
|
"proc-macro2",
|
2302
2304
|
"quote",
|
2303
|
-
"syn 2.0.
|
2305
|
+
"syn 2.0.101",
|
2304
2306
|
]
|
2305
2307
|
|
2306
2308
|
[[package]]
|
@@ -2333,7 +2335,7 @@ version = "0.2.21"
|
|
2333
2335
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2334
2336
|
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
2335
2337
|
dependencies = [
|
2336
|
-
"zerocopy 0.8.
|
2338
|
+
"zerocopy 0.8.25",
|
2337
2339
|
]
|
2338
2340
|
|
2339
2341
|
[[package]]
|
@@ -2343,7 +2345,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2343
2345
|
checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6"
|
2344
2346
|
dependencies = [
|
2345
2347
|
"proc-macro2",
|
2346
|
-
"syn 2.0.
|
2348
|
+
"syn 2.0.101",
|
2347
2349
|
]
|
2348
2350
|
|
2349
2351
|
[[package]]
|
@@ -2413,9 +2415,9 @@ dependencies = [
|
|
2413
2415
|
|
2414
2416
|
[[package]]
|
2415
2417
|
name = "quinn-proto"
|
2416
|
-
version = "0.11.
|
2418
|
+
version = "0.11.11"
|
2417
2419
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2418
|
-
checksum = "
|
2420
|
+
checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b"
|
2419
2421
|
dependencies = [
|
2420
2422
|
"bytes",
|
2421
2423
|
"getrandom 0.3.2",
|
@@ -2433,9 +2435,9 @@ dependencies = [
|
|
2433
2435
|
|
2434
2436
|
[[package]]
|
2435
2437
|
name = "quinn-udp"
|
2436
|
-
version = "0.5.
|
2438
|
+
version = "0.5.12"
|
2437
2439
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2438
|
-
checksum = "
|
2440
|
+
checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842"
|
2439
2441
|
dependencies = [
|
2440
2442
|
"cfg_aliases",
|
2441
2443
|
"libc",
|
@@ -2518,7 +2520,7 @@ version = "0.6.4"
|
|
2518
2520
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2519
2521
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
2520
2522
|
dependencies = [
|
2521
|
-
"getrandom 0.2.
|
2523
|
+
"getrandom 0.2.16",
|
2522
2524
|
]
|
2523
2525
|
|
2524
2526
|
[[package]]
|
@@ -2571,7 +2573,7 @@ dependencies = [
|
|
2571
2573
|
"quote",
|
2572
2574
|
"regex",
|
2573
2575
|
"shell-words",
|
2574
|
-
"syn 2.0.
|
2576
|
+
"syn 2.0.101",
|
2575
2577
|
]
|
2576
2578
|
|
2577
2579
|
[[package]]
|
@@ -2637,7 +2639,7 @@ version = "0.5.0"
|
|
2637
2639
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2638
2640
|
checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
|
2639
2641
|
dependencies = [
|
2640
|
-
"getrandom 0.2.
|
2642
|
+
"getrandom 0.2.16",
|
2641
2643
|
"libredox",
|
2642
2644
|
"thiserror 2.0.12",
|
2643
2645
|
]
|
@@ -2739,7 +2741,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
|
|
2739
2741
|
dependencies = [
|
2740
2742
|
"cc",
|
2741
2743
|
"cfg-if",
|
2742
|
-
"getrandom 0.2.
|
2744
|
+
"getrandom 0.2.16",
|
2743
2745
|
"libc",
|
2744
2746
|
"untrusted",
|
2745
2747
|
"windows-sys 0.52.0",
|
@@ -2787,9 +2789,9 @@ dependencies = [
|
|
2787
2789
|
|
2788
2790
|
[[package]]
|
2789
2791
|
name = "rustix"
|
2790
|
-
version = "1.0.
|
2792
|
+
version = "1.0.7"
|
2791
2793
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2792
|
-
checksum = "
|
2794
|
+
checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
|
2793
2795
|
dependencies = [
|
2794
2796
|
"bitflags 2.9.0",
|
2795
2797
|
"errno",
|
@@ -2953,7 +2955,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
|
|
2953
2955
|
dependencies = [
|
2954
2956
|
"proc-macro2",
|
2955
2957
|
"quote",
|
2956
|
-
"syn 2.0.
|
2958
|
+
"syn 2.0.101",
|
2957
2959
|
]
|
2958
2960
|
|
2959
2961
|
[[package]]
|
@@ -3032,9 +3034,9 @@ checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
|
|
3032
3034
|
|
3033
3035
|
[[package]]
|
3034
3036
|
name = "sha2"
|
3035
|
-
version = "0.10.
|
3037
|
+
version = "0.10.9"
|
3036
3038
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3037
|
-
checksum = "
|
3039
|
+
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
|
3038
3040
|
dependencies = [
|
3039
3041
|
"cfg-if",
|
3040
3042
|
"cpufeatures",
|
@@ -3193,9 +3195,9 @@ dependencies = [
|
|
3193
3195
|
|
3194
3196
|
[[package]]
|
3195
3197
|
name = "syn"
|
3196
|
-
version = "2.0.
|
3198
|
+
version = "2.0.101"
|
3197
3199
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3198
|
-
checksum = "
|
3200
|
+
checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
|
3199
3201
|
dependencies = [
|
3200
3202
|
"proc-macro2",
|
3201
3203
|
"quote",
|
@@ -3213,13 +3215,13 @@ dependencies = [
|
|
3213
3215
|
|
3214
3216
|
[[package]]
|
3215
3217
|
name = "synstructure"
|
3216
|
-
version = "0.13.
|
3218
|
+
version = "0.13.2"
|
3217
3219
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3218
|
-
checksum = "
|
3220
|
+
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
|
3219
3221
|
dependencies = [
|
3220
3222
|
"proc-macro2",
|
3221
3223
|
"quote",
|
3222
|
-
"syn 2.0.
|
3224
|
+
"syn 2.0.101",
|
3223
3225
|
]
|
3224
3226
|
|
3225
3227
|
[[package]]
|
@@ -3251,7 +3253,7 @@ dependencies = [
|
|
3251
3253
|
"fastrand",
|
3252
3254
|
"getrandom 0.3.2",
|
3253
3255
|
"once_cell",
|
3254
|
-
"rustix 1.0.
|
3256
|
+
"rustix 1.0.7",
|
3255
3257
|
"windows-sys 0.59.0",
|
3256
3258
|
]
|
3257
3259
|
|
@@ -3290,7 +3292,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
|
3290
3292
|
dependencies = [
|
3291
3293
|
"proc-macro2",
|
3292
3294
|
"quote",
|
3293
|
-
"syn 2.0.
|
3295
|
+
"syn 2.0.101",
|
3294
3296
|
]
|
3295
3297
|
|
3296
3298
|
[[package]]
|
@@ -3301,7 +3303,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
|
|
3301
3303
|
dependencies = [
|
3302
3304
|
"proc-macro2",
|
3303
3305
|
"quote",
|
3304
|
-
"syn 2.0.
|
3306
|
+
"syn 2.0.101",
|
3305
3307
|
]
|
3306
3308
|
|
3307
3309
|
[[package]]
|
@@ -3398,7 +3400,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
|
|
3398
3400
|
dependencies = [
|
3399
3401
|
"proc-macro2",
|
3400
3402
|
"quote",
|
3401
|
-
"syn 2.0.
|
3403
|
+
"syn 2.0.101",
|
3402
3404
|
]
|
3403
3405
|
|
3404
3406
|
[[package]]
|
@@ -3436,9 +3438,9 @@ dependencies = [
|
|
3436
3438
|
|
3437
3439
|
[[package]]
|
3438
3440
|
name = "tokio-util"
|
3439
|
-
version = "0.7.
|
3441
|
+
version = "0.7.15"
|
3440
3442
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3441
|
-
checksum = "
|
3443
|
+
checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
|
3442
3444
|
dependencies = [
|
3443
3445
|
"bytes",
|
3444
3446
|
"futures-core",
|
@@ -3508,7 +3510,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
|
|
3508
3510
|
dependencies = [
|
3509
3511
|
"proc-macro2",
|
3510
3512
|
"quote",
|
3511
|
-
"syn 2.0.
|
3513
|
+
"syn 2.0.101",
|
3512
3514
|
]
|
3513
3515
|
|
3514
3516
|
[[package]]
|
@@ -3768,7 +3770,7 @@ dependencies = [
|
|
3768
3770
|
"log",
|
3769
3771
|
"proc-macro2",
|
3770
3772
|
"quote",
|
3771
|
-
"syn 2.0.
|
3773
|
+
"syn 2.0.101",
|
3772
3774
|
"wasm-bindgen-shared",
|
3773
3775
|
]
|
3774
3776
|
|
@@ -3803,7 +3805,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
|
|
3803
3805
|
dependencies = [
|
3804
3806
|
"proc-macro2",
|
3805
3807
|
"quote",
|
3806
|
-
"syn 2.0.
|
3808
|
+
"syn 2.0.101",
|
3807
3809
|
"wasm-bindgen-backend",
|
3808
3810
|
"wasm-bindgen-shared",
|
3809
3811
|
]
|
@@ -3852,9 +3854,9 @@ dependencies = [
|
|
3852
3854
|
|
3853
3855
|
[[package]]
|
3854
3856
|
name = "webpki-roots"
|
3855
|
-
version = "0.26.
|
3857
|
+
version = "0.26.10"
|
3856
3858
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3857
|
-
checksum = "
|
3859
|
+
checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93"
|
3858
3860
|
dependencies = [
|
3859
3861
|
"rustls-pki-types",
|
3860
3862
|
]
|
@@ -3945,7 +3947,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
|
|
3945
3947
|
dependencies = [
|
3946
3948
|
"proc-macro2",
|
3947
3949
|
"quote",
|
3948
|
-
"syn 2.0.
|
3950
|
+
"syn 2.0.101",
|
3949
3951
|
]
|
3950
3952
|
|
3951
3953
|
[[package]]
|
@@ -3956,7 +3958,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
|
|
3956
3958
|
dependencies = [
|
3957
3959
|
"proc-macro2",
|
3958
3960
|
"quote",
|
3959
|
-
"syn 2.0.
|
3961
|
+
"syn 2.0.101",
|
3960
3962
|
]
|
3961
3963
|
|
3962
3964
|
[[package]]
|
@@ -3967,7 +3969,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
|
|
3967
3969
|
dependencies = [
|
3968
3970
|
"proc-macro2",
|
3969
3971
|
"quote",
|
3970
|
-
"syn 2.0.
|
3972
|
+
"syn 2.0.101",
|
3971
3973
|
]
|
3972
3974
|
|
3973
3975
|
[[package]]
|
@@ -3978,7 +3980,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
|
|
3978
3980
|
dependencies = [
|
3979
3981
|
"proc-macro2",
|
3980
3982
|
"quote",
|
3981
|
-
"syn 2.0.
|
3983
|
+
"syn 2.0.101",
|
3982
3984
|
]
|
3983
3985
|
|
3984
3986
|
[[package]]
|
@@ -4314,7 +4316,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
|
|
4314
4316
|
dependencies = [
|
4315
4317
|
"proc-macro2",
|
4316
4318
|
"quote",
|
4317
|
-
"syn 2.0.
|
4319
|
+
"syn 2.0.101",
|
4318
4320
|
"synstructure",
|
4319
4321
|
]
|
4320
4322
|
|
@@ -4329,11 +4331,11 @@ dependencies = [
|
|
4329
4331
|
|
4330
4332
|
[[package]]
|
4331
4333
|
name = "zerocopy"
|
4332
|
-
version = "0.8.
|
4334
|
+
version = "0.8.25"
|
4333
4335
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4334
|
-
checksum = "
|
4336
|
+
checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
|
4335
4337
|
dependencies = [
|
4336
|
-
"zerocopy-derive 0.8.
|
4338
|
+
"zerocopy-derive 0.8.25",
|
4337
4339
|
]
|
4338
4340
|
|
4339
4341
|
[[package]]
|
@@ -4344,18 +4346,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
|
4344
4346
|
dependencies = [
|
4345
4347
|
"proc-macro2",
|
4346
4348
|
"quote",
|
4347
|
-
"syn 2.0.
|
4349
|
+
"syn 2.0.101",
|
4348
4350
|
]
|
4349
4351
|
|
4350
4352
|
[[package]]
|
4351
4353
|
name = "zerocopy-derive"
|
4352
|
-
version = "0.8.
|
4354
|
+
version = "0.8.25"
|
4353
4355
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4354
|
-
checksum = "
|
4356
|
+
checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
|
4355
4357
|
dependencies = [
|
4356
4358
|
"proc-macro2",
|
4357
4359
|
"quote",
|
4358
|
-
"syn 2.0.
|
4360
|
+
"syn 2.0.101",
|
4359
4361
|
]
|
4360
4362
|
|
4361
4363
|
[[package]]
|
@@ -4375,7 +4377,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
|
|
4375
4377
|
dependencies = [
|
4376
4378
|
"proc-macro2",
|
4377
4379
|
"quote",
|
4378
|
-
"syn 2.0.
|
4380
|
+
"syn 2.0.101",
|
4379
4381
|
"synstructure",
|
4380
4382
|
]
|
4381
4383
|
|
@@ -4404,7 +4406,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
|
|
4404
4406
|
dependencies = [
|
4405
4407
|
"proc-macro2",
|
4406
4408
|
"quote",
|
4407
|
-
"syn 2.0.
|
4409
|
+
"syn 2.0.101",
|
4408
4410
|
]
|
4409
4411
|
|
4410
4412
|
[[package]]
|
data/exe/itsi
CHANGED
@@ -164,7 +164,12 @@ if ENV['COMP_LINE'] || ARGV.include?('--completion')
|
|
164
164
|
exit
|
165
165
|
end
|
166
166
|
|
167
|
-
|
167
|
+
begin
|
168
|
+
parser.parse!
|
169
|
+
rescue StandardError => e
|
170
|
+
puts e.message
|
171
|
+
exit
|
172
|
+
end
|
168
173
|
|
169
174
|
case (command = ARGV.shift)
|
170
175
|
when *COMMANDS.keys
|
data/ext/itsi_acme/Cargo.toml
CHANGED
data/ext/itsi_server/Cargo.lock
CHANGED
@@ -111,7 +111,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
|
111
111
|
|
112
112
|
[[package]]
|
113
113
|
name = "atty"
|
114
|
-
version = "0.2.
|
114
|
+
version = "0.2.16"
|
115
115
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
116
116
|
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
|
117
117
|
dependencies = [
|
data/ext/itsi_server/Cargo.toml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
[package]
|
2
2
|
name = "itsi-server"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.17"
|
4
4
|
edition = "2021"
|
5
5
|
authors = ["Wouter Coppieters <wc@pico.net.nz>"]
|
6
6
|
license = "MIT"
|
@@ -90,3 +90,5 @@ argon2 = "0.5.3"
|
|
90
90
|
core_affinity = "0.8.3"
|
91
91
|
memchr = "2.7.4"
|
92
92
|
quick_cache = "0.6.13"
|
93
|
+
smallvec = "1.15.0"
|
94
|
+
futures-util = "0.3.31"
|
data/ext/itsi_server/extconf.rb
CHANGED
data/ext/itsi_server/src/lib.rs
CHANGED
@@ -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;
|
@@ -57,6 +58,7 @@ fn init(ruby: &Ruby) -> Result<()> {
|
|
57
58
|
request.define_method("rack_protocol", method!(ItsiHttpRequest::rack_protocol, 0))?;
|
58
59
|
request.define_method("host", method!(ItsiHttpRequest::host, 0))?;
|
59
60
|
request.define_method("headers", method!(ItsiHttpRequest::headers, 0))?;
|
61
|
+
request.define_method("each_header", method!(ItsiHttpRequest::each_header, 0))?;
|
60
62
|
request.define_method("uri", method!(ItsiHttpRequest::uri, 0))?;
|
61
63
|
request.define_method("header", method!(ItsiHttpRequest::header, 1))?;
|
62
64
|
request.define_method("[]", method!(ItsiHttpRequest::header, 1))?;
|
@@ -70,6 +72,7 @@ fn init(ruby: &Ruby) -> Result<()> {
|
|
70
72
|
request.define_method("url_encoded?", method!(ItsiHttpRequest::is_url_encoded, 0))?;
|
71
73
|
request.define_method("multipart?", method!(ItsiHttpRequest::is_multipart, 0))?;
|
72
74
|
request.define_method("url_params", method!(ItsiHttpRequest::url_params, 0))?;
|
75
|
+
request.define_method("server_error", method!(ItsiHttpRequest::error, 1))?;
|
73
76
|
|
74
77
|
let body_proxy = ruby.get_inner(&ITSI_BODY_PROXY);
|
75
78
|
body_proxy.define_method("gets", method!(ItsiBodyProxy::gets, 0))?;
|
@@ -79,6 +82,10 @@ fn init(ruby: &Ruby) -> Result<()> {
|
|
79
82
|
|
80
83
|
let response = ruby.get_inner(&ITSI_RESPONSE);
|
81
84
|
response.define_method("[]=", method!(ItsiHttpResponse::add_header, 2))?;
|
85
|
+
response.define_method(
|
86
|
+
"reserve_headers",
|
87
|
+
method!(ItsiHttpResponse::reserve_headers, 1),
|
88
|
+
)?;
|
82
89
|
response.define_method("add_header", method!(ItsiHttpResponse::add_header, 2))?;
|
83
90
|
response.define_method("add_headers", method!(ItsiHttpResponse::add_headers, 1))?;
|
84
91
|
response.define_method("status=", method!(ItsiHttpResponse::set_status, 1))?;
|
@@ -86,7 +93,6 @@ fn init(ruby: &Ruby) -> Result<()> {
|
|
86
93
|
response.define_method("<<", method!(ItsiHttpResponse::send_frame, 1))?;
|
87
94
|
response.define_method("write", method!(ItsiHttpResponse::send_frame, 1))?;
|
88
95
|
response.define_method("read", method!(ItsiHttpResponse::recv_frame, 0))?;
|
89
|
-
response.define_method("flush", method!(ItsiHttpResponse::flush, 0))?;
|
90
96
|
response.define_method("closed?", method!(ItsiHttpResponse::is_closed, 0))?;
|
91
97
|
response.define_method(
|
92
98
|
"send_and_close",
|
@@ -25,6 +25,7 @@ pub struct ItsiBodyProxy {
|
|
25
25
|
pub enum ItsiBody {
|
26
26
|
Buffered(BigBytes),
|
27
27
|
Stream(ItsiBodyProxy),
|
28
|
+
Empty,
|
28
29
|
}
|
29
30
|
|
30
31
|
impl ItsiBody {
|
@@ -32,6 +33,7 @@ impl ItsiBody {
|
|
32
33
|
match self {
|
33
34
|
ItsiBody::Buffered(bytes) => bytes.as_value(),
|
34
35
|
ItsiBody::Stream(proxy) => Some(proxy.clone().into_value()),
|
36
|
+
ItsiBody::Empty => None,
|
35
37
|
}
|
36
38
|
}
|
37
39
|
}
|