itsi 0.2.21 → 0.2.23
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 +3 -0
- data/Cargo.lock +26 -12
- data/Cargo.toml +4 -0
- data/Dockerfile +2 -2
- data/Rakefile +4 -0
- data/crates/itsi_scheduler/Cargo.toml +1 -1
- data/crates/itsi_server/Cargo.lock +2 -2
- data/crates/itsi_server/Cargo.toml +1 -1
- data/crates/itsi_server/src/server/middleware_stack/mod.rs +3 -9
- data/crates/itsi_server/src/server/signal.rs +7 -5
- data/crates/itsi_server/src/services/itsi_http_service.rs +5 -8
- data/gems/scheduler/Cargo.lock +518 -3986
- data/gems/scheduler/Cargo.toml +4 -0
- data/gems/scheduler/Gemfile +11 -0
- data/gems/scheduler/Rakefile +21 -6
- data/gems/scheduler/itsi-scheduler.gemspec +5 -1
- data/gems/scheduler/lib/itsi/scheduler/native_extension.rb +34 -0
- data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
- data/gems/scheduler/lib/itsi/scheduler.rb +1 -1
- data/gems/scheduler/test/test_block_unblock.rb +1 -1
- data/gems/scheduler/vendor/rb-sys-build/.cargo-ok +1 -0
- data/gems/scheduler/vendor/rb-sys-build/.cargo_vcs_info.json +6 -0
- data/gems/scheduler/vendor/rb-sys-build/Cargo.lock +294 -0
- data/gems/scheduler/vendor/rb-sys-build/Cargo.toml +71 -0
- data/gems/scheduler/vendor/rb-sys-build/Cargo.toml.orig +32 -0
- data/gems/scheduler/vendor/rb-sys-build/LICENSE-APACHE +190 -0
- data/gems/scheduler/vendor/rb-sys-build/LICENSE-MIT +21 -0
- data/gems/scheduler/vendor/rb-sys-build/src/bindings/sanitizer.rs +185 -0
- data/gems/scheduler/vendor/rb-sys-build/src/bindings/stable_api.rs +247 -0
- data/gems/scheduler/vendor/rb-sys-build/src/bindings/wrapper.h +71 -0
- data/gems/scheduler/vendor/rb-sys-build/src/bindings.rs +280 -0
- data/gems/scheduler/vendor/rb-sys-build/src/cc.rs +421 -0
- data/gems/scheduler/vendor/rb-sys-build/src/lib.rs +12 -0
- data/gems/scheduler/vendor/rb-sys-build/src/rb_config/flags.rs +101 -0
- data/gems/scheduler/vendor/rb-sys-build/src/rb_config/library.rs +132 -0
- data/gems/scheduler/vendor/rb-sys-build/src/rb_config/search_path.rs +57 -0
- data/gems/scheduler/vendor/rb-sys-build/src/rb_config.rs +906 -0
- data/gems/scheduler/vendor/rb-sys-build/src/utils.rs +53 -0
- data/gems/server/Cargo.lock +25 -38
- data/gems/server/Cargo.toml +4 -0
- data/gems/server/Gemfile +23 -0
- data/gems/server/Rakefile +39 -7
- data/gems/server/itsi-server.gemspec +5 -1
- data/gems/server/lib/itsi/server/native_extension.rb +34 -0
- data/gems/server/lib/itsi/server/version.rb +1 -1
- data/gems/server/lib/itsi/server.rb +10 -2
- data/gems/server/test/helpers/test_helper.rb +19 -0
- data/gems/server/test/options/unmatched_request.rb +29 -0
- data/gems/server/test/rack/test_rack_server.rb +14 -2
- data/gems/server/vendor/rb-sys-build/.cargo-ok +1 -0
- data/gems/server/vendor/rb-sys-build/.cargo_vcs_info.json +6 -0
- data/gems/server/vendor/rb-sys-build/Cargo.lock +294 -0
- data/gems/server/vendor/rb-sys-build/Cargo.toml +71 -0
- data/gems/server/vendor/rb-sys-build/Cargo.toml.orig +32 -0
- data/gems/server/vendor/rb-sys-build/LICENSE-APACHE +190 -0
- data/gems/server/vendor/rb-sys-build/LICENSE-MIT +21 -0
- data/gems/server/vendor/rb-sys-build/src/bindings/sanitizer.rs +185 -0
- data/gems/server/vendor/rb-sys-build/src/bindings/stable_api.rs +247 -0
- data/gems/server/vendor/rb-sys-build/src/bindings/wrapper.h +71 -0
- data/gems/server/vendor/rb-sys-build/src/bindings.rs +280 -0
- data/gems/server/vendor/rb-sys-build/src/cc.rs +421 -0
- data/gems/server/vendor/rb-sys-build/src/lib.rs +12 -0
- data/gems/server/vendor/rb-sys-build/src/rb_config/flags.rs +101 -0
- data/gems/server/vendor/rb-sys-build/src/rb_config/library.rs +132 -0
- data/gems/server/vendor/rb-sys-build/src/rb_config/search_path.rs +57 -0
- data/gems/server/vendor/rb-sys-build/src/rb_config.rs +906 -0
- data/gems/server/vendor/rb-sys-build/src/utils.rs +53 -0
- data/lib/itsi/version.rb +1 -1
- data/script/ci/resolve_version.rb +32 -0
- data/script/ci/set_version.rb +53 -0
- data/script/ci/setup_cibuildgem_rake_compiler.sh +63 -0
- data/script/ci/smoke_scheduler.rb +24 -0
- data/script/ci/smoke_server.rb +38 -0
- data/vendor/rb-sys-build/.cargo-ok +1 -0
- data/vendor/rb-sys-build/.cargo_vcs_info.json +6 -0
- data/vendor/rb-sys-build/Cargo.lock +294 -0
- data/vendor/rb-sys-build/Cargo.toml +71 -0
- data/vendor/rb-sys-build/Cargo.toml.orig +32 -0
- data/vendor/rb-sys-build/LICENSE-APACHE +190 -0
- data/vendor/rb-sys-build/LICENSE-MIT +21 -0
- data/vendor/rb-sys-build/src/bindings/sanitizer.rs +185 -0
- data/vendor/rb-sys-build/src/bindings/stable_api.rs +247 -0
- data/vendor/rb-sys-build/src/bindings/wrapper.h +71 -0
- data/vendor/rb-sys-build/src/bindings.rs +280 -0
- data/vendor/rb-sys-build/src/cc.rs +421 -0
- data/vendor/rb-sys-build/src/lib.rs +12 -0
- data/vendor/rb-sys-build/src/rb_config/flags.rs +101 -0
- data/vendor/rb-sys-build/src/rb_config/library.rs +132 -0
- data/vendor/rb-sys-build/src/rb_config/search_path.rs +57 -0
- data/vendor/rb-sys-build/src/rb_config.rs +906 -0
- data/vendor/rb-sys-build/src/utils.rs +53 -0
- metadata +69 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6f500a7fdc96a95bb73c92215cef369ad5a208c0ef60f260c36257f74a592448
|
|
4
|
+
data.tar.gz: 42ccd29b510e972f40b291a0f058b618e4605f2c9379412c853542d7e5e4e8a8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3e1e1c6426657562728948fbfab3ca19a727e62ba144ef0c1d0c4ab46d6fa4a7152305ea47d4b23cfdb795a906b60e7bea6e8891c6af704ff9486210a7f05a1e
|
|
7
|
+
data.tar.gz: 499ba6cd3408cf9e780092e025cb3791af23460cc581dbf774f2774a573b45ddded6c8153358ca3ef6744d6bacc998ac829505c37f329e22dc1e856a7e65891d
|
data/CHANGELOG.md
CHANGED
data/Cargo.lock
CHANGED
|
@@ -270,7 +270,7 @@ version = "0.28.2"
|
|
|
270
270
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
271
271
|
checksum = "bfa9b6986f250236c27e5a204062434a773a13243d2ffc2955f37bdba4c5c6a1"
|
|
272
272
|
dependencies = [
|
|
273
|
-
"bindgen",
|
|
273
|
+
"bindgen 0.69.5",
|
|
274
274
|
"cc",
|
|
275
275
|
"cmake",
|
|
276
276
|
"dunce",
|
|
@@ -427,6 +427,24 @@ dependencies = [
|
|
|
427
427
|
"which",
|
|
428
428
|
]
|
|
429
429
|
|
|
430
|
+
[[package]]
|
|
431
|
+
name = "bindgen"
|
|
432
|
+
version = "0.72.1"
|
|
433
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
434
|
+
checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
|
|
435
|
+
dependencies = [
|
|
436
|
+
"bitflags 2.9.0",
|
|
437
|
+
"cexpr",
|
|
438
|
+
"clang-sys",
|
|
439
|
+
"itertools",
|
|
440
|
+
"proc-macro2",
|
|
441
|
+
"quote",
|
|
442
|
+
"regex",
|
|
443
|
+
"rustc-hash 2.1.1",
|
|
444
|
+
"shlex",
|
|
445
|
+
"syn 2.0.101",
|
|
446
|
+
]
|
|
447
|
+
|
|
430
448
|
[[package]]
|
|
431
449
|
name = "bitflags"
|
|
432
450
|
version = "1.3.2"
|
|
@@ -660,7 +678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
660
678
|
checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
|
|
661
679
|
dependencies = [
|
|
662
680
|
"lazy_static",
|
|
663
|
-
"windows-sys 0.
|
|
681
|
+
"windows-sys 0.48.0",
|
|
664
682
|
]
|
|
665
683
|
|
|
666
684
|
[[package]]
|
|
@@ -1644,7 +1662,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|
|
1644
1662
|
|
|
1645
1663
|
[[package]]
|
|
1646
1664
|
name = "itsi-scheduler"
|
|
1647
|
-
version = "0.2.
|
|
1665
|
+
version = "0.2.23"
|
|
1648
1666
|
dependencies = [
|
|
1649
1667
|
"bytes",
|
|
1650
1668
|
"derive_more",
|
|
@@ -1662,7 +1680,7 @@ dependencies = [
|
|
|
1662
1680
|
|
|
1663
1681
|
[[package]]
|
|
1664
1682
|
name = "itsi-server"
|
|
1665
|
-
version = "0.2.
|
|
1683
|
+
version = "0.2.23"
|
|
1666
1684
|
dependencies = [
|
|
1667
1685
|
"argon2",
|
|
1668
1686
|
"async-channel",
|
|
@@ -1934,8 +1952,7 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
|
|
1934
1952
|
[[package]]
|
|
1935
1953
|
name = "magnus"
|
|
1936
1954
|
version = "0.8.2"
|
|
1937
|
-
source = "
|
|
1938
|
-
checksum = "3b36a5b126bbe97eb0d02d07acfeb327036c6319fd816139a49824a83b7f9012"
|
|
1955
|
+
source = "git+https://github.com/matsadler/magnus.git?rev=1ed232edb2b75a2eed9b1def34ad57e55c411a5c#1ed232edb2b75a2eed9b1def34ad57e55c411a5c"
|
|
1939
1956
|
dependencies = [
|
|
1940
1957
|
"bytes",
|
|
1941
1958
|
"magnus-macros",
|
|
@@ -1947,8 +1964,7 @@ dependencies = [
|
|
|
1947
1964
|
[[package]]
|
|
1948
1965
|
name = "magnus-macros"
|
|
1949
1966
|
version = "0.8.0"
|
|
1950
|
-
source = "
|
|
1951
|
-
checksum = "47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"
|
|
1967
|
+
source = "git+https://github.com/matsadler/magnus.git?rev=1ed232edb2b75a2eed9b1def34ad57e55c411a5c#1ed232edb2b75a2eed9b1def34ad57e55c411a5c"
|
|
1952
1968
|
dependencies = [
|
|
1953
1969
|
"proc-macro2",
|
|
1954
1970
|
"quote",
|
|
@@ -2591,10 +2607,8 @@ dependencies = [
|
|
|
2591
2607
|
[[package]]
|
|
2592
2608
|
name = "rb-sys-build"
|
|
2593
2609
|
version = "0.9.124"
|
|
2594
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2595
|
-
checksum = "568068db4102230882e6d4ae8de6632e224ca75fe5970f6e026a04e91ed635d3"
|
|
2596
2610
|
dependencies = [
|
|
2597
|
-
"bindgen",
|
|
2611
|
+
"bindgen 0.72.1",
|
|
2598
2612
|
"lazy_static",
|
|
2599
2613
|
"proc-macro2",
|
|
2600
2614
|
"quote",
|
|
@@ -3922,7 +3936,7 @@ version = "0.1.9"
|
|
|
3922
3936
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3923
3937
|
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
|
3924
3938
|
dependencies = [
|
|
3925
|
-
"windows-sys 0.
|
|
3939
|
+
"windows-sys 0.48.0",
|
|
3926
3940
|
]
|
|
3927
3941
|
|
|
3928
3942
|
[[package]]
|
data/Cargo.toml
CHANGED
|
@@ -12,6 +12,10 @@ members = [
|
|
|
12
12
|
]
|
|
13
13
|
resolver = "2"
|
|
14
14
|
|
|
15
|
+
[patch.crates-io]
|
|
16
|
+
magnus = { git = "https://github.com/matsadler/magnus.git", rev = "1ed232edb2b75a2eed9b1def34ad57e55c411a5c" }
|
|
17
|
+
rb-sys-build = { path = "vendor/rb-sys-build" }
|
|
18
|
+
|
|
15
19
|
|
|
16
20
|
[profile.release]
|
|
17
21
|
opt-level = 3
|
data/Dockerfile
CHANGED
|
@@ -3,7 +3,7 @@ FROM ruby:3.4
|
|
|
3
3
|
RUN apt-get update && apt-get install build-essential libclang-dev -y && apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
4
4
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
5
5
|
|
|
6
|
-
COPY pkg/itsi-server-0.2.
|
|
7
|
-
RUN gem install itsi-server-0.2.
|
|
6
|
+
COPY pkg/itsi-server-0.2.23.gem .
|
|
7
|
+
RUN gem install itsi-server-0.2.23.gem
|
|
8
8
|
|
|
9
9
|
CMD ["itsi", "serve"]
|
data/Rakefile
CHANGED
|
@@ -57,7 +57,9 @@ task :sync_crates do
|
|
|
57
57
|
require 'fileutils'
|
|
58
58
|
GEMS.each do |gem_info|
|
|
59
59
|
ext_dir = File.join(gem_info[:dir], 'ext')
|
|
60
|
+
vendor_dir = File.join(gem_info[:dir], 'vendor')
|
|
60
61
|
FileUtils.mkdir_p(ext_dir)
|
|
62
|
+
FileUtils.mkdir_p(vendor_dir)
|
|
61
63
|
|
|
62
64
|
Dir.chdir('crates') do
|
|
63
65
|
Dir['*'].each do |to_sync|
|
|
@@ -68,6 +70,8 @@ task :sync_crates do
|
|
|
68
70
|
system("cp ../Cargo.lock ../#{gem_info[:dir]}/Cargo.lock")
|
|
69
71
|
end
|
|
70
72
|
end
|
|
73
|
+
|
|
74
|
+
system("rsync -q -av vendor/rb-sys-build/ #{vendor_dir}/rb-sys-build --delete")
|
|
71
75
|
end
|
|
72
76
|
end
|
|
73
77
|
|
|
@@ -984,7 +984,7 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
|
|
|
984
984
|
|
|
985
985
|
[[package]]
|
|
986
986
|
name = "itsi-scheduler"
|
|
987
|
-
version = "0.
|
|
987
|
+
version = "0.2.23"
|
|
988
988
|
dependencies = [
|
|
989
989
|
"bytes",
|
|
990
990
|
"derive_more",
|
|
@@ -1002,7 +1002,7 @@ dependencies = [
|
|
|
1002
1002
|
|
|
1003
1003
|
[[package]]
|
|
1004
1004
|
name = "itsi-server"
|
|
1005
|
-
version = "0.
|
|
1005
|
+
version = "0.2.23"
|
|
1006
1006
|
dependencies = [
|
|
1007
1007
|
"async-channel",
|
|
1008
1008
|
"async-trait",
|
|
@@ -263,7 +263,7 @@ impl MiddlewareSet {
|
|
|
263
263
|
pub fn stack_for(
|
|
264
264
|
&self,
|
|
265
265
|
request: &HttpRequest,
|
|
266
|
-
) ->
|
|
266
|
+
) -> Option<(&Vec<Middleware>, Option<Arc<Regex>>)> {
|
|
267
267
|
let binding = self.route_set.matches(request.uri().path());
|
|
268
268
|
let matches = binding.iter();
|
|
269
269
|
|
|
@@ -276,7 +276,7 @@ impl MiddlewareSet {
|
|
|
276
276
|
let matching_pattern = self.patterns.get(index).cloned();
|
|
277
277
|
if let Some(stack) = self.stacks.get(&index) {
|
|
278
278
|
if stack.matches(request) {
|
|
279
|
-
return
|
|
279
|
+
return Some((&stack.layers, matching_pattern));
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
}
|
|
@@ -285,13 +285,7 @@ impl MiddlewareSet {
|
|
|
285
285
|
request.uri().path(),
|
|
286
286
|
self.route_set
|
|
287
287
|
);
|
|
288
|
-
|
|
289
|
-
magnus::Ruby::get().unwrap().exception_standard_error(),
|
|
290
|
-
format!(
|
|
291
|
-
"No matching middleware stack found for request: {:?}",
|
|
292
|
-
request
|
|
293
|
-
),
|
|
294
|
-
))
|
|
288
|
+
None
|
|
295
289
|
}
|
|
296
290
|
|
|
297
291
|
pub fn parse_middleware(middleware_type: String, parameters: Value) -> Result<Middleware> {
|
|
@@ -45,15 +45,17 @@ pub fn unsubscribe_runtime() {
|
|
|
45
45
|
pub fn send_lifecycle_event(event: LifecycleEvent) {
|
|
46
46
|
if let Some(sender) = SIGNAL_HANDLER_CHANNEL.lock().as_ref() {
|
|
47
47
|
if let Err(e) = sender.send(event) {
|
|
48
|
-
// Channel full or receivers dropped - this is a critical error for shutdown signals
|
|
49
|
-
eprintln!("Critical: Failed to send lifecycle event {:?}", e);
|
|
50
|
-
// For shutdown events, try to force exit if channel delivery fails
|
|
51
48
|
if matches!(
|
|
52
49
|
e.0,
|
|
53
50
|
LifecycleEvent::Shutdown | LifecycleEvent::ForceShutdown
|
|
54
51
|
) {
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
SHUTDOWN_REQUESTED.store(true, Ordering::SeqCst);
|
|
53
|
+
warn!(
|
|
54
|
+
"Dropping shutdown lifecycle event after receiver closed: {:?}",
|
|
55
|
+
e
|
|
56
|
+
);
|
|
57
|
+
} else {
|
|
58
|
+
eprintln!("Warning: Failed to send lifecycle event {:?}", e);
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
} else {
|
|
@@ -188,14 +188,11 @@ impl ItsiHttpService {
|
|
|
188
188
|
let token_preference = self.server_params.itsi_server_token_preference;
|
|
189
189
|
|
|
190
190
|
let service_future = async move {
|
|
191
|
-
let
|
|
192
|
-
.server_params
|
|
193
|
-
|
|
194
|
-
.
|
|
195
|
-
|
|
196
|
-
.stack_for(&req)
|
|
197
|
-
.unwrap();
|
|
198
|
-
let (stack, matching_pattern) = middleware_stack;
|
|
191
|
+
let Some((stack, matching_pattern)) =
|
|
192
|
+
self.server_params.middleware.get().unwrap().stack_for(&req)
|
|
193
|
+
else {
|
|
194
|
+
return Ok(NOT_FOUND_RESPONSE.to_http_response(accept).await);
|
|
195
|
+
};
|
|
199
196
|
let mut resp: Option<HttpResponse> = None;
|
|
200
197
|
|
|
201
198
|
let mut context =
|