itsi-scheduler 0.1.11 → 0.1.12

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +7 -0
  3. data/Cargo.lock +75 -14
  4. data/README.md +5 -0
  5. data/_index.md +7 -0
  6. data/ext/itsi_error/src/lib.rs +9 -0
  7. data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/common.rs +355 -0
  8. data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs +276 -0
  9. data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs +49 -0
  10. data/ext/itsi_error/target/debug/build/rb-sys-49f554618693db24/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs +8865 -0
  11. data/ext/itsi_error/target/debug/incremental/itsi_error-1mmt5sux7jb0i/s-h510z7m8v9-0bxu7yd.lock +0 -0
  12. data/ext/itsi_error/target/debug/incremental/itsi_error-2vn3jey74oiw0/s-h5113n0e7e-1v5qzs6.lock +0 -0
  13. data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510ykifhe-0tbnep2.lock +0 -0
  14. data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510yyocpj-0tz7ug7.lock +0 -0
  15. data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510z0xc8g-14ol18k.lock +0 -0
  16. data/ext/itsi_error/target/debug/incremental/itsi_error-3g5qf4y7d54uj/s-h5113n0e7d-1trk8on.lock +0 -0
  17. data/ext/itsi_error/target/debug/incremental/itsi_error-3lpfftm45d3e2/s-h510z7m8r3-1pxp20o.lock +0 -0
  18. data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510ykifek-1uxasnk.lock +0 -0
  19. data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510yyocki-11u37qm.lock +0 -0
  20. data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510z0xc93-0pmy0zm.lock +0 -0
  21. data/ext/itsi_rb_helpers/Cargo.toml +1 -0
  22. data/ext/itsi_rb_helpers/src/heap_value.rs +18 -0
  23. data/ext/itsi_rb_helpers/src/lib.rs +34 -7
  24. data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/common.rs +355 -0
  25. data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs +276 -0
  26. data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs +49 -0
  27. data/ext/itsi_rb_helpers/target/debug/build/rb-sys-eb9ed4ff3a60f995/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs +8865 -0
  28. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-040pxg6yhb3g3/s-h5113n7a1b-03bwlt4.lock +0 -0
  29. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h51113xnh3-1eik1ip.lock +0 -0
  30. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h5111704jj-0g4rj8x.lock +0 -0
  31. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-1q2d3drtxrzs5/s-h5113n79yl-0bxcqc5.lock +0 -0
  32. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h51113xoox-10de2hp.lock +0 -0
  33. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h5111704w7-0vdq7gq.lock +0 -0
  34. data/ext/itsi_server/Cargo.toml +69 -30
  35. data/ext/itsi_server/src/lib.rs +79 -147
  36. data/ext/itsi_server/src/{body_proxy → ruby_types/itsi_body_proxy}/big_bytes.rs +10 -5
  37. data/ext/itsi_server/src/{body_proxy/itsi_body_proxy.rs → ruby_types/itsi_body_proxy/mod.rs} +22 -3
  38. data/ext/itsi_server/src/ruby_types/itsi_grpc_request.rs +147 -0
  39. data/ext/itsi_server/src/ruby_types/itsi_grpc_response.rs +19 -0
  40. data/ext/itsi_server/src/ruby_types/itsi_grpc_stream/mod.rs +216 -0
  41. data/ext/itsi_server/src/{request/itsi_request.rs → ruby_types/itsi_http_request.rs} +101 -117
  42. data/ext/itsi_server/src/{response/itsi_response.rs → ruby_types/itsi_http_response.rs} +72 -41
  43. data/ext/itsi_server/src/ruby_types/itsi_server/file_watcher.rs +225 -0
  44. data/ext/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +355 -0
  45. data/ext/itsi_server/src/ruby_types/itsi_server.rs +82 -0
  46. data/ext/itsi_server/src/ruby_types/mod.rs +55 -0
  47. data/ext/itsi_server/src/server/bind.rs +13 -5
  48. data/ext/itsi_server/src/server/byte_frame.rs +32 -0
  49. data/ext/itsi_server/src/server/cache_store.rs +74 -0
  50. data/ext/itsi_server/src/server/itsi_service.rs +172 -0
  51. data/ext/itsi_server/src/server/lifecycle_event.rs +3 -0
  52. data/ext/itsi_server/src/server/listener.rs +102 -2
  53. data/ext/itsi_server/src/server/middleware_stack/middleware.rs +153 -0
  54. data/ext/itsi_server/src/server/middleware_stack/middlewares/allow_list.rs +47 -0
  55. data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_api_key.rs +58 -0
  56. data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs +82 -0
  57. data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +321 -0
  58. data/ext/itsi_server/src/server/middleware_stack/middlewares/cache_control.rs +139 -0
  59. data/ext/itsi_server/src/server/middleware_stack/middlewares/compression.rs +300 -0
  60. data/ext/itsi_server/src/server/middleware_stack/middlewares/cors.rs +287 -0
  61. data/ext/itsi_server/src/server/middleware_stack/middlewares/deny_list.rs +48 -0
  62. data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +127 -0
  63. data/ext/itsi_server/src/server/middleware_stack/middlewares/etag.rs +191 -0
  64. data/ext/itsi_server/src/server/middleware_stack/middlewares/grpc_service.rs +72 -0
  65. data/ext/itsi_server/src/server/middleware_stack/middlewares/header_interpretation.rs +85 -0
  66. data/ext/itsi_server/src/server/middleware_stack/middlewares/intrusion_protection.rs +195 -0
  67. data/ext/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +82 -0
  68. data/ext/itsi_server/src/server/middleware_stack/middlewares/mod.rs +82 -0
  69. data/ext/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +216 -0
  70. data/ext/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +124 -0
  71. data/ext/itsi_server/src/server/middleware_stack/middlewares/redirect.rs +76 -0
  72. data/ext/itsi_server/src/server/middleware_stack/middlewares/request_headers.rs +43 -0
  73. data/ext/itsi_server/src/server/middleware_stack/middlewares/response_headers.rs +34 -0
  74. data/ext/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +93 -0
  75. data/ext/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +162 -0
  76. data/ext/itsi_server/src/server/middleware_stack/middlewares/string_rewrite.rs +158 -0
  77. data/ext/itsi_server/src/server/middleware_stack/middlewares/token_source.rs +12 -0
  78. data/ext/itsi_server/src/server/middleware_stack/mod.rs +315 -0
  79. data/ext/itsi_server/src/server/mod.rs +8 -1
  80. data/ext/itsi_server/src/server/process_worker.rs +38 -12
  81. data/ext/itsi_server/src/server/rate_limiter.rs +565 -0
  82. data/ext/itsi_server/src/server/request_job.rs +11 -0
  83. data/ext/itsi_server/src/server/serve_strategy/cluster_mode.rs +119 -42
  84. data/ext/itsi_server/src/server/serve_strategy/mod.rs +9 -6
  85. data/ext/itsi_server/src/server/serve_strategy/single_mode.rs +256 -111
  86. data/ext/itsi_server/src/server/signal.rs +19 -0
  87. data/ext/itsi_server/src/server/static_file_server.rs +984 -0
  88. data/ext/itsi_server/src/server/thread_worker.rs +139 -94
  89. data/ext/itsi_server/src/server/types.rs +43 -0
  90. data/ext/itsi_tracing/Cargo.toml +1 -0
  91. data/ext/itsi_tracing/src/lib.rs +216 -45
  92. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-0994n8rpvvt9m/s-h510hfz1f6-1kbycmq.lock +0 -0
  93. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-0bob7bf4yq34i/s-h5113125h5-0lh4rag.lock +0 -0
  94. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2fcodulrxbbxo/s-h510h2infk-0hp5kjw.lock +0 -0
  95. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2iak63r1woi1l/s-h510h2in4q-0kxfzw1.lock +0 -0
  96. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2kk4qj9gn5dg2/s-h5113124kv-0enwon2.lock +0 -0
  97. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2mwo0yas7dtw4/s-h510hfz1ha-1udgpei.lock +0 -0
  98. data/lib/itsi/scheduler/version.rb +1 -1
  99. data/lib/itsi/scheduler.rb +2 -2
  100. metadata +77 -12
  101. data/ext/itsi_server/extconf.rb +0 -6
  102. data/ext/itsi_server/src/body_proxy/mod.rs +0 -2
  103. data/ext/itsi_server/src/request/mod.rs +0 -1
  104. data/ext/itsi_server/src/response/mod.rs +0 -1
  105. data/ext/itsi_server/src/server/itsi_server.rs +0 -288
