microsandbox-rb 0.17.0 → 0.17.2
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 +229 -8
- data/Cargo.lock +45 -46
- data/DESIGN.md +90 -72
- data/README.md +178 -669
- data/SECURITY.md +65 -0
- data/docs/configuration.md +154 -0
- data/docs/errors.md +74 -0
- data/docs/execution.md +108 -0
- data/docs/filesystem.md +45 -0
- data/docs/images.md +65 -0
- data/docs/lifecycle.md +141 -0
- data/docs/observability.md +99 -0
- data/docs/releasing.md +117 -0
- data/docs/runtime.md +154 -0
- data/docs/surface.md +75 -0
- data/ext/microsandbox/Cargo.toml +9 -5
- data/ext/microsandbox/src/agent.rs +13 -11
- data/ext/microsandbox/src/backend.rs +1 -1
- data/ext/microsandbox/src/exec.rs +12 -8
- data/ext/microsandbox/src/fs_stream.rs +19 -7
- data/ext/microsandbox/src/host_path.rs +108 -0
- data/ext/microsandbox/src/image.rs +2 -2
- data/ext/microsandbox/src/lib.rs +3 -2
- data/ext/microsandbox/src/runtime.rs +189 -13
- data/ext/microsandbox/src/sandbox.rs +149 -102
- data/ext/microsandbox/src/snapshot.rs +17 -11
- data/ext/microsandbox/src/ssh.rs +22 -16
- data/ext/microsandbox/src/stream.rs +6 -2
- data/ext/microsandbox/src/volume.rs +50 -17
- data/lib/microsandbox/fs.rb +4 -8
- data/lib/microsandbox/image.rb +2 -2
- data/lib/microsandbox/log_entry.rb +1 -1
- data/lib/microsandbox/metrics.rb +1 -1
- data/lib/microsandbox/outbound_proxy.rb +8 -0
- data/lib/microsandbox/sandbox.rb +128 -13
- data/lib/microsandbox/snapshot.rb +1 -1
- data/lib/microsandbox/ssh.rb +2 -10
- data/lib/microsandbox/streams.rb +8 -5
- data/lib/microsandbox/version.rb +1 -1
- data/lib/microsandbox/volume.rb +31 -14
- data/lib/microsandbox-rb.rb +7 -0
- data/lib/microsandbox.rb +88 -31
- data/sig/microsandbox.rbs +24 -0
- metadata +14 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f76670a6753a6503a0764ed173db3c33a1eff9a62de7a7d9343bc76f8143c1ba
|
|
4
|
+
data.tar.gz: 80d4d4f1c2bbb3f47dd8f714602e6b01a841d62971b70b5682d3ad0c7dcff904
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 74429f29417c1b2c2e6aeee35948d3c5201d5ac9d001beba4efceca484dbea53f0041e84f0f7fa0fef5933a89f3e317737fb134d6329267eb5e239fe56d7e297
|
|
7
|
+
data.tar.gz: d4d5072d1a68079a8bfe199e8c53e0d92e7614515e1326e81333f857c1b53b681575f8df2162abb167ea6228841ffba2631f4d2b8df38552040c946966223c2c
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,212 @@ All notable changes to this gem are documented here. The format is based on
|
|
|
6
6
|
microsandbox runtime it embeds; each release notes the upstream runtime tag it
|
|
7
7
|
wraps, and the README's Versioning section keeps the full gem→runtime map.
|
|
8
8
|
|
|
9
|
+
## [Unreleased]
|
|
10
|
+
|
|
11
|
+
## [0.17.2] - 2026-10-12
|
|
12
|
+
|
|
13
|
+
Gem-only fix and release-pipeline hardening release; the embedded runtime
|
|
14
|
+
stays at **`v0.6.18`**. One behaviour change is visible: under
|
|
15
|
+
`Thread.handle_interrupt(X => :on_blocking)` a native call now raises an
|
|
16
|
+
already-deferred exception before it starts instead of after it finishes,
|
|
17
|
+
except in the four sandbox-acquisition methods, which deliver it after the
|
|
18
|
+
acquisition (see the first Fixed entry).
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Two contract specs keep the hand-maintained parts honest:
|
|
23
|
+
`spec/unit/rbs_contract_spec.rb` compares `sig/microsandbox.rbs` with the
|
|
24
|
+
loaded gem, and `spec/unit/docs_contract_spec.rb` checks the docs against
|
|
25
|
+
the code (version table, CHANGELOG links, error table, option list,
|
|
26
|
+
examples, release checklist). CI also runs `rbs -I sig validate`.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- **Release pipeline hardened** (no change to the gem's code or API). A tag
|
|
31
|
+
now publishes only after a preflight passes — the tag equals the three
|
|
32
|
+
version constants, its commit is on `main`, and CI is green for that exact
|
|
33
|
+
commit — and after the companion `microsandbox-rb-binaries` gems have built
|
|
34
|
+
(a companion build failure now blocks the SDK publish; a companion push
|
|
35
|
+
failure still needs a re-run of `publish-binaries`). The published gem is built
|
|
36
|
+
with plain `gem build`, every workflow action is pinned to a commit SHA
|
|
37
|
+
(kept current by Dependabot), and CI checks `Cargo.lock` against the RustSec
|
|
38
|
+
advisory database with `cargo deny`. See [docs/releasing.md](docs/releasing.md).
|
|
39
|
+
- **The precompiled-extension release job is removed.** The manual-dispatch
|
|
40
|
+
`cross-gems` job never produced a gem. Precompiled extension gems are not
|
|
41
|
+
built or published; every platform installs the source gem (compiled via
|
|
42
|
+
`rb_sys`), exactly as before. The `microsandbox-rb-binaries` gems are
|
|
43
|
+
unaffected.
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- **An interrupted call no longer leaks what it produced.** A `Timeout.timeout`
|
|
48
|
+
(or any `Thread#raise`), a `Thread#kill` or a Ctrl-C that arrived while a
|
|
49
|
+
native call was in flight used to discard the call's result without
|
|
50
|
+
releasing it: `Timeout.timeout { Sandbox.create(...) }` raised
|
|
51
|
+
`Timeout::Error` and left the sandbox running with no Ruby object owning it
|
|
52
|
+
until the process exited, an interrupted `exec_stream` left its guest
|
|
53
|
+
session open with nothing able to kill it, and an interrupted `exec` kept
|
|
54
|
+
its collected output in memory. The result now always reaches Ruby, and
|
|
55
|
+
what happens to it depends on the interrupt:
|
|
56
|
+
- **`Timeout`/`Thread#raise` and `Thread#kill`** during `Sandbox.create`,
|
|
57
|
+
`Sandbox.connect_or_create`, `Sandbox.start` or `PullSession#sandbox`: the
|
|
58
|
+
sandbox is stopped before the exception propagates — only one the call
|
|
59
|
+
owns; a sandbox `connect_or_create` merely connected to is left running.
|
|
60
|
+
The stop is best-effort: if it fails, the interrupt is still what you
|
|
61
|
+
see, and the sandbox is torn down when its object is garbage-collected.
|
|
62
|
+
- **Ctrl-C (`SIGINT`)** during those four, and **any interrupt** during
|
|
63
|
+
every other call (`exec_stream`, streams, SSH clients, …): nothing is
|
|
64
|
+
stopped at once; the result is released — and a sandbox torn down — when
|
|
65
|
+
its unreferenced object is garbage-collected.
|
|
66
|
+
|
|
67
|
+
Native calls are still uninterruptible, so the exception is raised once the
|
|
68
|
+
call has finished, and in the first case only after the cleanup stop as well
|
|
69
|
+
(a timed-out create therefore returns later than before). One visible
|
|
70
|
+
difference for `Thread.handle_interrupt(X => :on_blocking)`: a native call
|
|
71
|
+
now raises an exception that is already deferred *before* it starts, where
|
|
72
|
+
it used to raise it after finishing. The four acquisition methods above are
|
|
73
|
+
the exception — they hold every queued interrupt back until the sandbox is
|
|
74
|
+
in the caller's hands, so there a deferred exception is delivered after the
|
|
75
|
+
acquisition (at the thread's next blocking operation), not before it.
|
|
76
|
+
- **RBS: `Klass.new` now type-checks with its real arguments.** 24 classes
|
|
77
|
+
whose constructor takes arguments had no `initialize` declaration, so RBS
|
|
78
|
+
synthesized a zero-argument `new` for them.
|
|
79
|
+
- **Docs:** `docs/surface.md` now lists every `create`/`modify` keyword;
|
|
80
|
+
`DESIGN.md` no longer names a runtime tag the gem stopped pinning long ago;
|
|
81
|
+
the `with_backend` example in `docs/runtime.md` is valid Ruby. `0.9.3`
|
|
82
|
+
(never tagged or published) is folded into `0.10.0`, both in this file and
|
|
83
|
+
in the README's Versioning table, and this file now defines the compare
|
|
84
|
+
links for `0.9.1`–`0.13.0`.
|
|
85
|
+
|
|
86
|
+
## [0.17.1] - 2026-10-12
|
|
87
|
+
|
|
88
|
+
Gem-only security and hardening release; the embedded runtime stays at
|
|
89
|
+
**`v0.6.18`**. Upgrading is recommended for everyone on `0.17.0` or earlier.
|
|
90
|
+
Two fixes tighten input handling and can reject input that used to be
|
|
91
|
+
accepted: `Volume.fs` paths containing a `..` segment, and
|
|
92
|
+
`Microsandbox.runtime_path = nil`.
|
|
93
|
+
|
|
94
|
+
### Security
|
|
95
|
+
|
|
96
|
+
- **Relative host paths are pinned when a sandbox is created**
|
|
97
|
+
([GHSA-mcw9-9rf6-p4rm](https://github.com/superradcompany/microsandbox/security/advisories/GHSA-mcw9-9rf6-p4rm),
|
|
98
|
+
high; fixed upstream in runtime `v0.7.6`, which this gem does not embed yet).
|
|
99
|
+
The embedded runtime stored a relative host path exactly as written and
|
|
100
|
+
resolved it against the working directory of whichever process later
|
|
101
|
+
started the sandbox, so restarting a sandbox from another directory mounted
|
|
102
|
+
a different host directory than the one originally intended. The native
|
|
103
|
+
layer now anchors every relative host path to the creating process's
|
|
104
|
+
directory before the configuration is persisted: bind and disk mount
|
|
105
|
+
sources in `volumes:`, a directory or disk-image `image:`, a `root_disk:`
|
|
106
|
+
image path, `Patch.copy_file` / `Patch.copy_dir` sources, the `tls:`
|
|
107
|
+
certificate paths, and a path-form `from_snapshot:`. This covers sandboxes
|
|
108
|
+
created through the gem; the `msb` CLI the gem installs is unchanged, so use
|
|
109
|
+
absolute paths with it. Paths are anchored
|
|
110
|
+
without following symlinks and without requiring the target to exist, so a
|
|
111
|
+
symlinked bind-mount root is still refused unless
|
|
112
|
+
`follow_root_symlinks: true`. Absolute paths, named volumes, and OCI
|
|
113
|
+
references are unchanged, and on a cloud backend paths are forwarded as
|
|
114
|
+
written (they belong to the remote host).
|
|
115
|
+
|
|
116
|
+
**Existing sandboxes are not rewritten.** A sandbox created by an earlier
|
|
117
|
+
gem version with a relative path keeps that saved path and its old
|
|
118
|
+
behaviour: recreate it, or only ever start it from its original directory.
|
|
119
|
+
Affects every earlier `microsandbox-rb` release; the upstream advisory does
|
|
120
|
+
not list this gem.
|
|
121
|
+
- **Errors no longer repeat values that can be credentials.** A URL-style
|
|
122
|
+
proxy address (`socks5://user:pass@host:port`) is refused by shape without
|
|
123
|
+
being echoed; an `env:` / `labels:` / `scripts:` value that is not a Hash
|
|
124
|
+
(or convertible to one, like `ENV`), a malformed patch, and a non-Hash
|
|
125
|
+
secret spec are reported by class name only.
|
|
126
|
+
- **Dependencies with published advisories updated in `Cargo.lock`**:
|
|
127
|
+
`russh` 0.63.1 → 0.63.3 (GHSA-35g8-35p8-c8fw, SSH server side),
|
|
128
|
+
`rustls` 0.23.41 → 0.23.45 (RUSTSEC-2026-0285), `h2` 0.4.15 → 0.4.16
|
|
129
|
+
(RUSTSEC-2026-0258), plus `anyhow` 1.0.104 and `event-listener` 5.4.2
|
|
130
|
+
(unsoundness fixes). Those pulled in `aws-lc-rs` 1.18.1, `aws-lc-sys`
|
|
131
|
+
0.45.0, `rustls-webpki` 0.103.15, and `num-bigint` 0.5.1 in place of
|
|
132
|
+
`internal-russh-num-bigint`. `rkyv` and `rsa` have no compatible fixed
|
|
133
|
+
release at the pinned runtime and are unchanged.
|
|
134
|
+
|
|
135
|
+
### Added
|
|
136
|
+
|
|
137
|
+
- `SECURITY.md`: how to report a vulnerability privately, and a table mapping
|
|
138
|
+
upstream microsandbox advisories to the `microsandbox-rb` versions they
|
|
139
|
+
affect (upstream advisories do not list this gem). Shipped in the gem.
|
|
140
|
+
- `require "microsandbox-rb"` as an entry point named after the gem. Outside
|
|
141
|
+
Bundler, `require "microsandbox"` can resolve to the unrelated `microsandbox`
|
|
142
|
+
gem on RubyGems.
|
|
143
|
+
|
|
144
|
+
### Fixed
|
|
145
|
+
|
|
146
|
+
- **Documentation examples that did not run.** The README quick start failed
|
|
147
|
+
on its second run (`SandboxAlreadyExistsError`; it now uses
|
|
148
|
+
`ephemeral: true`), and the README / configuration-guide `secrets:` example
|
|
149
|
+
used the `#modify` shape and raised `TypeError`. The observability and
|
|
150
|
+
errors guides named the wrong error class for the metrics startup window
|
|
151
|
+
(it is the base `Microsandbox::Error`, matched by message), and
|
|
152
|
+
`log_stream(follow: true)` was documented as ending when the sandbox stops
|
|
153
|
+
(it does not). The guides now also state that an inline secret `value:` is
|
|
154
|
+
stored in cleartext in the local catalog until the sandbox is removed, that
|
|
155
|
+
the block form stops but does not remove, that a runtime home belongs to one
|
|
156
|
+
runtime line (`MSB_HOME`), and list known issues at the pinned runtime
|
|
157
|
+
(including guest `fallocate` truncating bind-mounted files on macOS hosts).
|
|
158
|
+
- **A rejected option no longer triggers a runtime download.** The first-use
|
|
159
|
+
runtime check ran before most argument validation, so `Sandbox.create` with
|
|
160
|
+
a bad option downloaded and installed `msb` before raising. It now runs
|
|
161
|
+
after the options are validated, in `create`, `connect_or_create` and
|
|
162
|
+
`create_with_progress`.
|
|
163
|
+
- **First-use provisioning is serialized within a process.** Several threads
|
|
164
|
+
making their first `Sandbox.create` at once each ran the installer, which
|
|
165
|
+
replaces files in place. `Microsandbox.install`, `Microsandbox.setup` and
|
|
166
|
+
the first-use check now share one lock, and the check runs once.
|
|
167
|
+
- **`Microsandbox.runtime_path = nil` / `libkrunfw_path = nil`** (or `""`)
|
|
168
|
+
raise `ArgumentError` instead of writing an empty path into the set-once
|
|
169
|
+
slot for the rest of the process.
|
|
170
|
+
- **Companion gem detection no longer depends on the host project's name.**
|
|
171
|
+
When the host project is itself a gem with its bundle installed inside the
|
|
172
|
+
project directory, `microsandbox-rb-binaries` could be attributed to the
|
|
173
|
+
host project and ignored, depending on gem load order. The owner is now
|
|
174
|
+
the gem with the innermost matching root.
|
|
175
|
+
- **`patches:` with `from_snapshot:`** raises `ArgumentError` up front. The
|
|
176
|
+
runtime rejects the pair only after claiming the sandbox name on disk,
|
|
177
|
+
which left an empty directory holding the name.
|
|
178
|
+
- **Block forms keep the caller's exception.** `fs.write_stream { }`,
|
|
179
|
+
`ssh.open_client { }` and `client.sftp { }` closed in a bare `ensure`, so a
|
|
180
|
+
failing close replaced whatever the block had raised. The block's exception
|
|
181
|
+
now wins; a close failure is still raised when the block itself succeeded.
|
|
182
|
+
- **`PullSession#sandbox`** re-raises the original create failure when called
|
|
183
|
+
again, instead of an unrelated "already taken" error.
|
|
184
|
+
- **Timestamps are exact to the millisecond.** `Time.at(ms / 1000.0)` went
|
|
185
|
+
through a Float and reported one millisecond low for about half of all
|
|
186
|
+
values (`FsEntry#modified`, `FsMetadata#modified` / `#created`,
|
|
187
|
+
`LogEntry#timestamp`, `Metrics#timestamp`, and every `created_at` /
|
|
188
|
+
`updated_at` / `last_used_at` / `observed_at` reader).
|
|
189
|
+
- **`secrets:` given as a `{ "NAME" => { ... } }` Hash** (the `#modify`
|
|
190
|
+
shape) raises a descriptive `ArgumentError` instead of `TypeError`; a single
|
|
191
|
+
bare spec Hash is accepted as a list of one, as is a single patch Hash for
|
|
192
|
+
`patches:`.
|
|
193
|
+
|
|
194
|
+
### Changed
|
|
195
|
+
|
|
196
|
+
- **`Volume.fs` paths may not contain a `..` segment.** Every `VolumeFs` operation
|
|
197
|
+
(`read`, `read_text`, `write`, `list`, `mkdir`, `remove_file`, `remove_dir`,
|
|
198
|
+
`exists?`, `copy`, `rename`, `stat`) now refuses a path that contains a `..`
|
|
199
|
+
segment with `FilesystemError`, in the native layer as well as the Ruby
|
|
200
|
+
wrapper. Volume paths are relative to the volume root and never need one.
|
|
201
|
+
A path such as `"a/../b"` that used to be accepted must now be written as
|
|
202
|
+
`"b"`. Names that merely contain dots (`"..hidden"`, `"a..b"`) are fine.
|
|
203
|
+
- **README restructured** along the lines of a conventional Ruby SDK README:
|
|
204
|
+
badges, a Highlights list, a short install + quick start, a Documentation
|
|
205
|
+
table, and a sourced comparison with the official `microsandbox` gem. The
|
|
206
|
+
detailed guides moved into `docs/` (`lifecycle`, `configuration`,
|
|
207
|
+
`execution`, `filesystem`, `observability`, `images`, `runtime`, `errors`,
|
|
208
|
+
`surface`, `releasing`), which the gem now ships (`spec.files`), so the
|
|
209
|
+
links resolve on rubygems.org and rubydoc.info. `docs/surface.md` replaces
|
|
210
|
+
the duplicated implemented-surface prose in README and `DESIGN.md` as the
|
|
211
|
+
single scope statement. `docs/errors.md` lists every error class and marks
|
|
212
|
+
the four the native layer does not currently raise (`PathNotFoundError`,
|
|
213
|
+
`ImagePullFailedError`, `SecretViolationError`, `TlsError`) as reserved.
|
|
214
|
+
|
|
9
215
|
## [0.17.0] - 2026-09-13
|
|
10
216
|
|
|
11
217
|
Adopts upstream runtime **`v0.6.16` → `v0.6.18`**, stepping through the
|
|
@@ -528,8 +734,10 @@ could make a later CLI copy-out overwrite an arbitrary host file — the SDK
|
|
|
528
734
|
|
|
529
735
|
Ruby bindings for the additive `v0.6.6` SDK surface (upstream #1099 / #1128),
|
|
530
736
|
bringing the gem to parity with the Python and Node SDKs, which already ship
|
|
531
|
-
this API.
|
|
532
|
-
|
|
737
|
+
this API. This release also adopts the upstream runtime **`v0.6.3` →
|
|
738
|
+
`v0.6.6`**: that work was prepared as `0.9.3`, which was never tagged or
|
|
739
|
+
published, so the runtime bump and the bindings for its new surface first
|
|
740
|
+
shipped together here. Neither part is a breaking change.
|
|
533
741
|
|
|
534
742
|
### Added
|
|
535
743
|
|
|
@@ -562,16 +770,18 @@ Deliberately **not** exposed, matching the Python and Node SDKs (both surface
|
|
|
562
770
|
these only through the CLI): `modify`'s `oci_upper_size` overlay-grow field, and
|
|
563
771
|
the `SandboxMetricsReport` / per-sandbox metrics-report helpers.
|
|
564
772
|
|
|
565
|
-
|
|
773
|
+
### Runtime adoption v0.6.3 → v0.6.6 (prepared as 0.9.3, first released in 0.10.0)
|
|
774
|
+
|
|
775
|
+
`0.9.3` was never tagged or published; everything below shipped in `0.10.0`.
|
|
566
776
|
|
|
567
777
|
Adopts upstream runtime **`v0.6.3` → `v0.6.6`** (spanning upstream `v0.6.4` and
|
|
568
778
|
`v0.6.6`; `v0.6.5` was yanked upstream — its GitHub release was pulled and the
|
|
569
779
|
type-model refactor it shipped, #1014, was reverted in `v0.6.6`, #1143). The
|
|
570
780
|
upstream SDK crate's public API grew only *additive* surface (live
|
|
571
|
-
modify/resize, ping/touch
|
|
572
|
-
|
|
781
|
+
modify/resize, ping/touch). The Ruby bindings for it are the `### Added`
|
|
782
|
+
entries above.
|
|
573
783
|
|
|
574
|
-
|
|
784
|
+
#### Fixed
|
|
575
785
|
|
|
576
786
|
- **Snapshot restore survives upstream tag republishes** (upstream #1130):
|
|
577
787
|
restore now pulls the OCI image by its pinned manifest digest
|
|
@@ -591,7 +801,7 @@ so this is a pure runtime bump with no Ruby API change.
|
|
|
591
801
|
- **Filesystem snapshot `readdir` streams entries** (upstream #1133), fixing
|
|
592
802
|
unbounded memory growth (RSS leak) when listing very large directories.
|
|
593
803
|
|
|
594
|
-
|
|
804
|
+
#### Changed
|
|
595
805
|
|
|
596
806
|
- **Embedded runtime is now `v0.6.6`** (`Microsandbox::RUNTIME_VERSION` /
|
|
597
807
|
`Microsandbox.runtime_version`). Also inherited:
|
|
@@ -1260,8 +1470,19 @@ microsandbox runtime, aligned with the official Python/Node/Go SDKs.
|
|
|
1260
1470
|
core crate has Apple-native deps). Until precompiled gems are published,
|
|
1261
1471
|
installing from source requires a Rust toolchain (stable >= 1.91).
|
|
1262
1472
|
|
|
1263
|
-
[Unreleased]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.
|
|
1473
|
+
[Unreleased]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.17.2...HEAD
|
|
1474
|
+
[0.17.2]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.17.1...v0.17.2
|
|
1475
|
+
[0.17.1]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.17.0...v0.17.1
|
|
1476
|
+
[0.17.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.16.0...v0.17.0
|
|
1477
|
+
[0.16.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.15.0...v0.16.0
|
|
1478
|
+
[0.15.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.14.0...v0.15.0
|
|
1264
1479
|
[0.14.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.13.0...v0.14.0
|
|
1480
|
+
[0.13.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.12.0...v0.13.0
|
|
1481
|
+
[0.12.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.11.0...v0.12.0
|
|
1482
|
+
[0.11.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.10.0...v0.11.0
|
|
1483
|
+
[0.10.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.9.2...v0.10.0
|
|
1484
|
+
[0.9.2]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.9.1...v0.9.2
|
|
1485
|
+
[0.9.1]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.9.0...v0.9.1
|
|
1265
1486
|
[0.9.0]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.8.2...v0.9.0
|
|
1266
1487
|
[0.8.2]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.8.1...v0.8.2
|
|
1267
1488
|
[0.8.1]: https://github.com/ya-luotao/microsandbox-rb/compare/v0.8.0...v0.8.1
|
data/Cargo.lock
CHANGED
|
@@ -169,9 +169,9 @@ dependencies = [
|
|
|
169
169
|
|
|
170
170
|
[[package]]
|
|
171
171
|
name = "anyhow"
|
|
172
|
-
version = "1.0.
|
|
172
|
+
version = "1.0.104"
|
|
173
173
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
174
|
-
checksum = "
|
|
174
|
+
checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
|
|
175
175
|
|
|
176
176
|
[[package]]
|
|
177
177
|
name = "argon2"
|
|
@@ -249,7 +249,7 @@ checksum = "b9552f96391c005e6ab449fa941420935e7e062489b12b8b1b08879b2163f5b5"
|
|
|
249
249
|
dependencies = [
|
|
250
250
|
"bytes",
|
|
251
251
|
"half",
|
|
252
|
-
"num-bigint",
|
|
252
|
+
"num-bigint 0.4.6",
|
|
253
253
|
"num-traits",
|
|
254
254
|
]
|
|
255
255
|
|
|
@@ -579,9 +579,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
|
579
579
|
|
|
580
580
|
[[package]]
|
|
581
581
|
name = "aws-lc-rs"
|
|
582
|
-
version = "1.
|
|
582
|
+
version = "1.18.1"
|
|
583
583
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
584
|
-
checksum = "
|
|
584
|
+
checksum = "b281d307588d634de920874890732659e2e7672f72b5e10e81badc1a8a83621e"
|
|
585
585
|
dependencies = [
|
|
586
586
|
"aws-lc-sys",
|
|
587
587
|
"untrusted 0.7.1",
|
|
@@ -590,14 +590,15 @@ dependencies = [
|
|
|
590
590
|
|
|
591
591
|
[[package]]
|
|
592
592
|
name = "aws-lc-sys"
|
|
593
|
-
version = "0.
|
|
593
|
+
version = "0.45.0"
|
|
594
594
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
595
|
-
checksum = "
|
|
595
|
+
checksum = "9bff6c3b54fad79a2e60b8102caf565819711497c1f5f092f49508e2f5c31b27"
|
|
596
596
|
dependencies = [
|
|
597
597
|
"cc",
|
|
598
598
|
"cmake",
|
|
599
599
|
"dunce",
|
|
600
600
|
"fs_extra",
|
|
601
|
+
"pkg-config",
|
|
601
602
|
]
|
|
602
603
|
|
|
603
604
|
[[package]]
|
|
@@ -643,7 +644,7 @@ checksum = "4d6867f1565b3aad85681f1015055b087fcfd840d6aeee6eee7f2da317603695"
|
|
|
643
644
|
dependencies = [
|
|
644
645
|
"autocfg",
|
|
645
646
|
"libm",
|
|
646
|
-
"num-bigint",
|
|
647
|
+
"num-bigint 0.4.6",
|
|
647
648
|
"num-integer",
|
|
648
649
|
"num-traits",
|
|
649
650
|
"serde",
|
|
@@ -1614,7 +1615,7 @@ dependencies = [
|
|
|
1614
1615
|
"asn1-rs",
|
|
1615
1616
|
"displaydoc",
|
|
1616
1617
|
"nom",
|
|
1617
|
-
"num-bigint",
|
|
1618
|
+
"num-bigint 0.4.6",
|
|
1618
1619
|
"num-traits",
|
|
1619
1620
|
"rusticata-macros",
|
|
1620
1621
|
]
|
|
@@ -1922,7 +1923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1922
1923
|
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
1923
1924
|
dependencies = [
|
|
1924
1925
|
"libc",
|
|
1925
|
-
"windows-sys 0.
|
|
1926
|
+
"windows-sys 0.52.0",
|
|
1926
1927
|
]
|
|
1927
1928
|
|
|
1928
1929
|
[[package]]
|
|
@@ -1937,11 +1938,10 @@ dependencies = [
|
|
|
1937
1938
|
|
|
1938
1939
|
[[package]]
|
|
1939
1940
|
name = "event-listener"
|
|
1940
|
-
version = "5.4.
|
|
1941
|
+
version = "5.4.2"
|
|
1941
1942
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1942
|
-
checksum = "
|
|
1943
|
+
checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2"
|
|
1943
1944
|
dependencies = [
|
|
1944
|
-
"concurrent-queue",
|
|
1945
1945
|
"parking",
|
|
1946
1946
|
"pin-project-lite",
|
|
1947
1947
|
]
|
|
@@ -2051,7 +2051,7 @@ checksum = "94e7099f6313ecacbe1256e8ff9d617b75d1bcb16a6fddef94866d225a01a14a"
|
|
|
2051
2051
|
dependencies = [
|
|
2052
2052
|
"io-lifetimes 2.0.4",
|
|
2053
2053
|
"rustix",
|
|
2054
|
-
"windows-sys 0.
|
|
2054
|
+
"windows-sys 0.52.0",
|
|
2055
2055
|
]
|
|
2056
2056
|
|
|
2057
2057
|
[[package]]
|
|
@@ -2300,9 +2300,9 @@ dependencies = [
|
|
|
2300
2300
|
|
|
2301
2301
|
[[package]]
|
|
2302
2302
|
name = "h2"
|
|
2303
|
-
version = "0.4.
|
|
2303
|
+
version = "0.4.16"
|
|
2304
2304
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2305
|
-
checksum = "
|
|
2305
|
+
checksum = "a9f37a958b41b3b19ee2707c06439c0e9e547e847223eb791ecb0cb821c65e27"
|
|
2306
2306
|
dependencies = [
|
|
2307
2307
|
"atomic-waker",
|
|
2308
2308
|
"bytes",
|
|
@@ -2851,18 +2851,6 @@ dependencies = [
|
|
|
2851
2851
|
"hybrid-array",
|
|
2852
2852
|
]
|
|
2853
2853
|
|
|
2854
|
-
[[package]]
|
|
2855
|
-
name = "internal-russh-num-bigint"
|
|
2856
|
-
version = "0.5.0"
|
|
2857
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2858
|
-
checksum = "ae8e22120c32fb4d19ec55fba35015f57095cd95a2e3b732e44457f5915b2ee8"
|
|
2859
|
-
dependencies = [
|
|
2860
|
-
"num-integer",
|
|
2861
|
-
"num-traits",
|
|
2862
|
-
"rand 0.10.2",
|
|
2863
|
-
"rand_core 0.10.1",
|
|
2864
|
-
]
|
|
2865
|
-
|
|
2866
2854
|
[[package]]
|
|
2867
2855
|
name = "io-extras"
|
|
2868
2856
|
version = "0.19.0"
|
|
@@ -2870,7 +2858,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
2870
2858
|
checksum = "20fd6de4ccfcc187e38bc21cfa543cb5a302cb86a8b114eb7f0bf0dc9f8ac00f"
|
|
2871
2859
|
dependencies = [
|
|
2872
2860
|
"io-lifetimes 3.0.1",
|
|
2873
|
-
"windows-sys 0.
|
|
2861
|
+
"windows-sys 0.52.0",
|
|
2874
2862
|
]
|
|
2875
2863
|
|
|
2876
2864
|
[[package]]
|
|
@@ -3672,7 +3660,7 @@ dependencies = [
|
|
|
3672
3660
|
|
|
3673
3661
|
[[package]]
|
|
3674
3662
|
name = "microsandbox_rb"
|
|
3675
|
-
version = "0.17.
|
|
3663
|
+
version = "0.17.2"
|
|
3676
3664
|
dependencies = [
|
|
3677
3665
|
"chrono",
|
|
3678
3666
|
"futures",
|
|
@@ -4033,7 +4021,7 @@ version = "0.4.3"
|
|
|
4033
4021
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4034
4022
|
checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
|
|
4035
4023
|
dependencies = [
|
|
4036
|
-
"num-bigint",
|
|
4024
|
+
"num-bigint 0.4.6",
|
|
4037
4025
|
"num-complex",
|
|
4038
4026
|
"num-integer",
|
|
4039
4027
|
"num-iter",
|
|
@@ -4051,6 +4039,18 @@ dependencies = [
|
|
|
4051
4039
|
"num-traits",
|
|
4052
4040
|
]
|
|
4053
4041
|
|
|
4042
|
+
[[package]]
|
|
4043
|
+
name = "num-bigint"
|
|
4044
|
+
version = "0.5.1"
|
|
4045
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4046
|
+
checksum = "93e7820bc0a80a0238e650327316f929ba18d5be054b647490a3a6a339f3e7c0"
|
|
4047
|
+
dependencies = [
|
|
4048
|
+
"num-integer",
|
|
4049
|
+
"num-traits",
|
|
4050
|
+
"rand 0.10.2",
|
|
4051
|
+
"rand_core 0.10.1",
|
|
4052
|
+
]
|
|
4053
|
+
|
|
4054
4054
|
[[package]]
|
|
4055
4055
|
name = "num-complex"
|
|
4056
4056
|
version = "0.4.6"
|
|
@@ -4092,7 +4092,7 @@ version = "0.4.2"
|
|
|
4092
4092
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4093
4093
|
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
|
|
4094
4094
|
dependencies = [
|
|
4095
|
-
"num-bigint",
|
|
4095
|
+
"num-bigint 0.4.6",
|
|
4096
4096
|
"num-integer",
|
|
4097
4097
|
"num-traits",
|
|
4098
4098
|
]
|
|
@@ -4733,7 +4733,7 @@ dependencies = [
|
|
|
4733
4733
|
"once_cell",
|
|
4734
4734
|
"socket2",
|
|
4735
4735
|
"tracing",
|
|
4736
|
-
"windows-sys 0.
|
|
4736
|
+
"windows-sys 0.52.0",
|
|
4737
4737
|
]
|
|
4738
4738
|
|
|
4739
4739
|
[[package]]
|
|
@@ -5106,9 +5106,9 @@ dependencies = [
|
|
|
5106
5106
|
|
|
5107
5107
|
[[package]]
|
|
5108
5108
|
name = "russh"
|
|
5109
|
-
version = "0.63.
|
|
5109
|
+
version = "0.63.3"
|
|
5110
5110
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5111
|
-
checksum = "
|
|
5111
|
+
checksum = "036204edbd199552a5b3832f63c60dcdf395dc44c7f06b4af1c0e8139cc11bce"
|
|
5112
5112
|
dependencies = [
|
|
5113
5113
|
"aes 0.9.1",
|
|
5114
5114
|
"aws-lc-rs",
|
|
@@ -5137,13 +5137,12 @@ dependencies = [
|
|
|
5137
5137
|
"hex-literal",
|
|
5138
5138
|
"hmac 0.13.0",
|
|
5139
5139
|
"inout 0.2.2",
|
|
5140
|
-
"internal-russh-num-bigint",
|
|
5141
5140
|
"keccak",
|
|
5142
5141
|
"log",
|
|
5143
5142
|
"md5",
|
|
5144
5143
|
"ml-kem",
|
|
5145
5144
|
"module-lattice",
|
|
5146
|
-
"num-bigint",
|
|
5145
|
+
"num-bigint 0.5.1",
|
|
5147
5146
|
"p256",
|
|
5148
5147
|
"p384",
|
|
5149
5148
|
"p521",
|
|
@@ -5271,7 +5270,7 @@ dependencies = [
|
|
|
5271
5270
|
"errno",
|
|
5272
5271
|
"libc",
|
|
5273
5272
|
"linux-raw-sys",
|
|
5274
|
-
"windows-sys 0.
|
|
5273
|
+
"windows-sys 0.52.0",
|
|
5275
5274
|
]
|
|
5276
5275
|
|
|
5277
5276
|
[[package]]
|
|
@@ -5286,9 +5285,9 @@ dependencies = [
|
|
|
5286
5285
|
|
|
5287
5286
|
[[package]]
|
|
5288
5287
|
name = "rustls"
|
|
5289
|
-
version = "0.23.
|
|
5288
|
+
version = "0.23.45"
|
|
5290
5289
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5291
|
-
checksum = "
|
|
5290
|
+
checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
|
|
5292
5291
|
dependencies = [
|
|
5293
5292
|
"aws-lc-rs",
|
|
5294
5293
|
"log",
|
|
@@ -5340,7 +5339,7 @@ dependencies = [
|
|
|
5340
5339
|
"security-framework 3.7.0",
|
|
5341
5340
|
"security-framework-sys",
|
|
5342
5341
|
"webpki-root-certs",
|
|
5343
|
-
"windows-sys 0.
|
|
5342
|
+
"windows-sys 0.52.0",
|
|
5344
5343
|
]
|
|
5345
5344
|
|
|
5346
5345
|
[[package]]
|
|
@@ -5351,9 +5350,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
|
|
|
5351
5350
|
|
|
5352
5351
|
[[package]]
|
|
5353
5352
|
name = "rustls-webpki"
|
|
5354
|
-
version = "0.103.
|
|
5353
|
+
version = "0.103.15"
|
|
5355
5354
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5356
|
-
checksum = "
|
|
5355
|
+
checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
|
|
5357
5356
|
dependencies = [
|
|
5358
5357
|
"aws-lc-rs",
|
|
5359
5358
|
"ring",
|
|
@@ -6414,7 +6413,7 @@ dependencies = [
|
|
|
6414
6413
|
"getrandom 0.4.2",
|
|
6415
6414
|
"once_cell",
|
|
6416
6415
|
"rustix",
|
|
6417
|
-
"windows-sys 0.
|
|
6416
|
+
"windows-sys 0.52.0",
|
|
6418
6417
|
]
|
|
6419
6418
|
|
|
6420
6419
|
[[package]]
|
|
@@ -7211,7 +7210,7 @@ version = "0.1.11"
|
|
|
7211
7210
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7212
7211
|
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
7213
7212
|
dependencies = [
|
|
7214
|
-
"windows-sys 0.
|
|
7213
|
+
"windows-sys 0.52.0",
|
|
7215
7214
|
]
|
|
7216
7215
|
|
|
7217
7216
|
[[package]]
|
|
@@ -7522,7 +7521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
7522
7521
|
checksum = "3f3fd376f71958b862e7afb20cfe5a22830e1963462f3a17f49d82a6c1d1f42d"
|
|
7523
7522
|
dependencies = [
|
|
7524
7523
|
"bitflags 2.13.0",
|
|
7525
|
-
"windows-sys 0.
|
|
7524
|
+
"windows-sys 0.52.0",
|
|
7526
7525
|
]
|
|
7527
7526
|
|
|
7528
7527
|
[[package]]
|