kobako 0.7.0-x86_64-linux → 0.8.0-x86_64-linux
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/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +13 -0
- data/README.md +23 -0
- data/data/kobako.wasm +0 -0
- data/lib/kobako/3.3/kobako.so +0 -0
- data/lib/kobako/3.4/kobako.so +0 -0
- data/lib/kobako/4.0/kobako.so +0 -0
- data/lib/kobako/version.rb +1 -1
- data/release-please-config.json +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1c66fd38850a7eed0502b22a5e420f994c3059fa81efcc012bb4e84c4688fea5
|
|
4
|
+
data.tar.gz: c9d934c25f4c62ee1c82badfbd7b747bd08eeabb605f1df8e0c49cad479a4873
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 884059fc573ed478418759824941303b4e6f18abf6a2c642130301ec32394f92d1c4e6a353987095743ef87de69b5986606b4ce341d725527831fe4258c6403d
|
|
7
|
+
data.tar.gz: afcc88c2261aee4e61ac22b7243671c1762e94ecfc2d6d6fe98171f7398e8e04e48d3f0eaccb50da131e709ba4565f7f4b727e3dd3649fe691adb2b05b38c807
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{".":"0.
|
|
1
|
+
{".":"0.8.0","wasm/kobako-core":"0.2.0"}
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.8.0](https://github.com/elct9620/kobako/compare/v0.7.0...v0.8.0) (2026-06-05)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* validate the Guest Binary ABI version at Sandbox construction ([63f22de](https://github.com/elct9620/kobako/commit/63f22deb88dc8acfeae56dccdbf31a7b3650da0d))
|
|
9
|
+
* **wasm:** turn the Guest ABI into a trait + export_guest! macro ([3532dc2](https://github.com/elct9620/kobako/commit/3532dc20521ca8d9dd55bc39f01ff611d9df0d4b))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **build:** track every wasm workspace member in the rebuild check ([3f042a4](https://github.com/elct9620/kobako/commit/3f042a4fe28aa8d8b70bb313f6158e1865a2cbeb))
|
|
15
|
+
|
|
3
16
|
## [0.7.0](https://github.com/elct9620/kobako/compare/v0.6.2...v0.7.0) (2026-06-03)
|
|
4
17
|
|
|
5
18
|
|
data/README.md
CHANGED
|
@@ -283,6 +283,29 @@ sandbox.run(:Greeter, name: "world") # => "hello, world"
|
|
|
283
283
|
|
|
284
284
|
Use the source form for snippets authored in your repo (compile errors fail fast at `#preload`); use the bytecode form when snippets ship as build artifacts from a separate `mrbc` pipeline. Both replay through the same per-invocation path.
|
|
285
285
|
|
|
286
|
+
## Security
|
|
287
|
+
|
|
288
|
+
kobako isolates the guest, but **what it may reach is whatever you `bind`** — and `bind`
|
|
289
|
+
exposes *every* public method of the object. So bind a purpose-built object scoped to the
|
|
290
|
+
task, not a capable one whose other methods leak more than you intend.
|
|
291
|
+
|
|
292
|
+
```ruby
|
|
293
|
+
class ThemeReader # only #color is reachable; AppConfig.secret_key is not
|
|
294
|
+
def color = AppConfig.theme.color
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
sandbox = Kobako::Sandbox.new
|
|
298
|
+
sandbox.define(:Cfg).bind(:Settings, ThemeReader.new) # not: bind(:Settings, AppConfig)
|
|
299
|
+
|
|
300
|
+
sandbox.eval('Cfg::Settings.color') # => "#3366ff" — every other method raises NoMethodError
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Guest code can name any `<Namespace>::<Member>` path, but a forged name only resolves to
|
|
304
|
+
something you bound — the real authorization gate is this host-side allowlist. Give each
|
|
305
|
+
trust context its own Sandbox, and see [`docs/security.md`](docs/security.md) for the rest
|
|
306
|
+
as security-design concerns: validating untrusted input, default-deny external effects,
|
|
307
|
+
and controlling the return surface.
|
|
308
|
+
|
|
286
309
|
## Performance
|
|
287
310
|
|
|
288
311
|
Order-of-magnitude figures on macOS arm64, Ruby 3.4.7, YJIT off. Absolute values vary by hardware but ratios are stable across machines. Full numbers, methodology, and the +10%-regression gate live in [`benchmark/README.md`](benchmark/README.md).
|
data/data/kobako.wasm
CHANGED
|
Binary file
|
data/lib/kobako/3.3/kobako.so
CHANGED
|
Binary file
|
data/lib/kobako/3.4/kobako.so
CHANGED
|
Binary file
|
data/lib/kobako/4.0/kobako.so
CHANGED
|
Binary file
|
data/lib/kobako/version.rb
CHANGED
data/release-please-config.json
CHANGED
|
@@ -7,6 +7,17 @@
|
|
|
7
7
|
"component": "kobako",
|
|
8
8
|
"include-component-in-tag": false,
|
|
9
9
|
"release-type": "ruby"
|
|
10
|
+
},
|
|
11
|
+
"wasm/kobako-core": {
|
|
12
|
+
"component": "kobako-core",
|
|
13
|
+
"release-type": "rust",
|
|
14
|
+
"extra-files": [
|
|
15
|
+
{
|
|
16
|
+
"type": "toml",
|
|
17
|
+
"path": "/wasm/Cargo.lock",
|
|
18
|
+
"jsonpath": "$.package[?(@.name=='kobako-core')].version"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
10
21
|
}
|
|
11
22
|
},
|
|
12
23
|
"extra-files": [
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kobako
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: x86_64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Aotokitsuruya
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|