itsi 0.1.14 → 0.1.19

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 (169) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +126 -272
  3. data/Cargo.toml +6 -0
  4. data/crates/itsi_error/Cargo.toml +1 -0
  5. data/crates/itsi_error/src/lib.rs +100 -10
  6. data/crates/itsi_scheduler/src/itsi_scheduler.rs +1 -1
  7. data/crates/itsi_server/Cargo.toml +12 -11
  8. data/crates/itsi_server/src/default_responses/html/401.html +68 -0
  9. data/crates/itsi_server/src/default_responses/html/403.html +68 -0
  10. data/crates/itsi_server/src/default_responses/html/404.html +68 -0
  11. data/crates/itsi_server/src/default_responses/html/413.html +71 -0
  12. data/crates/itsi_server/src/default_responses/html/429.html +68 -0
  13. data/crates/itsi_server/src/default_responses/html/500.html +71 -0
  14. data/crates/itsi_server/src/default_responses/html/502.html +71 -0
  15. data/crates/itsi_server/src/default_responses/html/503.html +68 -0
  16. data/crates/itsi_server/src/default_responses/html/504.html +69 -0
  17. data/crates/itsi_server/src/default_responses/html/index.html +238 -0
  18. data/crates/itsi_server/src/default_responses/json/401.json +6 -0
  19. data/crates/itsi_server/src/default_responses/json/403.json +6 -0
  20. data/crates/itsi_server/src/default_responses/json/404.json +6 -0
  21. data/crates/itsi_server/src/default_responses/json/413.json +6 -0
  22. data/crates/itsi_server/src/default_responses/json/429.json +6 -0
  23. data/crates/itsi_server/src/default_responses/json/500.json +6 -0
  24. data/crates/itsi_server/src/default_responses/json/502.json +6 -0
  25. data/crates/itsi_server/src/default_responses/json/503.json +6 -0
  26. data/crates/itsi_server/src/default_responses/json/504.json +6 -0
  27. data/crates/itsi_server/src/default_responses/mod.rs +11 -0
  28. data/crates/itsi_server/src/lib.rs +58 -26
  29. data/crates/itsi_server/src/prelude.rs +2 -0
  30. data/crates/itsi_server/src/ruby_types/README.md +21 -0
  31. data/crates/itsi_server/src/ruby_types/itsi_body_proxy/mod.rs +8 -6
  32. data/crates/itsi_server/src/ruby_types/itsi_grpc_call.rs +344 -0
  33. data/crates/itsi_server/src/ruby_types/{itsi_grpc_stream → itsi_grpc_response_stream}/mod.rs +121 -73
  34. data/crates/itsi_server/src/ruby_types/itsi_http_request.rs +103 -40
  35. data/crates/itsi_server/src/ruby_types/itsi_http_response.rs +8 -5
  36. data/crates/itsi_server/src/ruby_types/itsi_server/file_watcher.rs +4 -4
  37. data/crates/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +37 -17
  38. data/crates/itsi_server/src/ruby_types/itsi_server.rs +4 -3
  39. data/crates/itsi_server/src/ruby_types/mod.rs +6 -13
  40. data/crates/itsi_server/src/server/{bind.rs → binds/bind.rs} +23 -4
  41. data/crates/itsi_server/src/server/{listener.rs → binds/listener.rs} +24 -10
  42. data/crates/itsi_server/src/server/binds/mod.rs +4 -0
  43. data/crates/itsi_server/src/server/{tls.rs → binds/tls.rs} +9 -4
  44. data/crates/itsi_server/src/server/http_message_types.rs +97 -0
  45. data/crates/itsi_server/src/server/io_stream.rs +2 -1
  46. data/crates/itsi_server/src/server/middleware_stack/middleware.rs +28 -16
  47. data/crates/itsi_server/src/server/middleware_stack/middlewares/allow_list.rs +17 -8
  48. data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_api_key.rs +47 -18
  49. data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs +13 -9
  50. data/crates/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +50 -29
  51. data/crates/itsi_server/src/server/middleware_stack/middlewares/cache_control.rs +5 -2
  52. data/crates/itsi_server/src/server/middleware_stack/middlewares/compression.rs +37 -48
  53. data/crates/itsi_server/src/server/middleware_stack/middlewares/cors.rs +25 -20
  54. data/crates/itsi_server/src/server/middleware_stack/middlewares/deny_list.rs +14 -7
  55. data/crates/itsi_server/src/server/middleware_stack/middlewares/error_response/default_responses.rs +190 -0
  56. data/crates/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +125 -95
  57. data/crates/itsi_server/src/server/middleware_stack/middlewares/etag.rs +9 -5
  58. data/crates/itsi_server/src/server/middleware_stack/middlewares/header_interpretation.rs +1 -4
  59. data/crates/itsi_server/src/server/middleware_stack/middlewares/intrusion_protection.rs +25 -19
  60. data/crates/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +4 -4
  61. data/crates/itsi_server/src/server/middleware_stack/middlewares/max_body.rs +47 -0
  62. data/crates/itsi_server/src/server/middleware_stack/middlewares/mod.rs +9 -4
  63. data/crates/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +260 -62
  64. data/crates/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +29 -22
  65. data/crates/itsi_server/src/server/middleware_stack/middlewares/redirect.rs +6 -6
  66. data/crates/itsi_server/src/server/middleware_stack/middlewares/request_headers.rs +6 -5
  67. data/crates/itsi_server/src/server/middleware_stack/middlewares/response_headers.rs +4 -2
  68. data/crates/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +51 -18
  69. data/crates/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +31 -13
  70. data/crates/itsi_server/src/server/middleware_stack/middlewares/static_response.rs +55 -0
  71. data/crates/itsi_server/src/server/middleware_stack/middlewares/string_rewrite.rs +13 -8
  72. data/crates/itsi_server/src/server/middleware_stack/mod.rs +101 -69
  73. data/crates/itsi_server/src/server/mod.rs +3 -9
  74. data/crates/itsi_server/src/server/process_worker.rs +21 -3
  75. data/crates/itsi_server/src/server/request_job.rs +2 -2
  76. data/crates/itsi_server/src/server/serve_strategy/cluster_mode.rs +8 -3
  77. data/crates/itsi_server/src/server/serve_strategy/single_mode.rs +26 -26
  78. data/crates/itsi_server/src/server/signal.rs +24 -41
  79. data/crates/itsi_server/src/server/size_limited_incoming.rs +101 -0
  80. data/crates/itsi_server/src/server/thread_worker.rs +59 -28
  81. data/crates/itsi_server/src/services/itsi_http_service.rs +239 -0
  82. data/crates/itsi_server/src/services/mime_types.rs +1416 -0
  83. data/crates/itsi_server/src/services/mod.rs +6 -0
  84. data/crates/itsi_server/src/services/password_hasher.rs +83 -0
  85. data/crates/itsi_server/src/{server → services}/rate_limiter.rs +35 -31
  86. data/crates/itsi_server/src/{server → services}/static_file_server.rs +521 -181
  87. data/crates/itsi_tracing/src/lib.rs +145 -55
  88. data/{Itsi.rb → foo/Itsi.rb} +6 -9
  89. data/gems/scheduler/Cargo.lock +7 -0
  90. data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
  91. data/gems/scheduler/test/helpers/test_helper.rb +0 -1
  92. data/gems/scheduler/test/test_address_resolve.rb +0 -1
  93. data/gems/scheduler/test/test_network_io.rb +1 -1
  94. data/gems/scheduler/test/test_process_wait.rb +0 -1
  95. data/gems/server/Cargo.lock +126 -272
  96. data/gems/server/exe/itsi +65 -19
  97. data/gems/server/itsi-server.gemspec +4 -3
  98. data/gems/server/lib/itsi/http_request/response_status_shortcodes.rb +74 -0
  99. data/gems/server/lib/itsi/http_request.rb +117 -17
  100. data/gems/server/lib/itsi/http_response.rb +2 -0
  101. data/gems/server/lib/itsi/passfile.rb +109 -0
  102. data/gems/server/lib/itsi/server/config/dsl.rb +171 -99
  103. data/gems/server/lib/itsi/server/config.rb +58 -23
  104. data/gems/server/lib/itsi/server/default_app/default_app.rb +25 -29
  105. data/gems/server/lib/itsi/server/default_app/index.html +113 -89
  106. data/gems/server/lib/itsi/server/{Itsi.rb → default_config/Itsi-rackup.rb} +1 -1
  107. data/gems/server/lib/itsi/server/default_config/Itsi.rb +107 -0
  108. data/gems/server/lib/itsi/server/grpc/grpc_call.rb +246 -0
  109. data/gems/server/lib/itsi/server/grpc/grpc_interface.rb +100 -0
  110. data/gems/server/lib/itsi/server/grpc/reflection/v1/reflection_pb.rb +26 -0
  111. data/gems/server/lib/itsi/server/grpc/reflection/v1/reflection_services_pb.rb +122 -0
  112. data/gems/server/lib/itsi/server/route_tester.rb +107 -0
  113. data/gems/server/lib/itsi/server/typed_handlers/param_parser.rb +200 -0
  114. data/gems/server/lib/itsi/server/typed_handlers/source_parser.rb +55 -0
  115. data/gems/server/lib/itsi/server/typed_handlers.rb +17 -0
  116. data/gems/server/lib/itsi/server/version.rb +1 -1
  117. data/gems/server/lib/itsi/server.rb +82 -12
  118. data/gems/server/lib/ruby_lsp/itsi/addon.rb +111 -0
  119. data/gems/server/lib/shell_completions/completions.rb +26 -0
  120. data/gems/server/test/helpers/test_helper.rb +2 -1
  121. data/lib/itsi/version.rb +1 -1
  122. data/sandbox/README.md +5 -0
  123. data/sandbox/itsi_file/Gemfile +4 -2
  124. data/sandbox/itsi_file/Gemfile.lock +48 -6
  125. data/sandbox/itsi_file/Itsi.rb +327 -129
  126. data/sandbox/itsi_file/call.json +1 -0
  127. data/sandbox/itsi_file/echo_client/Gemfile +10 -0
  128. data/sandbox/itsi_file/echo_client/Gemfile.lock +27 -0
  129. data/sandbox/itsi_file/echo_client/README.md +95 -0
  130. data/sandbox/itsi_file/echo_client/echo_client.rb +164 -0
  131. data/sandbox/itsi_file/echo_client/gen_proto.sh +17 -0
  132. data/sandbox/itsi_file/echo_client/lib/echo_pb.rb +16 -0
  133. data/sandbox/itsi_file/echo_client/lib/echo_services_pb.rb +29 -0
  134. data/sandbox/itsi_file/echo_client/run_client.rb +64 -0
  135. data/sandbox/itsi_file/echo_client/test_compressions.sh +20 -0
  136. data/sandbox/itsi_file/echo_service_nonitsi/Gemfile +10 -0
  137. data/sandbox/itsi_file/echo_service_nonitsi/Gemfile.lock +79 -0
  138. data/sandbox/itsi_file/echo_service_nonitsi/echo.proto +26 -0
  139. data/sandbox/itsi_file/echo_service_nonitsi/echo_pb.rb +16 -0
  140. data/sandbox/itsi_file/echo_service_nonitsi/echo_services_pb.rb +29 -0
  141. data/sandbox/itsi_file/echo_service_nonitsi/server.rb +52 -0
  142. data/sandbox/itsi_sandbox_async/config.ru +0 -1
  143. data/sandbox/itsi_sandbox_rack/Gemfile.lock +2 -2
  144. data/sandbox/itsi_sandbox_rails/Gemfile +2 -2
  145. data/sandbox/itsi_sandbox_rails/Gemfile.lock +76 -2
  146. data/sandbox/itsi_sandbox_rails/app/controllers/home_controller.rb +15 -0
  147. data/sandbox/itsi_sandbox_rails/config/environments/development.rb +1 -0
  148. data/sandbox/itsi_sandbox_rails/config/environments/production.rb +1 -0
  149. data/sandbox/itsi_sandbox_rails/config/routes.rb +2 -0
  150. data/sandbox/itsi_sinatra/app.rb +0 -1
  151. data/sandbox/static_files/.env +1 -0
  152. data/sandbox/static_files/404.html +25 -0
  153. data/sandbox/static_files/_DSC0102.NEF.jpg +0 -0
  154. data/sandbox/static_files/about.html +68 -0
  155. data/sandbox/static_files/tiny.html +1 -0
  156. data/sandbox/static_files/writebook.zip +0 -0
  157. data/tasks.txt +28 -33
  158. metadata +87 -26
  159. data/crates/itsi_error/src/from.rs +0 -68
  160. data/crates/itsi_server/src/ruby_types/itsi_grpc_request.rs +0 -147
  161. data/crates/itsi_server/src/ruby_types/itsi_grpc_response.rs +0 -19
  162. data/crates/itsi_server/src/server/itsi_service.rs +0 -172
  163. data/crates/itsi_server/src/server/middleware_stack/middlewares/grpc_service.rs +0 -72
  164. data/crates/itsi_server/src/server/types.rs +0 -43
  165. data/gems/server/lib/itsi/server/grpc_interface.rb +0 -213
  166. data/sandbox/itsi_file/public/assets/index.html +0 -1
  167. /data/crates/itsi_server/src/server/{bind_protocol.rs → binds/bind_protocol.rs} +0 -0
  168. /data/crates/itsi_server/src/server/{tls → binds/tls}/locked_dir_cache.rs +0 -0
  169. /data/crates/itsi_server/src/{server → services}/cache_store.rs +0 -0
