itsi 0.2.13 → 0.2.15
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/CHANGELOG.md +9 -0
- data/Cargo.lock +102 -152
- data/crates/itsi_scheduler/Cargo.toml +1 -1
- data/crates/itsi_server/Cargo.lock +1 -1
- data/crates/itsi_server/Cargo.toml +4 -2
- data/crates/itsi_server/src/ruby_types/itsi_http_response.rs +46 -5
- data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +8 -6
- data/crates/itsi_server/src/services/mime_types.rs +2891 -1413
- data/crates/itsi_server/src/services/static_file_server.rs +140 -108
- data/crates/itsi_tracing/Cargo.toml +1 -1
- data/docs/content/itsi_scheduler/_index.md +15 -8
- data/examples/rails_with_static_assets/Gemfile.lock +2 -1
- data/gems/scheduler/Cargo.lock +11 -68
- data/gems/scheduler/itsi-scheduler.gemspec +1 -1
- data/gems/scheduler/lib/itsi/schedule_refinement.rb +2 -2
- data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
- data/gems/server/Cargo.lock +101 -151
- data/gems/server/itsi-server.gemspec +3 -3
- data/gems/server/lib/itsi/server/config/middleware/static_assets.rb +3 -2
- data/gems/server/lib/itsi/server/config/middleware/static_response.rb +7 -6
- data/gems/server/lib/itsi/server/version.rb +1 -1
- data/gems/server/test/options/ruby_thread_request_backlog_size.rb +1 -1
- data/gems/server/test/rack/test_rack_server.rb +32 -1
- data/lib/itsi/version.rb +1 -1
- metadata +6 -6
data/gems/scheduler/Cargo.lock
CHANGED
@@ -213,7 +213,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|
213
213
|
|
214
214
|
[[package]]
|
215
215
|
name = "itsi-scheduler"
|
216
|
-
version = "0.2.
|
216
|
+
version = "0.2.15"
|
217
217
|
dependencies = [
|
218
218
|
"bytes",
|
219
219
|
"derive_more",
|
@@ -297,7 +297,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
297
297
|
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
|
298
298
|
dependencies = [
|
299
299
|
"cfg-if",
|
300
|
-
"windows-targets
|
300
|
+
"windows-targets",
|
301
301
|
]
|
302
302
|
|
303
303
|
[[package]]
|
@@ -443,7 +443,7 @@ dependencies = [
|
|
443
443
|
"libc",
|
444
444
|
"redox_syscall",
|
445
445
|
"smallvec",
|
446
|
-
"windows-targets
|
446
|
+
"windows-targets",
|
447
447
|
]
|
448
448
|
|
449
449
|
[[package]]
|
@@ -932,22 +932,7 @@ version = "0.52.0"
|
|
932
932
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
933
933
|
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
934
934
|
dependencies = [
|
935
|
-
"windows-targets
|
936
|
-
]
|
937
|
-
|
938
|
-
[[package]]
|
939
|
-
name = "windows-targets"
|
940
|
-
version = "0.48.5"
|
941
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
942
|
-
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
943
|
-
dependencies = [
|
944
|
-
"windows_aarch64_gnullvm 0.48.5",
|
945
|
-
"windows_aarch64_msvc 0.48.5",
|
946
|
-
"windows_i686_gnu 0.48.5",
|
947
|
-
"windows_i686_msvc 0.48.5",
|
948
|
-
"windows_x86_64_gnu 0.48.5",
|
949
|
-
"windows_x86_64_gnullvm 0.48.5",
|
950
|
-
"windows_x86_64_msvc 0.48.5",
|
935
|
+
"windows-targets",
|
951
936
|
]
|
952
937
|
|
953
938
|
[[package]]
|
@@ -956,46 +941,28 @@ version = "0.52.6"
|
|
956
941
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
957
942
|
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
958
943
|
dependencies = [
|
959
|
-
"windows_aarch64_gnullvm
|
960
|
-
"windows_aarch64_msvc
|
961
|
-
"windows_i686_gnu
|
944
|
+
"windows_aarch64_gnullvm",
|
945
|
+
"windows_aarch64_msvc",
|
946
|
+
"windows_i686_gnu",
|
962
947
|
"windows_i686_gnullvm",
|
963
|
-
"windows_i686_msvc
|
964
|
-
"windows_x86_64_gnu
|
965
|
-
"windows_x86_64_gnullvm
|
966
|
-
"windows_x86_64_msvc
|
948
|
+
"windows_i686_msvc",
|
949
|
+
"windows_x86_64_gnu",
|
950
|
+
"windows_x86_64_gnullvm",
|
951
|
+
"windows_x86_64_msvc",
|
967
952
|
]
|
968
953
|
|
969
|
-
[[package]]
|
970
|
-
name = "windows_aarch64_gnullvm"
|
971
|
-
version = "0.48.5"
|
972
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
973
|
-
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
974
|
-
|
975
954
|
[[package]]
|
976
955
|
name = "windows_aarch64_gnullvm"
|
977
956
|
version = "0.52.6"
|
978
957
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
979
958
|
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
980
959
|
|
981
|
-
[[package]]
|
982
|
-
name = "windows_aarch64_msvc"
|
983
|
-
version = "0.48.5"
|
984
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
985
|
-
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
986
|
-
|
987
960
|
[[package]]
|
988
961
|
name = "windows_aarch64_msvc"
|
989
962
|
version = "0.52.6"
|
990
963
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
991
964
|
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
992
965
|
|
993
|
-
[[package]]
|
994
|
-
name = "windows_i686_gnu"
|
995
|
-
version = "0.48.5"
|
996
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
997
|
-
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
998
|
-
|
999
966
|
[[package]]
|
1000
967
|
name = "windows_i686_gnu"
|
1001
968
|
version = "0.52.6"
|
@@ -1008,48 +975,24 @@ version = "0.52.6"
|
|
1008
975
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1009
976
|
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
1010
977
|
|
1011
|
-
[[package]]
|
1012
|
-
name = "windows_i686_msvc"
|
1013
|
-
version = "0.48.5"
|
1014
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1015
|
-
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
1016
|
-
|
1017
978
|
[[package]]
|
1018
979
|
name = "windows_i686_msvc"
|
1019
980
|
version = "0.52.6"
|
1020
981
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1021
982
|
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
1022
983
|
|
1023
|
-
[[package]]
|
1024
|
-
name = "windows_x86_64_gnu"
|
1025
|
-
version = "0.48.5"
|
1026
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1027
|
-
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
1028
|
-
|
1029
984
|
[[package]]
|
1030
985
|
name = "windows_x86_64_gnu"
|
1031
986
|
version = "0.52.6"
|
1032
987
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1033
988
|
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
1034
989
|
|
1035
|
-
[[package]]
|
1036
|
-
name = "windows_x86_64_gnullvm"
|
1037
|
-
version = "0.48.5"
|
1038
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1039
|
-
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
1040
|
-
|
1041
990
|
[[package]]
|
1042
991
|
name = "windows_x86_64_gnullvm"
|
1043
992
|
version = "0.52.6"
|
1044
993
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1045
994
|
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
1046
995
|
|
1047
|
-
[[package]]
|
1048
|
-
name = "windows_x86_64_msvc"
|
1049
|
-
version = "0.48.5"
|
1050
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1051
|
-
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
1052
|
-
|
1053
996
|
[[package]]
|
1054
997
|
name = "windows_x86_64_msvc"
|
1055
998
|
version = "0.52.6"
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = "Itsi Scheduler - A light-weight Fiber Scheduler implementation for Ruby."
|
12
12
|
spec.description = "Itsi Scheduler - A light-weight Fiber Scheduler implementation for Ruby"
|
13
13
|
spec.homepage = "https://itsi.fyi"
|
14
|
-
spec.license = "
|
14
|
+
spec.license = "LGPL-3.0"
|
15
15
|
spec.required_ruby_version = ">= 3.0"
|
16
16
|
spec.required_rubygems_version = ">= 3.1.11"
|
17
17
|
|
@@ -65,7 +65,7 @@ module Itsi
|
|
65
65
|
def schedule_map(&block)
|
66
66
|
return Enumerator.new do |y|
|
67
67
|
schedule do
|
68
|
-
|
68
|
+
each_with_index.each_with_object([]) do |(item, index), agg|
|
69
69
|
schedule do
|
70
70
|
agg[index] = (y << item)
|
71
71
|
end
|
@@ -73,7 +73,7 @@ module Itsi
|
|
73
73
|
end
|
74
74
|
end.map unless block_given?
|
75
75
|
schedule do
|
76
|
-
|
76
|
+
each_with_index.each_with_object([]) do |(item, index), agg|
|
77
77
|
schedule do
|
78
78
|
agg[index] = block[item]
|
79
79
|
end
|
data/gems/server/Cargo.lock
CHANGED
@@ -17,6 +17,19 @@ version = "2.0.0"
|
|
17
17
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
18
18
|
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
19
19
|
|
20
|
+
[[package]]
|
21
|
+
name = "ahash"
|
22
|
+
version = "0.8.11"
|
23
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
24
|
+
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
25
|
+
dependencies = [
|
26
|
+
"cfg-if",
|
27
|
+
"getrandom 0.2.15",
|
28
|
+
"once_cell",
|
29
|
+
"version_check",
|
30
|
+
"zerocopy 0.7.35",
|
31
|
+
]
|
32
|
+
|
20
33
|
[[package]]
|
21
34
|
name = "aho-corasick"
|
22
35
|
version = "1.1.3"
|
@@ -1080,19 +1093,6 @@ dependencies = [
|
|
1080
1093
|
"slab",
|
1081
1094
|
]
|
1082
1095
|
|
1083
|
-
[[package]]
|
1084
|
-
name = "generator"
|
1085
|
-
version = "0.8.4"
|
1086
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1087
|
-
checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd"
|
1088
|
-
dependencies = [
|
1089
|
-
"cfg-if",
|
1090
|
-
"libc",
|
1091
|
-
"log",
|
1092
|
-
"rustversion",
|
1093
|
-
"windows 0.58.0",
|
1094
|
-
]
|
1095
|
-
|
1096
1096
|
[[package]]
|
1097
1097
|
name = "generic-array"
|
1098
1098
|
version = "0.14.7"
|
@@ -1644,7 +1644,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|
1644
1644
|
|
1645
1645
|
[[package]]
|
1646
1646
|
name = "itsi-server"
|
1647
|
-
version = "0.2.
|
1647
|
+
version = "0.2.15"
|
1648
1648
|
dependencies = [
|
1649
1649
|
"argon2",
|
1650
1650
|
"async-channel",
|
@@ -1674,13 +1674,15 @@ dependencies = [
|
|
1674
1674
|
"jsonwebtoken",
|
1675
1675
|
"magnus",
|
1676
1676
|
"md5",
|
1677
|
-
"
|
1677
|
+
"memchr",
|
1678
1678
|
"nix",
|
1679
1679
|
"notify",
|
1680
1680
|
"num_cpus",
|
1681
1681
|
"parking_lot",
|
1682
1682
|
"percent-encoding",
|
1683
|
+
"phf",
|
1683
1684
|
"pin-project",
|
1685
|
+
"quick_cache",
|
1684
1686
|
"rand 0.9.1",
|
1685
1687
|
"rcgen",
|
1686
1688
|
"redis",
|
@@ -1852,7 +1854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1852
1854
|
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
|
1853
1855
|
dependencies = [
|
1854
1856
|
"cfg-if",
|
1855
|
-
"windows-targets 0.
|
1857
|
+
"windows-targets 0.52.6",
|
1856
1858
|
]
|
1857
1859
|
|
1858
1860
|
[[package]]
|
@@ -1900,19 +1902,6 @@ version = "0.4.27"
|
|
1900
1902
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1901
1903
|
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
1902
1904
|
|
1903
|
-
[[package]]
|
1904
|
-
name = "loom"
|
1905
|
-
version = "0.7.2"
|
1906
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1907
|
-
checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
|
1908
|
-
dependencies = [
|
1909
|
-
"cfg-if",
|
1910
|
-
"generator",
|
1911
|
-
"scoped-tls",
|
1912
|
-
"tracing",
|
1913
|
-
"tracing-subscriber",
|
1914
|
-
]
|
1915
|
-
|
1916
1905
|
[[package]]
|
1917
1906
|
name = "magnus"
|
1918
1907
|
version = "0.7.1"
|
@@ -2016,25 +2005,6 @@ dependencies = [
|
|
2016
2005
|
"windows-sys 0.52.0",
|
2017
2006
|
]
|
2018
2007
|
|
2019
|
-
[[package]]
|
2020
|
-
name = "moka"
|
2021
|
-
version = "0.12.10"
|
2022
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023
|
-
checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926"
|
2024
|
-
dependencies = [
|
2025
|
-
"crossbeam-channel",
|
2026
|
-
"crossbeam-epoch",
|
2027
|
-
"crossbeam-utils",
|
2028
|
-
"loom",
|
2029
|
-
"parking_lot",
|
2030
|
-
"portable-atomic",
|
2031
|
-
"rustc_version",
|
2032
|
-
"smallvec",
|
2033
|
-
"tagptr",
|
2034
|
-
"thiserror 1.0.69",
|
2035
|
-
"uuid",
|
2036
|
-
]
|
2037
|
-
|
2038
2008
|
[[package]]
|
2039
2009
|
name = "multer"
|
2040
2010
|
version = "2.1.0"
|
@@ -2271,6 +2241,48 @@ version = "2.3.1"
|
|
2271
2241
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2272
2242
|
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
2273
2243
|
|
2244
|
+
[[package]]
|
2245
|
+
name = "phf"
|
2246
|
+
version = "0.11.3"
|
2247
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2248
|
+
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
|
2249
|
+
dependencies = [
|
2250
|
+
"phf_macros",
|
2251
|
+
"phf_shared",
|
2252
|
+
]
|
2253
|
+
|
2254
|
+
[[package]]
|
2255
|
+
name = "phf_generator"
|
2256
|
+
version = "0.11.3"
|
2257
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2258
|
+
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
|
2259
|
+
dependencies = [
|
2260
|
+
"phf_shared",
|
2261
|
+
"rand 0.8.5",
|
2262
|
+
]
|
2263
|
+
|
2264
|
+
[[package]]
|
2265
|
+
name = "phf_macros"
|
2266
|
+
version = "0.11.3"
|
2267
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2268
|
+
checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
|
2269
|
+
dependencies = [
|
2270
|
+
"phf_generator",
|
2271
|
+
"phf_shared",
|
2272
|
+
"proc-macro2",
|
2273
|
+
"quote",
|
2274
|
+
"syn 2.0.100",
|
2275
|
+
]
|
2276
|
+
|
2277
|
+
[[package]]
|
2278
|
+
name = "phf_shared"
|
2279
|
+
version = "0.11.3"
|
2280
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2281
|
+
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
|
2282
|
+
dependencies = [
|
2283
|
+
"siphasher",
|
2284
|
+
]
|
2285
|
+
|
2274
2286
|
[[package]]
|
2275
2287
|
name = "pin-project"
|
2276
2288
|
version = "1.1.10"
|
@@ -2309,12 +2321,6 @@ version = "0.3.32"
|
|
2309
2321
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2310
2322
|
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
2311
2323
|
|
2312
|
-
[[package]]
|
2313
|
-
name = "portable-atomic"
|
2314
|
-
version = "1.11.0"
|
2315
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2316
|
-
checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e"
|
2317
|
-
|
2318
2324
|
[[package]]
|
2319
2325
|
name = "powerfmt"
|
2320
2326
|
version = "0.2.0"
|
@@ -2327,7 +2333,7 @@ version = "0.2.21"
|
|
2327
2333
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2328
2334
|
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
2329
2335
|
dependencies = [
|
2330
|
-
"zerocopy",
|
2336
|
+
"zerocopy 0.8.24",
|
2331
2337
|
]
|
2332
2338
|
|
2333
2339
|
[[package]]
|
@@ -2373,6 +2379,18 @@ dependencies = [
|
|
2373
2379
|
"unicode-ident",
|
2374
2380
|
]
|
2375
2381
|
|
2382
|
+
[[package]]
|
2383
|
+
name = "quick_cache"
|
2384
|
+
version = "0.6.13"
|
2385
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2386
|
+
checksum = "287e56aac5a2b4fb25a6fb050961d157635924c8696305a5c937a76f29841a0f"
|
2387
|
+
dependencies = [
|
2388
|
+
"ahash",
|
2389
|
+
"equivalent",
|
2390
|
+
"hashbrown",
|
2391
|
+
"parking_lot",
|
2392
|
+
]
|
2393
|
+
|
2376
2394
|
[[package]]
|
2377
2395
|
name = "quinn"
|
2378
2396
|
version = "0.11.7"
|
@@ -2745,15 +2763,6 @@ version = "2.1.1"
|
|
2745
2763
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2746
2764
|
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
2747
2765
|
|
2748
|
-
[[package]]
|
2749
|
-
name = "rustc_version"
|
2750
|
-
version = "0.4.1"
|
2751
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2752
|
-
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
2753
|
-
dependencies = [
|
2754
|
-
"semver",
|
2755
|
-
]
|
2756
|
-
|
2757
2766
|
[[package]]
|
2758
2767
|
name = "rusticata-macros"
|
2759
2768
|
version = "4.1.0"
|
@@ -2921,12 +2930,6 @@ dependencies = [
|
|
2921
2930
|
"libc",
|
2922
2931
|
]
|
2923
2932
|
|
2924
|
-
[[package]]
|
2925
|
-
name = "semver"
|
2926
|
-
version = "1.0.26"
|
2927
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2928
|
-
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
|
2929
|
-
|
2930
2933
|
[[package]]
|
2931
2934
|
name = "seq-macro"
|
2932
2935
|
version = "0.3.6"
|
@@ -3092,6 +3095,12 @@ dependencies = [
|
|
3092
3095
|
"windows-sys 0.48.0",
|
3093
3096
|
]
|
3094
3097
|
|
3098
|
+
[[package]]
|
3099
|
+
name = "siphasher"
|
3100
|
+
version = "1.0.1"
|
3101
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3102
|
+
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
|
3103
|
+
|
3095
3104
|
[[package]]
|
3096
3105
|
name = "slab"
|
3097
3106
|
version = "0.4.9"
|
@@ -3224,15 +3233,9 @@ dependencies = [
|
|
3224
3233
|
"memchr",
|
3225
3234
|
"ntapi",
|
3226
3235
|
"rayon",
|
3227
|
-
"windows
|
3236
|
+
"windows",
|
3228
3237
|
]
|
3229
3238
|
|
3230
|
-
[[package]]
|
3231
|
-
name = "tagptr"
|
3232
|
-
version = "0.2.0"
|
3233
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3234
|
-
checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
|
3235
|
-
|
3236
3239
|
[[package]]
|
3237
3240
|
name = "tap"
|
3238
3241
|
version = "1.0.1"
|
@@ -3662,15 +3665,6 @@ version = "0.2.2"
|
|
3662
3665
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3663
3666
|
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
3664
3667
|
|
3665
|
-
[[package]]
|
3666
|
-
name = "uuid"
|
3667
|
-
version = "1.16.0"
|
3668
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3669
|
-
checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
|
3670
|
-
dependencies = [
|
3671
|
-
"getrandom 0.3.2",
|
3672
|
-
]
|
3673
|
-
|
3674
3668
|
[[package]]
|
3675
3669
|
name = "valuable"
|
3676
3670
|
version = "0.1.1"
|
@@ -3918,16 +3912,6 @@ dependencies = [
|
|
3918
3912
|
"windows-targets 0.52.6",
|
3919
3913
|
]
|
3920
3914
|
|
3921
|
-
[[package]]
|
3922
|
-
name = "windows"
|
3923
|
-
version = "0.58.0"
|
3924
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3925
|
-
checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
|
3926
|
-
dependencies = [
|
3927
|
-
"windows-core 0.58.0",
|
3928
|
-
"windows-targets 0.52.6",
|
3929
|
-
]
|
3930
|
-
|
3931
3915
|
[[package]]
|
3932
3916
|
name = "windows-core"
|
3933
3917
|
version = "0.57.0"
|
@@ -3940,19 +3924,6 @@ dependencies = [
|
|
3940
3924
|
"windows-targets 0.52.6",
|
3941
3925
|
]
|
3942
3926
|
|
3943
|
-
[[package]]
|
3944
|
-
name = "windows-core"
|
3945
|
-
version = "0.58.0"
|
3946
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3947
|
-
checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
|
3948
|
-
dependencies = [
|
3949
|
-
"windows-implement 0.58.0",
|
3950
|
-
"windows-interface 0.58.0",
|
3951
|
-
"windows-result 0.2.0",
|
3952
|
-
"windows-strings 0.1.0",
|
3953
|
-
"windows-targets 0.52.6",
|
3954
|
-
]
|
3955
|
-
|
3956
3927
|
[[package]]
|
3957
3928
|
name = "windows-core"
|
3958
3929
|
version = "0.61.0"
|
@@ -3977,17 +3948,6 @@ dependencies = [
|
|
3977
3948
|
"syn 2.0.100",
|
3978
3949
|
]
|
3979
3950
|
|
3980
|
-
[[package]]
|
3981
|
-
name = "windows-implement"
|
3982
|
-
version = "0.58.0"
|
3983
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3984
|
-
checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
|
3985
|
-
dependencies = [
|
3986
|
-
"proc-macro2",
|
3987
|
-
"quote",
|
3988
|
-
"syn 2.0.100",
|
3989
|
-
]
|
3990
|
-
|
3991
3951
|
[[package]]
|
3992
3952
|
name = "windows-implement"
|
3993
3953
|
version = "0.60.0"
|
@@ -4010,17 +3970,6 @@ dependencies = [
|
|
4010
3970
|
"syn 2.0.100",
|
4011
3971
|
]
|
4012
3972
|
|
4013
|
-
[[package]]
|
4014
|
-
name = "windows-interface"
|
4015
|
-
version = "0.58.0"
|
4016
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4017
|
-
checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
|
4018
|
-
dependencies = [
|
4019
|
-
"proc-macro2",
|
4020
|
-
"quote",
|
4021
|
-
"syn 2.0.100",
|
4022
|
-
]
|
4023
|
-
|
4024
3973
|
[[package]]
|
4025
3974
|
name = "windows-interface"
|
4026
3975
|
version = "0.59.1"
|
@@ -4058,15 +4007,6 @@ dependencies = [
|
|
4058
4007
|
"windows-targets 0.52.6",
|
4059
4008
|
]
|
4060
4009
|
|
4061
|
-
[[package]]
|
4062
|
-
name = "windows-result"
|
4063
|
-
version = "0.2.0"
|
4064
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4065
|
-
checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
|
4066
|
-
dependencies = [
|
4067
|
-
"windows-targets 0.52.6",
|
4068
|
-
]
|
4069
|
-
|
4070
4010
|
[[package]]
|
4071
4011
|
name = "windows-result"
|
4072
4012
|
version = "0.3.2"
|
@@ -4076,16 +4016,6 @@ dependencies = [
|
|
4076
4016
|
"windows-link",
|
4077
4017
|
]
|
4078
4018
|
|
4079
|
-
[[package]]
|
4080
|
-
name = "windows-strings"
|
4081
|
-
version = "0.1.0"
|
4082
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4083
|
-
checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
|
4084
|
-
dependencies = [
|
4085
|
-
"windows-result 0.2.0",
|
4086
|
-
"windows-targets 0.52.6",
|
4087
|
-
]
|
4088
|
-
|
4089
4019
|
[[package]]
|
4090
4020
|
name = "windows-strings"
|
4091
4021
|
version = "0.3.1"
|
@@ -4388,13 +4318,33 @@ dependencies = [
|
|
4388
4318
|
"synstructure",
|
4389
4319
|
]
|
4390
4320
|
|
4321
|
+
[[package]]
|
4322
|
+
name = "zerocopy"
|
4323
|
+
version = "0.7.35"
|
4324
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4325
|
+
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
4326
|
+
dependencies = [
|
4327
|
+
"zerocopy-derive 0.7.35",
|
4328
|
+
]
|
4329
|
+
|
4391
4330
|
[[package]]
|
4392
4331
|
name = "zerocopy"
|
4393
4332
|
version = "0.8.24"
|
4394
4333
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4395
4334
|
checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
|
4396
4335
|
dependencies = [
|
4397
|
-
"zerocopy-derive",
|
4336
|
+
"zerocopy-derive 0.8.24",
|
4337
|
+
]
|
4338
|
+
|
4339
|
+
[[package]]
|
4340
|
+
name = "zerocopy-derive"
|
4341
|
+
version = "0.7.35"
|
4342
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4343
|
+
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
4344
|
+
dependencies = [
|
4345
|
+
"proc-macro2",
|
4346
|
+
"quote",
|
4347
|
+
"syn 2.0.100",
|
4398
4348
|
]
|
4399
4349
|
|
4400
4350
|
[[package]]
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = "Itsi Server - A light-weight Rack Server implementation for Ruby."
|
12
12
|
spec.description = "Itsi Server - A light-weight Rack Server implementation for Ruby"
|
13
13
|
spec.homepage = "https://itsi.fyi"
|
14
|
-
spec.license = "
|
14
|
+
spec.license = "LGPL-3.0"
|
15
15
|
spec.required_ruby_version = ">= 2.7.0"
|
16
16
|
spec.required_rubygems_version = ">= 3.1"
|
17
17
|
|
@@ -36,10 +36,10 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.require_paths = ["lib"]
|
37
37
|
spec.extensions = ["ext/itsi_server/extconf.rb"]
|
38
38
|
|
39
|
+
spec.add_dependency "json", "~> 2"
|
40
|
+
spec.add_dependency 'prism', '~> 1.4'
|
39
41
|
spec.add_dependency "rack", ">= 1.6"
|
40
|
-
spec.add_dependency "json", '~> 2'
|
41
42
|
spec.add_dependency "rb_sys", "~> 0.9.91"
|
42
|
-
spec.add_dependency 'prism', '~> 1.4'
|
43
43
|
|
44
44
|
spec.add_development_dependency "ruby-lsp"
|
45
45
|
# For more information and examples about making a new gem, check out our
|
@@ -18,7 +18,8 @@ module Itsi
|
|
18
18
|
serve_hidden_files: ${11|true,false|}
|
19
19
|
SNIPPET
|
20
20
|
|
21
|
-
detail "Serves static files from a designated directory with options for auto indexing, in-memory caching,
|
21
|
+
detail "Serves static files from a designated directory with options for auto indexing, in-memory caching, "\
|
22
|
+
"and custom header support. Supports relative path rewriting and file range requests."
|
22
23
|
|
23
24
|
ErrorResponse = TypedStruct.new do
|
24
25
|
{
|
@@ -42,7 +43,7 @@ module Itsi
|
|
42
43
|
{
|
43
44
|
root_dir: (Type(String) & Required()).default("./"),
|
44
45
|
not_found_behavior: Or(
|
45
|
-
Enum([
|
46
|
+
Enum(%w[fallthrough index redirect internal_server_error]),
|
46
47
|
Type(IndexResponse),
|
47
48
|
Type(RedirectResponse),
|
48
49
|
Type(ErrorResponse)
|
@@ -2,20 +2,21 @@ module Itsi
|
|
2
2
|
class Server
|
3
3
|
module Config
|
4
4
|
class StaticResponse < Middleware
|
5
|
+
|
5
6
|
insert_text <<~SNIPPET
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
static_response \\
|
8
|
+
code: ${1|200,404,500|},
|
9
|
+
headers: [${2|%w[content-type text/plain],%w[cache-control max-age=60]|}],
|
10
|
+
body: ${3|"OK", "Not Found"|}
|
10
11
|
SNIPPET
|
11
12
|
|
12
13
|
detail "Immediately return a fixed HTTP response with code, headers, and body."
|
13
14
|
|
14
15
|
schema do
|
15
16
|
{
|
16
|
-
code:
|
17
|
+
code: (Type(Integer) & Required()),
|
17
18
|
headers: Array(Array(Type(String), Type(String))).default([]),
|
18
|
-
body:
|
19
|
+
body: Type(String).default("")
|
19
20
|
}
|
20
21
|
end
|
21
22
|
|