kobako 0.5.0-aarch64-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 +7 -0
- data/.release-please-manifest.json +1 -0
- data/CHANGELOG.md +29 -0
- data/LICENSE +201 -0
- data/README.md +408 -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/capture.rb +43 -0
- data/lib/kobako/catalog/handles.rb +107 -0
- data/lib/kobako/catalog/namespaces.rb +99 -0
- data/lib/kobako/catalog/snippets.rb +149 -0
- data/lib/kobako/catalog.rb +18 -0
- data/lib/kobako/codec/decoder.rb +73 -0
- data/lib/kobako/codec/encoder.rb +37 -0
- data/lib/kobako/codec/error.rb +34 -0
- data/lib/kobako/codec/factory.rb +162 -0
- data/lib/kobako/codec/utils.rb +145 -0
- data/lib/kobako/codec.rb +31 -0
- data/lib/kobako/errors.rb +140 -0
- data/lib/kobako/fault.rb +40 -0
- data/lib/kobako/handle.rb +60 -0
- data/lib/kobako/namespace.rb +67 -0
- data/lib/kobako/outcome/panic.rb +42 -0
- data/lib/kobako/outcome.rb +166 -0
- data/lib/kobako/runtime.rb +30 -0
- data/lib/kobako/sandbox.rb +314 -0
- data/lib/kobako/sandbox_options.rb +70 -0
- data/lib/kobako/snapshot.rb +40 -0
- data/lib/kobako/snippet/binary.rb +29 -0
- data/lib/kobako/snippet/source.rb +28 -0
- data/lib/kobako/snippet.rb +18 -0
- data/lib/kobako/transport/dispatcher.rb +195 -0
- data/lib/kobako/transport/error.rb +24 -0
- data/lib/kobako/transport/request.rb +78 -0
- data/lib/kobako/transport/response.rb +69 -0
- data/lib/kobako/transport/run.rb +141 -0
- data/lib/kobako/transport/yield.rb +91 -0
- data/lib/kobako/transport/yielder.rb +89 -0
- data/lib/kobako/transport.rb +24 -0
- data/lib/kobako/usage.rb +41 -0
- data/lib/kobako/version.rb +5 -0
- data/lib/kobako.rb +10 -0
- data/release-please-config.json +24 -0
- data/sig/kobako/capture.rbs +11 -0
- data/sig/kobako/catalog/handles.rbs +19 -0
- data/sig/kobako/catalog/namespaces.rbs +17 -0
- data/sig/kobako/catalog/snippets.rbs +27 -0
- data/sig/kobako/catalog.rbs +4 -0
- data/sig/kobako/codec/decoder.rbs +12 -0
- data/sig/kobako/codec/encoder.rbs +7 -0
- data/sig/kobako/codec/error.rbs +18 -0
- data/sig/kobako/codec/factory.rbs +31 -0
- data/sig/kobako/codec/utils.rbs +19 -0
- data/sig/kobako/errors.rbs +55 -0
- data/sig/kobako/fault.rbs +19 -0
- data/sig/kobako/handle.rbs +18 -0
- data/sig/kobako/namespace.rbs +19 -0
- data/sig/kobako/outcome/panic.rbs +34 -0
- data/sig/kobako/outcome.rbs +24 -0
- data/sig/kobako/runtime.rbs +23 -0
- data/sig/kobako/sandbox.rbs +55 -0
- data/sig/kobako/sandbox_options.rbs +32 -0
- data/sig/kobako/snapshot.rbs +15 -0
- data/sig/kobako/snippet/binary.rbs +12 -0
- data/sig/kobako/snippet/source.rbs +13 -0
- data/sig/kobako/snippet.rbs +4 -0
- data/sig/kobako/transport/dispatcher.rbs +34 -0
- data/sig/kobako/transport/error.rbs +6 -0
- data/sig/kobako/transport/request.rbs +32 -0
- data/sig/kobako/transport/response.rbs +30 -0
- data/sig/kobako/transport/run.rbs +27 -0
- data/sig/kobako/transport/yield.rbs +34 -0
- data/sig/kobako/transport/yielder.rbs +21 -0
- data/sig/kobako/transport.rbs +4 -0
- data/sig/kobako/usage.rbs +11 -0
- data/sig/kobako.rbs +3 -0
- metadata +145 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
class Snapshot
|
|
3
|
+
def return_bytes: () -> String
|
|
4
|
+
def stdout_bytes: () -> String
|
|
5
|
+
def stdout_truncated: () -> bool
|
|
6
|
+
def stderr_bytes: () -> String
|
|
7
|
+
def stderr_truncated: () -> bool
|
|
8
|
+
def wall_time: () -> Float
|
|
9
|
+
def memory_peak: () -> Integer
|
|
10
|
+
|
|
11
|
+
def stdout: () -> Kobako::Capture
|
|
12
|
+
def stderr: () -> Kobako::Capture
|
|
13
|
+
def usage: () -> Kobako::Usage
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
module Dispatcher
|
|
4
|
+
class UndefinedTargetError < StandardError
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
BREAK_THROW: Symbol
|
|
8
|
+
|
|
9
|
+
def self?.dispatch: (String request_bytes, Kobako::Catalog::Namespaces namespaces, Kobako::Catalog::Handles handler, ^(String) -> String yield_to_guest) -> String
|
|
10
|
+
|
|
11
|
+
def self?.resolve_call_args: (Kobako::Transport::Request request, Kobako::Catalog::Handles handler) -> [Array[untyped], Hash[Symbol, untyped]]
|
|
12
|
+
|
|
13
|
+
def self?.encode_caught_error: (StandardError error) -> String
|
|
14
|
+
|
|
15
|
+
def self?.invoke: (untyped target, String method, Array[untyped] args, Hash[Symbol, untyped] kwargs, ?Kobako::Transport::Yielder? yielder) -> untyped
|
|
16
|
+
|
|
17
|
+
def self?.resolve_arg: (untyped value, Kobako::Catalog::Handles handler) -> untyped
|
|
18
|
+
|
|
19
|
+
def self?.resolve_target: (String | Kobako::Handle target, Kobako::Catalog::Namespaces namespaces, Kobako::Catalog::Handles handler) -> untyped
|
|
20
|
+
|
|
21
|
+
def self?.resolve_path: (String path, Kobako::Catalog::Namespaces namespaces) -> untyped
|
|
22
|
+
|
|
23
|
+
def self?.resolve_handle: (Kobako::Handle handle, Kobako::Catalog::Handles handler) -> untyped
|
|
24
|
+
|
|
25
|
+
def self?.require_live_object!: (Integer id, Kobako::Catalog::Handles handler) -> untyped
|
|
26
|
+
|
|
27
|
+
def self?.encode_ok: (untyped value, Kobako::Catalog::Handles handler) -> String
|
|
28
|
+
|
|
29
|
+
def self?.wrap_as_handle: (untyped value, Kobako::Catalog::Handles handler) -> Kobako::Handle
|
|
30
|
+
|
|
31
|
+
def self?.encode_error: (String type, String message) -> String
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
STATUS_OK: Integer
|
|
4
|
+
STATUS_ERROR: Integer
|
|
5
|
+
|
|
6
|
+
class Request < Data
|
|
7
|
+
attr_reader target: String | Kobako::Handle
|
|
8
|
+
attr_reader method_name: String
|
|
9
|
+
attr_reader args: Array[untyped]
|
|
10
|
+
attr_reader kwargs: Hash[Symbol, untyped]
|
|
11
|
+
attr_reader block_given: bool
|
|
12
|
+
|
|
13
|
+
def self.new: (target: String | Kobako::Handle, method_name: String, ?args: Array[untyped], ?kwargs: Hash[Symbol, untyped], ?block_given: bool) -> Request
|
|
14
|
+
|
|
15
|
+
def self.decode: (String bytes) -> Request
|
|
16
|
+
|
|
17
|
+
def initialize: (target: String | Kobako::Handle, method_name: String, ?args: Array[untyped], ?kwargs: Hash[Symbol, untyped], ?block_given: bool) -> void
|
|
18
|
+
|
|
19
|
+
def encode: () -> String
|
|
20
|
+
|
|
21
|
+
def with: (?target: String | Kobako::Handle, ?method_name: String, ?args: Array[untyped], ?kwargs: Hash[Symbol, untyped], ?block_given: bool) -> Request
|
|
22
|
+
|
|
23
|
+
def ==: (untyped other) -> bool
|
|
24
|
+
|
|
25
|
+
def hash: () -> Integer
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def validate_kwargs!: (Hash[untyped, untyped] kwargs) -> void
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
class Response < Data
|
|
4
|
+
attr_reader status: Integer
|
|
5
|
+
attr_reader payload: untyped
|
|
6
|
+
|
|
7
|
+
def self.ok: (untyped value) -> Response
|
|
8
|
+
|
|
9
|
+
def self.error: (Kobako::Fault fault) -> Response
|
|
10
|
+
|
|
11
|
+
def self.decode: (String bytes) -> Response
|
|
12
|
+
|
|
13
|
+
def self.new: (status: Integer, payload: untyped) -> Response
|
|
14
|
+
|
|
15
|
+
def initialize: (status: Integer, payload: untyped) -> void
|
|
16
|
+
|
|
17
|
+
def with: (?status: Integer, ?payload: untyped) -> Response
|
|
18
|
+
|
|
19
|
+
def ok?: () -> bool
|
|
20
|
+
|
|
21
|
+
def error?: () -> bool
|
|
22
|
+
|
|
23
|
+
def encode: () -> String
|
|
24
|
+
|
|
25
|
+
def ==: (untyped other) -> bool
|
|
26
|
+
|
|
27
|
+
def hash: () -> Integer
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
class Run < Data
|
|
4
|
+
NAME_PATTERN: Regexp
|
|
5
|
+
|
|
6
|
+
attr_reader entrypoint: Symbol
|
|
7
|
+
attr_reader args: Array[untyped]
|
|
8
|
+
attr_reader kwargs: Hash[Symbol, untyped]
|
|
9
|
+
|
|
10
|
+
def self.new: (entrypoint: Symbol | String, ?args: Array[untyped], ?kwargs: Hash[untyped, untyped]) -> Run
|
|
11
|
+
|
|
12
|
+
def initialize: (entrypoint: Symbol | String, ?args: Array[untyped], ?kwargs: Hash[untyped, untyped]) -> void
|
|
13
|
+
|
|
14
|
+
def encode: (Kobako::Catalog::Handles handler) -> String
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def normalize_entrypoint: (Symbol | String target) -> Symbol
|
|
19
|
+
|
|
20
|
+
def validate_args!: (Array[untyped] args) -> Array[untyped]
|
|
21
|
+
|
|
22
|
+
def validate_kwargs!: (Hash[untyped, untyped] kwargs) -> Hash[Symbol, untyped]
|
|
23
|
+
|
|
24
|
+
def forged_handle_message: (String slot) -> String
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
TAG_OK: Integer
|
|
4
|
+
TAG_BREAK: Integer
|
|
5
|
+
TAG_RESERVED: Integer
|
|
6
|
+
TAG_ERROR: Integer
|
|
7
|
+
LIVE_TAGS: Array[Integer]
|
|
8
|
+
|
|
9
|
+
class Yield
|
|
10
|
+
attr_reader tag: Integer
|
|
11
|
+
attr_reader value: untyped
|
|
12
|
+
|
|
13
|
+
def self.decode: (String bytes) -> Yield
|
|
14
|
+
|
|
15
|
+
def self.reject_dead_tag!: (Integer tag) -> void
|
|
16
|
+
|
|
17
|
+
def initialize: (tag: Integer, value: untyped) -> void
|
|
18
|
+
|
|
19
|
+
def with: (?tag: Integer, ?value: untyped) -> Yield
|
|
20
|
+
|
|
21
|
+
def ok?: () -> bool
|
|
22
|
+
|
|
23
|
+
def break?: () -> bool
|
|
24
|
+
|
|
25
|
+
def error?: () -> bool
|
|
26
|
+
|
|
27
|
+
def encode: () -> String
|
|
28
|
+
|
|
29
|
+
def ==: (untyped other) -> bool
|
|
30
|
+
|
|
31
|
+
def hash: () -> Integer
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
module Transport
|
|
3
|
+
class Yielder
|
|
4
|
+
@yield_to_guest: ^(String) -> String
|
|
5
|
+
@break_tag: Symbol
|
|
6
|
+
@active: bool
|
|
7
|
+
|
|
8
|
+
def initialize: (^(String) -> String yield_to_guest, Symbol break_tag) -> void
|
|
9
|
+
|
|
10
|
+
def yield: (*untyped args) -> untyped
|
|
11
|
+
|
|
12
|
+
def to_proc: () -> Proc
|
|
13
|
+
|
|
14
|
+
def invalidate!: () -> void
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def yield_failure: (untyped payload, default: String) -> RuntimeError
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/sig/kobako.rbs
ADDED
metadata
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: kobako
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.5.0
|
|
5
|
+
platform: aarch64-linux
|
|
6
|
+
authors:
|
|
7
|
+
- Aotokitsuruya
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-05-27 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: msgpack
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.7'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.7'
|
|
27
|
+
description: kobako provides an in-process Wasm sandbox (wasmtime + mruby) with a
|
|
28
|
+
MessagePack-based host/guest RPC, allowing Ruby applications to execute untrusted
|
|
29
|
+
mruby scripts under capability-based Service injection.
|
|
30
|
+
email:
|
|
31
|
+
- contact@aotoki.me
|
|
32
|
+
executables: []
|
|
33
|
+
extensions: []
|
|
34
|
+
extra_rdoc_files: []
|
|
35
|
+
files:
|
|
36
|
+
- ".release-please-manifest.json"
|
|
37
|
+
- CHANGELOG.md
|
|
38
|
+
- LICENSE
|
|
39
|
+
- README.md
|
|
40
|
+
- data/kobako.wasm
|
|
41
|
+
- lib/kobako.rb
|
|
42
|
+
- lib/kobako/3.3/kobako.so
|
|
43
|
+
- lib/kobako/3.4/kobako.so
|
|
44
|
+
- lib/kobako/4.0/kobako.so
|
|
45
|
+
- lib/kobako/capture.rb
|
|
46
|
+
- lib/kobako/catalog.rb
|
|
47
|
+
- lib/kobako/catalog/handles.rb
|
|
48
|
+
- lib/kobako/catalog/namespaces.rb
|
|
49
|
+
- lib/kobako/catalog/snippets.rb
|
|
50
|
+
- lib/kobako/codec.rb
|
|
51
|
+
- lib/kobako/codec/decoder.rb
|
|
52
|
+
- lib/kobako/codec/encoder.rb
|
|
53
|
+
- lib/kobako/codec/error.rb
|
|
54
|
+
- lib/kobako/codec/factory.rb
|
|
55
|
+
- lib/kobako/codec/utils.rb
|
|
56
|
+
- lib/kobako/errors.rb
|
|
57
|
+
- lib/kobako/fault.rb
|
|
58
|
+
- lib/kobako/handle.rb
|
|
59
|
+
- lib/kobako/namespace.rb
|
|
60
|
+
- lib/kobako/outcome.rb
|
|
61
|
+
- lib/kobako/outcome/panic.rb
|
|
62
|
+
- lib/kobako/runtime.rb
|
|
63
|
+
- lib/kobako/sandbox.rb
|
|
64
|
+
- lib/kobako/sandbox_options.rb
|
|
65
|
+
- lib/kobako/snapshot.rb
|
|
66
|
+
- lib/kobako/snippet.rb
|
|
67
|
+
- lib/kobako/snippet/binary.rb
|
|
68
|
+
- lib/kobako/snippet/source.rb
|
|
69
|
+
- lib/kobako/transport.rb
|
|
70
|
+
- lib/kobako/transport/dispatcher.rb
|
|
71
|
+
- lib/kobako/transport/error.rb
|
|
72
|
+
- lib/kobako/transport/request.rb
|
|
73
|
+
- lib/kobako/transport/response.rb
|
|
74
|
+
- lib/kobako/transport/run.rb
|
|
75
|
+
- lib/kobako/transport/yield.rb
|
|
76
|
+
- lib/kobako/transport/yielder.rb
|
|
77
|
+
- lib/kobako/usage.rb
|
|
78
|
+
- lib/kobako/version.rb
|
|
79
|
+
- release-please-config.json
|
|
80
|
+
- sig/kobako.rbs
|
|
81
|
+
- sig/kobako/capture.rbs
|
|
82
|
+
- sig/kobako/catalog.rbs
|
|
83
|
+
- sig/kobako/catalog/handles.rbs
|
|
84
|
+
- sig/kobako/catalog/namespaces.rbs
|
|
85
|
+
- sig/kobako/catalog/snippets.rbs
|
|
86
|
+
- sig/kobako/codec/decoder.rbs
|
|
87
|
+
- sig/kobako/codec/encoder.rbs
|
|
88
|
+
- sig/kobako/codec/error.rbs
|
|
89
|
+
- sig/kobako/codec/factory.rbs
|
|
90
|
+
- sig/kobako/codec/utils.rbs
|
|
91
|
+
- sig/kobako/errors.rbs
|
|
92
|
+
- sig/kobako/fault.rbs
|
|
93
|
+
- sig/kobako/handle.rbs
|
|
94
|
+
- sig/kobako/namespace.rbs
|
|
95
|
+
- sig/kobako/outcome.rbs
|
|
96
|
+
- sig/kobako/outcome/panic.rbs
|
|
97
|
+
- sig/kobako/runtime.rbs
|
|
98
|
+
- sig/kobako/sandbox.rbs
|
|
99
|
+
- sig/kobako/sandbox_options.rbs
|
|
100
|
+
- sig/kobako/snapshot.rbs
|
|
101
|
+
- sig/kobako/snippet.rbs
|
|
102
|
+
- sig/kobako/snippet/binary.rbs
|
|
103
|
+
- sig/kobako/snippet/source.rbs
|
|
104
|
+
- sig/kobako/transport.rbs
|
|
105
|
+
- sig/kobako/transport/dispatcher.rbs
|
|
106
|
+
- sig/kobako/transport/error.rbs
|
|
107
|
+
- sig/kobako/transport/request.rbs
|
|
108
|
+
- sig/kobako/transport/response.rbs
|
|
109
|
+
- sig/kobako/transport/run.rbs
|
|
110
|
+
- sig/kobako/transport/yield.rbs
|
|
111
|
+
- sig/kobako/transport/yielder.rbs
|
|
112
|
+
- sig/kobako/usage.rbs
|
|
113
|
+
homepage: https://github.com/elct9620/kobako
|
|
114
|
+
licenses:
|
|
115
|
+
- Apache-2.0
|
|
116
|
+
metadata:
|
|
117
|
+
allowed_push_host: https://rubygems.org
|
|
118
|
+
homepage_uri: https://github.com/elct9620/kobako
|
|
119
|
+
source_code_uri: https://github.com/elct9620/kobako
|
|
120
|
+
changelog_uri: https://github.com/elct9620/kobako/blob/main/CHANGELOG.md
|
|
121
|
+
bug_tracker_uri: https://github.com/elct9620/kobako/issues
|
|
122
|
+
rubygems_mfa_required: 'true'
|
|
123
|
+
post_install_message:
|
|
124
|
+
rdoc_options: []
|
|
125
|
+
require_paths:
|
|
126
|
+
- lib
|
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '3.3'
|
|
132
|
+
- - "<"
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: 4.1.dev
|
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
|
+
requirements:
|
|
137
|
+
- - ">="
|
|
138
|
+
- !ruby/object:Gem::Version
|
|
139
|
+
version: 3.3.11
|
|
140
|
+
requirements: []
|
|
141
|
+
rubygems_version: 3.5.23
|
|
142
|
+
signing_key:
|
|
143
|
+
specification_version: 4
|
|
144
|
+
summary: Embeddable Wasm sandbox for running untrusted mruby code from Ruby applications.
|
|
145
|
+
test_files: []
|