@@ -1,58 +1,229 @@
1
- use std::env;
2
-
3
1
  use atty::{Stream, is};
4
- use tracing::level_filters::LevelFilter;
5
- pub use tracing::{debug, error, info, trace, warn};
6
- pub use tracing_attributes::instrument; // Explicitly export from tracing-attributes
7
- use tracing_subscriber::{
8
- EnvFilter, Layer,
9
- fmt::{self, format},
10
- layer::SubscriberExt,
2
+ use std::{
3
+ env,
4
+ sync::{Mutex, OnceLock},
11
5
  };
6
+ pub use tracing::{debug, error, info, trace, warn};
7
+ use tracing_appender::rolling;
8
+ use tracing_subscriber::Layer;
9
+ use tracing_subscriber::fmt::writer::BoxMakeWriter;
10
+ use tracing_subscriber::{EnvFilter, fmt, prelude::*, reload};
11
+
12
+ // Global reload handle for changing the level at runtime.
13
+ static RELOAD_HANDLE: OnceLock<
14
+ Mutex<Option<reload::Handle<EnvFilter, tracing_subscriber::Registry>>>,
15
+ > = OnceLock::new();
16
+
17
+ /// Log format: Plain or JSON.
18
+ #[derive(Debug, Clone)]
19
+ pub enum LogFormat {
20
+ Plain,
21
+ Json,
22
+ }
23
+
24
+ /// Log target: STDOUT, File, or Both.
25
+ #[derive(Debug, Clone)]
26
+ pub enum LogTarget {
27
+ Stdout,
28
+ File(String), // file name (rotated daily)
29
+ Both(String), // file name (rotated daily) plus STDOUT
30
+ }
31
+
32
+ /// Logger configuration.
33
+ #[derive(Debug, Clone)]
34
+ pub struct LogConfig {
35
+ /// Log level as a string (e.g. "info", "debug").
36
+ pub level: String,
37
+ /// Format: Plain (with optional ANSI) or JSON.
38
+ pub format: LogFormat,
39
+ /// Target: STDOUT, File, or Both.
40
+ pub target: LogTarget,
41
+ /// Whether to enable ANSI coloring (for plain text).
42
+ pub use_ansi: bool,
43
+ }
12
44
 
13
- #[instrument]
45
+ impl Default for LogConfig {
46
+ fn default() -> Self {
47
+ let level = env::var("ITSI_LOG").unwrap_or_else(|_| "info".into());
48
+ let format = match env::var("ITSI_LOG_FORMAT").as_deref() {
49
+ Ok("json") => LogFormat::Json,
50
+ _ => LogFormat::Plain,
51
+ };
52
+ let target = match env::var("ITSI_LOG_TARGET").as_deref() {
53
+ Ok("file") => {
54
+ let file = env::var("ITSI_LOG_FILE").unwrap_or_else(|_| "app.log".into());
55
+ LogTarget::File(file)
56
+ }
57
+ Ok("both") => {
58
+ let file = env::var("ITSI_LOG_FILE").unwrap_or_else(|_| "app.log".into());
59
+ LogTarget::Both(file)
60
+ }
61
+ _ => LogTarget::Stdout,
62
+ };
63
+ // If ITSI_LOG_ANSI is set, use that; otherwise, use ANSI if stdout is a TTY.
64
+ let use_ansi = env::var("ITSI_LOG_ANSI")
65
+ .map(|s| s == "true")
66
+ .unwrap_or_else(|_| is(Stream::Stdout));
67
+ Self {
68
+ level,
69
+ format,
70
+ target,
71
+ use_ansi,
72
+ }
73
+ }
74
+ }
75
+
76
+ /// Initialize the global tracing subscriber with the default configuration.
14
77
  pub fn init() {
15
- let env_filter = EnvFilter::builder()
16
- .with_env_var("ITSI_LOG")
17
- .try_from_env()
18
- .unwrap_or_else(|_| EnvFilter::new("info"));
19
-
20
- let format = fmt::format()
21
- .compact()
22
- .with_file(false)
23
- .with_level(true)
24
- .with_line_number(false)
25
- .with_source_location(false)
26
- .with_target(false)
27
- .with_thread_ids(false);
28
-
29
- let is_tty = is(Stream::Stdout);
30
-
31
- let subscriber = tracing_subscriber::fmt()
32
- .event_format(format)
33
- .with_env_filter(env_filter);
34
-
35
- if (is_tty && env::var("ITSI_LOG_PLAIN").is_err()) || env::var("ITSI_LOG_ANSI").is_ok() {
36
- subscriber.with_ansi(true).init();
78
+ init_with_config(LogConfig::default());
79
+ }
80
+
81
+ /// Initialize the global tracing subscriber with a given configuration.
82
+ pub fn init_with_config(config: LogConfig) {
83
+ // Build an EnvFilter from the configured level.
84
+ let env_filter = EnvFilter::new(config.level);
85
+
86
+ // Build the formatting layer based on target and format.
87
+ let fmt_layer = match config.target {
88
+ LogTarget::Stdout => match config.format {
89
+ LogFormat::Plain => fmt::layer()
90
+ .compact()
91
+ .with_file(false)
92
+ .with_line_number(false)
93
+ .with_target(false)
94
+ .with_thread_ids(false)
95
+ .with_writer(BoxMakeWriter::new(std::io::stdout))
96
+ .with_ansi(config.use_ansi)
97
+ .boxed(),
98
+ LogFormat::Json => fmt::layer()
99
+ .compact()
100
+ .with_file(false)
101
+ .with_line_number(false)
102
+ .with_target(false)
103
+ .with_thread_ids(false)
104
+ .with_writer(BoxMakeWriter::new(std::io::stdout))
105
+ .with_ansi(config.use_ansi)
106
+ .json()
107
+ .boxed(),
108
+ },
109
+ LogTarget::File(file) => match config.format {
110
+ LogFormat::Plain => fmt::layer()
111
+ .compact()
112
+ .with_file(false)
113
+ .with_line_number(false)
114
+ .with_target(false)
115
+ .with_thread_ids(false)
116
+ .with_writer(BoxMakeWriter::new({
117
+ let file = file.clone();
118
+ move || rolling::daily(".", file.clone())
119
+ }))
120
+ .with_ansi(false)
121
+ .boxed(),
122
+ LogFormat::Json => fmt::layer()
123
+ .compact()
124
+ .with_file(false)
125
+ .with_line_number(false)
126
+ .with_target(false)
127
+ .with_thread_ids(false)
128
+ .with_writer(BoxMakeWriter::new({
129
+ let file = file.clone();
130
+ move || rolling::daily(".", file.clone())
131
+ }))
132
+ .with_ansi(false)
133
+ .json()
134
+ .boxed(),
135
+ },
136
+ LogTarget::Both(file) => {
137
+ // For "Both" target, handle each format separately to avoid type mismatches
138
+ match config.format {
139
+ LogFormat::Plain => {
140
+ let stdout_layer = fmt::layer()
141
+ .compact()
142
+ .with_file(false)
143
+ .with_line_number(false)
144
+ .with_target(false)
145
+ .with_thread_ids(false)
146
+ .with_writer(BoxMakeWriter::new(std::io::stdout))
147
+ .with_ansi(config.use_ansi);
148
+
149
+ let file_layer = fmt::layer()
150
+ .compact()
151
+ .with_file(false)
152
+ .with_line_number(false)
153
+ .with_target(false)
154
+ .with_thread_ids(false)
155
+ .with_writer(BoxMakeWriter::new({
156
+ let file = file.clone();
157
+ move || rolling::daily(".", file.clone())
158
+ }))
159
+ .with_ansi(false);
160
+
161
+ stdout_layer.and_then(file_layer).boxed()
162
+ }
163
+ LogFormat::Json => {
164
+ let stdout_layer = fmt::layer()
165
+ .compact()
166
+ .with_file(false)
167
+ .with_line_number(false)
168
+ .with_target(false)
169
+ .with_thread_ids(false)
170
+ .with_writer(BoxMakeWriter::new(std::io::stdout))
171
+ .with_ansi(config.use_ansi)
172
+ .json();
173
+
174
+ let file_layer = fmt::layer()
175
+ .compact()
176
+ .with_file(false)
177
+ .with_line_number(false)
178
+ .with_target(false)
179
+ .with_thread_ids(false)
180
+ .with_writer(BoxMakeWriter::new({
181
+ let file = file.clone();
182
+ move || rolling::daily(".", file.clone())
183
+ }))
184
+ .with_ansi(false)
185
+ .json();
186
+
187
+ stdout_layer.and_then(file_layer).boxed()
188
+ }
189
+ }
190
+ }
191
+ };
192
+
193
+ // Create a reloadable filter layer so we can update the level at runtime.
194
+ let (filter_layer, handle) = reload::Layer::new(env_filter);
195
+
196
+ // Build the subscriber registry
197
+ let subscriber = tracing_subscriber::registry()
198
+ .with(filter_layer)
199
+ .with(fmt_layer);
200
+
201
+ tracing::subscriber::set_global_default(subscriber)
202
+ .expect("Unable to set global tracing subscriber");
203
+
204
+ RELOAD_HANDLE.set(Mutex::new(Some(handle))).unwrap();
205
+ }
206
+
207
+ /// Change the log level at runtime.
208
+ pub fn set_level(new_level: &str) {
209
+ if let Some(handle) = RELOAD_HANDLE.get().unwrap().lock().unwrap().as_ref() {
210
+ handle
211
+ .modify(|filter| *filter = EnvFilter::new(new_level))
212
+ .expect("Failed to update log level");
37
213
  } else {
38
- subscriber
39
- .fmt_fields(format::JsonFields::default())
40
- .event_format(fmt::format().json())
41
- .init();
214
+ eprintln!("Reload handle not initialized; call init() first.");
42
215
  }
43
216
  }
44
217
 
218
+ /// Run a function silently by temporarily setting a no-op subscriber.
45
219
  pub fn run_silently<F, R>(f: F) -> R
46
220
  where
47
221
  F: FnOnce() -> R,
48
222
  {
49
- // Build a minimal subscriber that filters *everything* out
50
- let no_op_subscriber =
51
- tracing_subscriber::registry().with(fmt::layer().with_filter(LevelFilter::OFF));
52
-
53
- // Turn that subscriber into a `Dispatch`
54
- let no_op_dispatch = tracing::dispatcher::Dispatch::new(no_op_subscriber);
55
-
56
- // Temporarily set `no_op_dispatch` as the *default* within this closure
57
- tracing::dispatcher::with_default(&no_op_dispatch, f)
223
+ let no_op_subscriber = tracing_subscriber::fmt()
224
+ .with_writer(std::io::sink)
225
+ .with_max_level(tracing_subscriber::filter::LevelFilter::OFF)
226
+ .finish();
227
+ let dispatch = tracing::Dispatch::new(no_op_subscriber);
228
+ tracing::dispatcher::with_default(&dispatch, f)
58
229
  }
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Itsi
4
4
  class Scheduler
5
- VERSION = "0.1.11"
5
+ VERSION = "0.1.12"
6
6
  end
7
7
  end
@@ -73,7 +73,7 @@ module Itsi
73
73
  fiber.resume
74
74
  end
75
75
  rescue StandardError => e
76
- warn "Failed to resume fiber #{fiber}: #{e.message}"
76
+ warn "Fiber #{fiber} terminated on exception: #{e.message}"
77
77
  end
78
78
 
79
79
  def resume_fiber_with_readiness((token, readiness))
@@ -81,7 +81,7 @@ module Itsi
81
81
  fiber.resume(readiness)
82
82
  end
83
83
  rescue StandardError => e
84
- warn "Failed to resume fiber #{fiber}: #{e.message}"
84
+ warn "Fiber #{fiber} terminated on exception: #{e.message}"
85
85
  end
86
86
 
87
87
  def resume_blocked(fiber)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itsi-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wouter Coppieters
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-17 00:00:00.000000000 Z
10
+ date: 2025-03-29 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rb_sys
@@ -40,18 +40,42 @@ files:
40
40
  - LICENSE.txt
41
41
  - README.md
42
42
  - Rakefile
43
+ - _index.md
43
44
  - ext/itsi_error/Cargo.lock
44
45
  - ext/itsi_error/Cargo.toml
45
46
  - ext/itsi_error/src/from.rs
46
47
  - ext/itsi_error/src/lib.rs
48
+ - ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/common.rs
49
+ - ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs
50
+ - ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs
51
+ - ext/itsi_error/target/debug/build/rb-sys-49f554618693db24/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs
52
+ - ext/itsi_error/target/debug/incremental/itsi_error-1mmt5sux7jb0i/s-h510z7m8v9-0bxu7yd.lock
53
+ - ext/itsi_error/target/debug/incremental/itsi_error-2vn3jey74oiw0/s-h5113n0e7e-1v5qzs6.lock
54
+ - ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510ykifhe-0tbnep2.lock
55
+ - ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510yyocpj-0tz7ug7.lock
56
+ - ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510z0xc8g-14ol18k.lock
57
+ - ext/itsi_error/target/debug/incremental/itsi_error-3g5qf4y7d54uj/s-h5113n0e7d-1trk8on.lock
58
+ - ext/itsi_error/target/debug/incremental/itsi_error-3lpfftm45d3e2/s-h510z7m8r3-1pxp20o.lock
59
+ - ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510ykifek-1uxasnk.lock
60
+ - ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510yyocki-11u37qm.lock
61
+ - ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510z0xc93-0pmy0zm.lock
47
62
  - ext/itsi_instrument_entry/Cargo.toml
48
63
  - ext/itsi_instrument_entry/src/lib.rs
49
64
  - ext/itsi_rb_helpers/Cargo.lock
50
65
  - ext/itsi_rb_helpers/Cargo.toml
51
66
  - ext/itsi_rb_helpers/src/heap_value.rs
52
67
  - ext/itsi_rb_helpers/src/lib.rs
68
+ - ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/common.rs
69
+ - ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs
70
+ - ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs
71
+ - ext/itsi_rb_helpers/target/debug/build/rb-sys-eb9ed4ff3a60f995/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs
72
+ - ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-040pxg6yhb3g3/s-h5113n7a1b-03bwlt4.lock
73
+ - ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h51113xnh3-1eik1ip.lock
74
+ - ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h5111704jj-0g4rj8x.lock
75
+ - ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-1q2d3drtxrzs5/s-h5113n79yl-0bxcqc5.lock
76
+ - ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h51113xoox-10de2hp.lock
77
+ - ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h5111704w7-0vdq7gq.lock
53
78
  - ext/itsi_scheduler/Cargo.toml
54
- - ext/itsi_scheduler/extconf.rb
55
79
  - ext/itsi_scheduler/src/itsi_scheduler.rs
56
80
  - ext/itsi_scheduler/src/itsi_scheduler/io_helpers.rs
57
81
  - ext/itsi_scheduler/src/itsi_scheduler/io_waiter.rs
@@ -59,34 +83,75 @@ files:
59
83
  - ext/itsi_scheduler/src/lib.rs
60
84
  - ext/itsi_server/Cargo.lock
61
85
  - ext/itsi_server/Cargo.toml
62
- - ext/itsi_server/extconf.rb
63
- - ext/itsi_server/src/body_proxy/big_bytes.rs
64
- - ext/itsi_server/src/body_proxy/itsi_body_proxy.rs
65
- - ext/itsi_server/src/body_proxy/mod.rs
66
86
  - ext/itsi_server/src/env.rs
67
87
  - ext/itsi_server/src/lib.rs
68
- - ext/itsi_server/src/request/itsi_request.rs
69
- - ext/itsi_server/src/request/mod.rs
70
- - ext/itsi_server/src/response/itsi_response.rs
71
- - ext/itsi_server/src/response/mod.rs
88
+ - ext/itsi_server/src/ruby_types/itsi_body_proxy/big_bytes.rs
89
+ - ext/itsi_server/src/ruby_types/itsi_body_proxy/mod.rs
90
+ - ext/itsi_server/src/ruby_types/itsi_grpc_request.rs
91
+ - ext/itsi_server/src/ruby_types/itsi_grpc_response.rs
92
+ - ext/itsi_server/src/ruby_types/itsi_grpc_stream/mod.rs
93
+ - ext/itsi_server/src/ruby_types/itsi_http_request.rs
94
+ - ext/itsi_server/src/ruby_types/itsi_http_response.rs
95
+ - ext/itsi_server/src/ruby_types/itsi_server.rs
96
+ - ext/itsi_server/src/ruby_types/itsi_server/file_watcher.rs
97
+ - ext/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs
98
+ - ext/itsi_server/src/ruby_types/mod.rs
72
99
  - ext/itsi_server/src/server/bind.rs
73
100
  - ext/itsi_server/src/server/bind_protocol.rs
101
+ - ext/itsi_server/src/server/byte_frame.rs
102
+ - ext/itsi_server/src/server/cache_store.rs
74
103
  - ext/itsi_server/src/server/io_stream.rs
75
- - ext/itsi_server/src/server/itsi_server.rs
104
+ - ext/itsi_server/src/server/itsi_service.rs
76
105
  - ext/itsi_server/src/server/lifecycle_event.rs
77
106
  - ext/itsi_server/src/server/listener.rs
107
+ - ext/itsi_server/src/server/middleware_stack/middleware.rs
108
+ - ext/itsi_server/src/server/middleware_stack/middlewares/allow_list.rs
109
+ - ext/itsi_server/src/server/middleware_stack/middlewares/auth_api_key.rs
110
+ - ext/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs
111
+ - ext/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs
112
+ - ext/itsi_server/src/server/middleware_stack/middlewares/cache_control.rs
113
+ - ext/itsi_server/src/server/middleware_stack/middlewares/compression.rs
114
+ - ext/itsi_server/src/server/middleware_stack/middlewares/cors.rs
115
+ - ext/itsi_server/src/server/middleware_stack/middlewares/deny_list.rs
116
+ - ext/itsi_server/src/server/middleware_stack/middlewares/error_response.rs
117
+ - ext/itsi_server/src/server/middleware_stack/middlewares/etag.rs
118
+ - ext/itsi_server/src/server/middleware_stack/middlewares/grpc_service.rs
119
+ - ext/itsi_server/src/server/middleware_stack/middlewares/header_interpretation.rs
120
+ - ext/itsi_server/src/server/middleware_stack/middlewares/intrusion_protection.rs
121
+ - ext/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs
122
+ - ext/itsi_server/src/server/middleware_stack/middlewares/mod.rs
123
+ - ext/itsi_server/src/server/middleware_stack/middlewares/proxy.rs
124
+ - ext/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs
125
+ - ext/itsi_server/src/server/middleware_stack/middlewares/redirect.rs
126
+ - ext/itsi_server/src/server/middleware_stack/middlewares/request_headers.rs
127
+ - ext/itsi_server/src/server/middleware_stack/middlewares/response_headers.rs
128
+ - ext/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs
129
+ - ext/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs
130
+ - ext/itsi_server/src/server/middleware_stack/middlewares/string_rewrite.rs
131
+ - ext/itsi_server/src/server/middleware_stack/middlewares/token_source.rs
132
+ - ext/itsi_server/src/server/middleware_stack/mod.rs
78
133
  - ext/itsi_server/src/server/mod.rs
79
134
  - ext/itsi_server/src/server/process_worker.rs
135
+ - ext/itsi_server/src/server/rate_limiter.rs
136
+ - ext/itsi_server/src/server/request_job.rs
80
137
  - ext/itsi_server/src/server/serve_strategy/cluster_mode.rs
81
138
  - ext/itsi_server/src/server/serve_strategy/mod.rs
82
139
  - ext/itsi_server/src/server/serve_strategy/single_mode.rs
83
140
  - ext/itsi_server/src/server/signal.rs
141
+ - ext/itsi_server/src/server/static_file_server.rs
84
142
  - ext/itsi_server/src/server/thread_worker.rs
85
143
  - ext/itsi_server/src/server/tls.rs
86
144
  - ext/itsi_server/src/server/tls/locked_dir_cache.rs
145
+ - ext/itsi_server/src/server/types.rs
87
146
  - ext/itsi_tracing/Cargo.lock
88
147
  - ext/itsi_tracing/Cargo.toml
89
148
  - ext/itsi_tracing/src/lib.rs
149
+ - ext/itsi_tracing/target/debug/incremental/itsi_tracing-0994n8rpvvt9m/s-h510hfz1f6-1kbycmq.lock
150
+ - ext/itsi_tracing/target/debug/incremental/itsi_tracing-0bob7bf4yq34i/s-h5113125h5-0lh4rag.lock
151
+ - ext/itsi_tracing/target/debug/incremental/itsi_tracing-2fcodulrxbbxo/s-h510h2infk-0hp5kjw.lock
152
+ - ext/itsi_tracing/target/debug/incremental/itsi_tracing-2iak63r1woi1l/s-h510h2in4q-0kxfzw1.lock
153
+ - ext/itsi_tracing/target/debug/incremental/itsi_tracing-2kk4qj9gn5dg2/s-h5113124kv-0enwon2.lock
154
+ - ext/itsi_tracing/target/debug/incremental/itsi_tracing-2mwo0yas7dtw4/s-h510hfz1ha-1udgpei.lock
90
155
  - lib/itsi/scheduler.rb
91
156
  - lib/itsi/scheduler/version.rb
92
157
  - sig/itsi_scheduler.rbs
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "mkmf"
4
- require "rb_sys/mkmf"
5
-
6
- create_rust_makefile("itsi/server/itsi_server")
@@ -1,2 +0,0 @@
1
- pub mod big_bytes;
2
- pub mod itsi_body_proxy;
@@ -1 +0,0 @@
1
- pub mod itsi_request;
@@ -1 +0,0 @@
1
- pub mod itsi_response;