@@ -56,12 +56,30 @@ dependencies = [
56
56
  "libc",
57
57
  ]
58
58
 
59
+ [[package]]
60
+ name = "anyhow"
61
+ version = "1.0.97"
62
+ source = "registry+https://github.com/rust-lang/crates.io-index"
63
+ checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f"
64
+
59
65
  [[package]]
60
66
  name = "arc-swap"
61
67
  version = "1.7.1"
62
68
  source = "registry+https://github.com/rust-lang/crates.io-index"
63
69
  checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
64
70
 
71
+ [[package]]
72
+ name = "argon2"
73
+ version = "0.5.3"
74
+ source = "registry+https://github.com/rust-lang/crates.io-index"
75
+ checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
76
+ dependencies = [
77
+ "base64ct",
78
+ "blake2",
79
+ "cpufeatures",
80
+ "password-hash",
81
+ ]
82
+
65
83
  [[package]]
66
84
  name = "asn1-rs"
67
85
  version = "0.6.2"
@@ -122,6 +140,7 @@ dependencies = [
122
140
  "brotli",
123
141
  "flate2",
124
142
  "futures-core",
143
+ "futures-io",
125
144
  "memchr",
126
145
  "pin-project-lite",
127
146
  "tokio",
@@ -218,6 +237,25 @@ version = "0.22.1"
218
237
  source = "registry+https://github.com/rust-lang/crates.io-index"
219
238
  checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
220
239
 
240
+ [[package]]
241
+ name = "base64ct"
242
+ version = "1.7.3"
243
+ source = "registry+https://github.com/rust-lang/crates.io-index"
244
+ checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3"
245
+
246
+ [[package]]
247
+ name = "bcrypt"
248
+ version = "0.17.0"
249
+ source = "registry+https://github.com/rust-lang/crates.io-index"
250
+ checksum = "92758ad6077e4c76a6cadbce5005f666df70d4f13b19976b1a8062eef880040f"
251
+ dependencies = [
252
+ "base64",
253
+ "blowfish",
254
+ "getrandom 0.3.1",
255
+ "subtle",
256
+ "zeroize",
257
+ ]
258
+
221
259
  [[package]]
222
260
  name = "bindgen"
223
261
  version = "0.69.5"
@@ -253,6 +291,15 @@ version = "2.8.0"
253
291
  source = "registry+https://github.com/rust-lang/crates.io-index"
254
292
  checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
255
293
 
294
+ [[package]]
295
+ name = "blake2"
296
+ version = "0.10.6"
297
+ source = "registry+https://github.com/rust-lang/crates.io-index"
298
+ checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
299
+ dependencies = [
300
+ "digest",
301
+ ]
302
+
256
303
  [[package]]
257
304
  name = "block-buffer"
258
305
  version = "0.10.4"
@@ -262,6 +309,16 @@ dependencies = [
262
309
  "generic-array",
263
310
  ]
264
311
 
312
+ [[package]]
313
+ name = "blowfish"
314
+ version = "0.9.1"
315
+ source = "registry+https://github.com/rust-lang/crates.io-index"
316
+ checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
317
+ dependencies = [
318
+ "byteorder",
319
+ "cipher",
320
+ ]
321
+
265
322
  [[package]]
266
323
  name = "brotli"
267
324
  version = "7.0.0"
@@ -299,6 +356,12 @@ version = "3.17.0"
299
356
  source = "registry+https://github.com/rust-lang/crates.io-index"
300
357
  checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
301
358
 
359
+ [[package]]
360
+ name = "byteorder"
361
+ version = "1.5.0"
362
+ source = "registry+https://github.com/rust-lang/crates.io-index"
363
+ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
364
+
302
365
  [[package]]
303
366
  name = "bytes"
304
367
  version = "1.10.1"
@@ -351,6 +414,16 @@ dependencies = [
351
414
  "windows-link",
352
415
  ]
353
416
 
417
+ [[package]]
418
+ name = "cipher"
419
+ version = "0.4.4"
420
+ source = "registry+https://github.com/rust-lang/crates.io-index"
421
+ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
422
+ dependencies = [
423
+ "crypto-common",
424
+ "inout",
425
+ ]
426
+
354
427
  [[package]]
355
428
  name = "clang-sys"
356
429
  version = "1.8.1"
@@ -394,16 +467,6 @@ dependencies = [
394
467
  "crossbeam-utils",
395
468
  ]
396
469
 
397
- [[package]]
398
- name = "core-foundation"
399
- version = "0.9.4"
400
- source = "registry+https://github.com/rust-lang/crates.io-index"
401
- checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
402
- dependencies = [
403
- "core-foundation-sys",
404
- "libc",
405
- ]
406
-
407
470
  [[package]]
408
471
  name = "core-foundation"
409
472
  version = "0.10.0"
@@ -420,6 +483,17 @@ version = "0.8.7"
420
483
  source = "registry+https://github.com/rust-lang/crates.io-index"
421
484
  checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
422
485
 
486
+ [[package]]
487
+ name = "core_affinity"
488
+ version = "0.8.3"
489
+ source = "registry+https://github.com/rust-lang/crates.io-index"
490
+ checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342"
491
+ dependencies = [
492
+ "libc",
493
+ "num_cpus",
494
+ "winapi",
495
+ ]
496
+
423
497
  [[package]]
424
498
  name = "cpufeatures"
425
499
  version = "0.2.17"
@@ -438,19 +512,6 @@ dependencies = [
438
512
  "cfg-if",
439
513
  ]
440
514
 
441
- [[package]]
442
- name = "crossbeam"
443
- version = "0.8.4"
444
- source = "registry+https://github.com/rust-lang/crates.io-index"
445
- checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
446
- dependencies = [
447
- "crossbeam-channel",
448
- "crossbeam-deque",
449
- "crossbeam-epoch",
450
- "crossbeam-queue",
451
- "crossbeam-utils",
452
- ]
453
-
454
515
  [[package]]
455
516
  name = "crossbeam-channel"
456
517
  version = "0.5.14"
@@ -479,15 +540,6 @@ dependencies = [
479
540
  "crossbeam-utils",
480
541
  ]
481
542
 
482
- [[package]]
483
- name = "crossbeam-queue"
484
- version = "0.3.12"
485
- source = "registry+https://github.com/rust-lang/crates.io-index"
486
- checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
487
- dependencies = [
488
- "crossbeam-utils",
489
- ]
490
-
491
543
  [[package]]
492
544
  name = "crossbeam-utils"
493
545
  version = "0.8.21"
@@ -504,20 +556,6 @@ dependencies = [
504
556
  "typenum",
505
557
  ]
506
558
 
507
- [[package]]
508
- name = "dashmap"
509
- version = "6.1.0"
510
- source = "registry+https://github.com/rust-lang/crates.io-index"
511
- checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
512
- dependencies = [
513
- "cfg-if",
514
- "crossbeam-utils",
515
- "hashbrown 0.14.5",
516
- "lock_api",
517
- "once_cell",
518
- "parking_lot_core",
519
- ]
520
-
521
559
  [[package]]
522
560
  name = "data-encoding"
523
561
  version = "2.8.0"
@@ -623,15 +661,6 @@ version = "1.15.0"
623
661
  source = "registry+https://github.com/rust-lang/crates.io-index"
624
662
  checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
625
663
 
626
- [[package]]
627
- name = "encoding_rs"
628
- version = "0.8.35"
629
- source = "registry+https://github.com/rust-lang/crates.io-index"
630
- checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
631
- dependencies = [
632
- "cfg-if",
633
- ]
634
-
635
664
  [[package]]
636
665
  name = "equivalent"
637
666
  version = "1.0.2"
@@ -703,21 +732,6 @@ version = "1.0.7"
703
732
  source = "registry+https://github.com/rust-lang/crates.io-index"
704
733
  checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
705
734
 
706
- [[package]]
707
- name = "foreign-types"
708
- version = "0.3.2"
709
- source = "registry+https://github.com/rust-lang/crates.io-index"
710
- checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
711
- dependencies = [
712
- "foreign-types-shared",
713
- ]
714
-
715
- [[package]]
716
- name = "foreign-types-shared"
717
- version = "0.1.1"
718
- source = "registry+https://github.com/rust-lang/crates.io-index"
719
- checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
720
-
721
735
  [[package]]
722
736
  name = "form_urlencoded"
723
737
  version = "1.2.1"
@@ -933,12 +947,6 @@ dependencies = [
933
947
  "tracing",
934
948
  ]
935
949
 
936
- [[package]]
937
- name = "hashbrown"
938
- version = "0.14.5"
939
- source = "registry+https://github.com/rust-lang/crates.io-index"
940
- checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
941
-
942
950
  [[package]]
943
951
  name = "hashbrown"
944
952
  version = "0.15.2"
@@ -960,15 +968,6 @@ version = "0.3.9"
960
968
  source = "registry+https://github.com/rust-lang/crates.io-index"
961
969
  checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
962
970
 
963
- [[package]]
964
- name = "hmac"
965
- version = "0.12.1"
966
- source = "registry+https://github.com/rust-lang/crates.io-index"
967
- checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
968
- dependencies = [
969
- "digest",
970
- ]
971
-
972
971
  [[package]]
973
972
  name = "home"
974
973
  version = "0.5.11"
@@ -1012,12 +1011,6 @@ dependencies = [
1012
1011
  "pin-project-lite",
1013
1012
  ]
1014
1013
 
1015
- [[package]]
1016
- name = "http-range"
1017
- version = "0.1.5"
1018
- source = "registry+https://github.com/rust-lang/crates.io-index"
1019
- checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
1020
-
1021
1014
  [[package]]
1022
1015
  name = "httparse"
1023
1016
  version = "1.10.1"
@@ -1069,41 +1062,6 @@ dependencies = [
1069
1062
  "webpki-roots",
1070
1063
  ]
1071
1064
 
1072
- [[package]]
1073
- name = "hyper-staticfile"
1074
- version = "0.10.1"
1075
- source = "registry+https://github.com/rust-lang/crates.io-index"
1076
- checksum = "bc4bce64c32578957926e75f832032f81ebb30bcee74f86c5848b13a69e547eb"
1077
- dependencies = [
1078
- "futures-util",
1079
- "http",
1080
- "http-range",
1081
- "httpdate",
1082
- "hyper",
1083
- "mime_guess",
1084
- "percent-encoding",
1085
- "rand 0.8.5",
1086
- "tokio",
1087
- "url",
1088
- "winapi",
1089
- ]
1090
-
1091
- [[package]]
1092
- name = "hyper-tls"
1093
- version = "0.6.0"
1094
- source = "registry+https://github.com/rust-lang/crates.io-index"
1095
- checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
1096
- dependencies = [
1097
- "bytes",
1098
- "http-body-util",
1099
- "hyper",
1100
- "hyper-util",
1101
- "native-tls",
1102
- "tokio",
1103
- "tokio-native-tls",
1104
- "tower-service",
1105
- ]
1106
-
1107
1065
  [[package]]
1108
1066
  name = "hyper-util"
1109
1067
  version = "0.1.10"
@@ -1292,7 +1250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1292
1250
  checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652"
1293
1251
  dependencies = [
1294
1252
  "equivalent",
1295
- "hashbrown 0.15.2",
1253
+ "hashbrown",
1296
1254
  ]
1297
1255
 
1298
1256
  [[package]]
@@ -1315,6 +1273,15 @@ dependencies = [
1315
1273
  "libc",
1316
1274
  ]
1317
1275
 
1276
+ [[package]]
1277
+ name = "inout"
1278
+ version = "0.1.4"
1279
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1280
+ checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
1281
+ dependencies = [
1282
+ "generic-array",
1283
+ ]
1284
+
1318
1285
  [[package]]
1319
1286
  name = "ipnet"
1320
1287
  version = "2.11.0"
@@ -1338,30 +1305,28 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
1338
1305
 
1339
1306
  [[package]]
1340
1307
  name = "itsi-server"
1341
- version = "0.1.0"
1308
+ version = "0.1.19"
1342
1309
  dependencies = [
1310
+ "argon2",
1343
1311
  "async-channel",
1344
1312
  "async-compression",
1345
1313
  "async-trait",
1346
1314
  "base64",
1315
+ "bcrypt",
1347
1316
  "bytes",
1348
1317
  "chrono",
1349
- "crossbeam",
1350
- "dashmap",
1318
+ "core_affinity",
1351
1319
  "derive_more",
1352
1320
  "dirs",
1353
1321
  "either",
1354
- "fnv",
1355
1322
  "fs2",
1356
1323
  "futures",
1357
1324
  "globset",
1358
- "hmac",
1359
1325
  "http",
1360
1326
  "http-body-util",
1361
1327
  "httparse",
1362
1328
  "httpdate",
1363
1329
  "hyper",
1364
- "hyper-staticfile",
1365
1330
  "hyper-util",
1366
1331
  "itsi_error",
1367
1332
  "itsi_rb_helpers",
@@ -1374,20 +1339,19 @@ dependencies = [
1374
1339
  "notify",
1375
1340
  "num_cpus",
1376
1341
  "parking_lot",
1342
+ "percent-encoding",
1377
1343
  "pin-project",
1378
1344
  "rand 0.9.0",
1379
- "rb-sys",
1380
1345
  "rcgen",
1381
1346
  "redis",
1382
1347
  "regex",
1383
1348
  "reqwest",
1384
- "ring",
1385
- "route-recognizer",
1386
1349
  "rustls",
1387
1350
  "rustls-pemfile",
1388
1351
  "serde",
1389
1352
  "serde_json",
1390
1353
  "serde_magnus",
1354
+ "sha-crypt",
1391
1355
  "sha2",
1392
1356
  "socket2",
1393
1357
  "sysinfo",
@@ -1399,13 +1363,13 @@ dependencies = [
1399
1363
  "tokio-util",
1400
1364
  "tracing",
1401
1365
  "url",
1402
- "uuid",
1403
1366
  ]
1404
1367
 
1405
1368
  [[package]]
1406
1369
  name = "itsi_error"
1407
1370
  version = "0.1.0"
1408
1371
  dependencies = [
1372
+ "anyhow",
1409
1373
  "httparse",
1410
1374
  "magnus",
1411
1375
  "nix",
@@ -1635,16 +1599,6 @@ version = "0.3.17"
1635
1599
  source = "registry+https://github.com/rust-lang/crates.io-index"
1636
1600
  checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
1637
1601
 
1638
- [[package]]
1639
- name = "mime_guess"
1640
- version = "2.0.5"
1641
- source = "registry+https://github.com/rust-lang/crates.io-index"
1642
- checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
1643
- dependencies = [
1644
- "mime",
1645
- "unicase",
1646
- ]
1647
-
1648
1602
  [[package]]
1649
1603
  name = "minimal-lexical"
1650
1604
  version = "0.2.1"
@@ -1691,23 +1645,6 @@ dependencies = [
1691
1645
  "uuid",
1692
1646
  ]
1693
1647
 
1694
- [[package]]
1695
- name = "native-tls"
1696
- version = "0.2.14"
1697
- source = "registry+https://github.com/rust-lang/crates.io-index"
1698
- checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e"
1699
- dependencies = [
1700
- "libc",
1701
- "log",
1702
- "openssl",
1703
- "openssl-probe",
1704
- "openssl-sys",
1705
- "schannel",
1706
- "security-framework 2.11.1",
1707
- "security-framework-sys",
1708
- "tempfile",
1709
- ]
1710
-
1711
1648
  [[package]]
1712
1649
  name = "nix"
1713
1650
  version = "0.29.0"
@@ -1843,50 +1780,12 @@ version = "1.20.3"
1843
1780
  source = "registry+https://github.com/rust-lang/crates.io-index"
1844
1781
  checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"
1845
1782
 
1846
- [[package]]
1847
- name = "openssl"
1848
- version = "0.10.71"
1849
- source = "registry+https://github.com/rust-lang/crates.io-index"
1850
- checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd"
1851
- dependencies = [
1852
- "bitflags 2.8.0",
1853
- "cfg-if",
1854
- "foreign-types",
1855
- "libc",
1856
- "once_cell",
1857
- "openssl-macros",
1858
- "openssl-sys",
1859
- ]
1860
-
1861
- [[package]]
1862
- name = "openssl-macros"
1863
- version = "0.1.1"
1864
- source = "registry+https://github.com/rust-lang/crates.io-index"
1865
- checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
1866
- dependencies = [
1867
- "proc-macro2",
1868
- "quote",
1869
- "syn",
1870
- ]
1871
-
1872
1783
  [[package]]
1873
1784
  name = "openssl-probe"
1874
1785
  version = "0.1.6"
1875
1786
  source = "registry+https://github.com/rust-lang/crates.io-index"
1876
1787
  checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
1877
1788
 
1878
- [[package]]
1879
- name = "openssl-sys"
1880
- version = "0.9.106"
1881
- source = "registry+https://github.com/rust-lang/crates.io-index"
1882
- checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd"
1883
- dependencies = [
1884
- "cc",
1885
- "libc",
1886
- "pkg-config",
1887
- "vcpkg",
1888
- ]
1889
-
1890
1789
  [[package]]
1891
1790
  name = "option-ext"
1892
1791
  version = "0.2.0"
@@ -1928,6 +1827,17 @@ dependencies = [
1928
1827
  "windows-targets 0.52.6",
1929
1828
  ]
1930
1829
 
1830
+ [[package]]
1831
+ name = "password-hash"
1832
+ version = "0.5.0"
1833
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1834
+ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
1835
+ dependencies = [
1836
+ "base64ct",
1837
+ "rand_core 0.6.4",
1838
+ "subtle",
1839
+ ]
1840
+
1931
1841
  [[package]]
1932
1842
  name = "paste"
1933
1843
  version = "1.0.15"
@@ -2324,22 +2234,18 @@ checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb"
2324
2234
  dependencies = [
2325
2235
  "base64",
2326
2236
  "bytes",
2327
- "encoding_rs",
2328
2237
  "futures-core",
2329
2238
  "futures-util",
2330
- "h2",
2331
2239
  "http",
2332
2240
  "http-body",
2333
2241
  "http-body-util",
2334
2242
  "hyper",
2335
2243
  "hyper-rustls",
2336
- "hyper-tls",
2337
2244
  "hyper-util",
2338
2245
  "ipnet",
2339
2246
  "js-sys",
2340
2247
  "log",
2341
2248
  "mime",
2342
- "native-tls",
2343
2249
  "once_cell",
2344
2250
  "percent-encoding",
2345
2251
  "pin-project-lite",
@@ -2351,9 +2257,7 @@ dependencies = [
2351
2257
  "serde_json",
2352
2258
  "serde_urlencoded",
2353
2259
  "sync_wrapper",
2354
- "system-configuration",
2355
2260
  "tokio",
2356
- "tokio-native-tls",
2357
2261
  "tokio-rustls",
2358
2262
  "tokio-util",
2359
2263
  "tower",
@@ -2381,12 +2285,6 @@ dependencies = [
2381
2285
  "windows-sys 0.52.0",
2382
2286
  ]
2383
2287
 
2384
- [[package]]
2385
- name = "route-recognizer"
2386
- version = "0.3.1"
2387
- source = "registry+https://github.com/rust-lang/crates.io-index"
2388
- checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746"
2389
-
2390
2288
  [[package]]
2391
2289
  name = "rustc-demangle"
2392
2290
  version = "0.1.24"
@@ -2474,7 +2372,7 @@ dependencies = [
2474
2372
  "openssl-probe",
2475
2373
  "rustls-pki-types",
2476
2374
  "schannel",
2477
- "security-framework 3.2.0",
2375
+ "security-framework",
2478
2376
  ]
2479
2377
 
2480
2378
  [[package]]
@@ -2558,19 +2456,6 @@ version = "1.2.0"
2558
2456
  source = "registry+https://github.com/rust-lang/crates.io-index"
2559
2457
  checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
2560
2458
 
2561
- [[package]]
2562
- name = "security-framework"
2563
- version = "2.11.1"
2564
- source = "registry+https://github.com/rust-lang/crates.io-index"
2565
- checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
2566
- dependencies = [
2567
- "bitflags 2.8.0",
2568
- "core-foundation 0.9.4",
2569
- "core-foundation-sys",
2570
- "libc",
2571
- "security-framework-sys",
2572
- ]
2573
-
2574
2459
  [[package]]
2575
2460
  name = "security-framework"
2576
2461
  version = "3.2.0"
@@ -2578,7 +2463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2578
2463
  checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316"
2579
2464
  dependencies = [
2580
2465
  "bitflags 2.8.0",
2581
- "core-foundation 0.10.0",
2466
+ "core-foundation",
2582
2467
  "core-foundation-sys",
2583
2468
  "libc",
2584
2469
  "security-framework-sys",
@@ -2661,6 +2546,18 @@ dependencies = [
2661
2546
  "serde",
2662
2547
  ]
2663
2548
 
2549
+ [[package]]
2550
+ name = "sha-crypt"
2551
+ version = "0.5.0"
2552
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2553
+ checksum = "88e79009728d8311d42d754f2f319a975f9e38f156fd5e422d2451486c78b286"
2554
+ dependencies = [
2555
+ "base64ct",
2556
+ "rand 0.8.5",
2557
+ "sha2",
2558
+ "subtle",
2559
+ ]
2560
+
2664
2561
  [[package]]
2665
2562
  name = "sha1_smol"
2666
2563
  version = "1.0.1"
@@ -2802,27 +2699,6 @@ dependencies = [
2802
2699
  "windows 0.57.0",
2803
2700
  ]
2804
2701
 
2805
- [[package]]
2806
- name = "system-configuration"
2807
- version = "0.6.1"
2808
- source = "registry+https://github.com/rust-lang/crates.io-index"
2809
- checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
2810
- dependencies = [
2811
- "bitflags 2.8.0",
2812
- "core-foundation 0.9.4",
2813
- "system-configuration-sys",
2814
- ]
2815
-
2816
- [[package]]
2817
- name = "system-configuration-sys"
2818
- version = "0.6.0"
2819
- source = "registry+https://github.com/rust-lang/crates.io-index"
2820
- checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
2821
- dependencies = [
2822
- "core-foundation-sys",
2823
- "libc",
2824
- ]
2825
-
2826
2702
  [[package]]
2827
2703
  name = "tagptr"
2828
2704
  version = "0.2.0"
@@ -2984,16 +2860,6 @@ dependencies = [
2984
2860
  "syn",
2985
2861
  ]
2986
2862
 
2987
- [[package]]
2988
- name = "tokio-native-tls"
2989
- version = "0.3.1"
2990
- source = "registry+https://github.com/rust-lang/crates.io-index"
2991
- checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
2992
- dependencies = [
2993
- "native-tls",
2994
- "tokio",
2995
- ]
2996
-
2997
2863
  [[package]]
2998
2864
  name = "tokio-rustls"
2999
2865
  version = "0.26.2"
@@ -3181,12 +3047,6 @@ version = "1.18.0"
3181
3047
  source = "registry+https://github.com/rust-lang/crates.io-index"
3182
3048
  checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
3183
3049
 
3184
- [[package]]
3185
- name = "unicase"
3186
- version = "2.8.1"
3187
- source = "registry+https://github.com/rust-lang/crates.io-index"
3188
- checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
3189
-
3190
3050
  [[package]]
3191
3051
  name = "unicode-ident"
3192
3052
  version = "1.0.17"
@@ -3243,12 +3103,6 @@ version = "0.1.1"
3243
3103
  source = "registry+https://github.com/rust-lang/crates.io-index"
3244
3104
  checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
3245
3105
 
3246
- [[package]]
3247
- name = "vcpkg"
3248
- version = "0.2.15"
3249
- source = "registry+https://github.com/rust-lang/crates.io-index"
3250
- checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
3251
-
3252
3106
  [[package]]
3253
3107
  name = "version_check"
3254
3108
  version = "0.9.5"