kobako 0.4.0 → 0.5.0
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 -0
- data/CHANGELOG.md +29 -0
- data/Cargo.lock +1 -1
- data/README.md +0 -1
- data/data/kobako.wasm +0 -0
- data/ext/kobako/Cargo.toml +1 -1
- data/ext/kobako/src/lib.rs +4 -2
- data/ext/kobako/src/{wasm → runtime}/cache.rs +12 -16
- data/ext/kobako/src/runtime/capture.rs +91 -0
- data/ext/kobako/src/runtime/config.rs +26 -0
- data/ext/kobako/src/runtime/dispatch.rs +211 -0
- data/ext/kobako/src/runtime/exports.rs +51 -0
- data/ext/kobako/src/runtime/guest_mem.rs +228 -0
- data/ext/kobako/src/{wasm/host_state.rs → runtime/invocation.rs} +94 -86
- data/ext/kobako/src/runtime/trap.rs +134 -0
- data/ext/kobako/src/runtime.rs +782 -0
- data/ext/kobako/src/snapshot.rs +110 -0
- data/lib/kobako/capture.rb +11 -16
- data/lib/kobako/catalog/handles.rb +107 -0
- data/lib/kobako/catalog/namespaces.rb +99 -0
- data/lib/kobako/{snippet/table.rb → catalog/snippets.rb} +37 -62
- data/lib/kobako/catalog.rb +18 -0
- data/lib/kobako/codec/decoder.rb +13 -5
- data/lib/kobako/codec/factory.rb +12 -12
- data/lib/kobako/codec/utils.rb +56 -59
- data/lib/kobako/codec.rb +6 -3
- data/lib/kobako/errors.rb +45 -28
- data/lib/kobako/fault.rb +40 -0
- data/lib/kobako/handle.rb +4 -6
- data/lib/kobako/namespace.rb +67 -0
- data/lib/kobako/outcome.rb +31 -35
- data/lib/kobako/runtime.rb +30 -0
- data/lib/kobako/sandbox.rb +83 -72
- data/lib/kobako/sandbox_options.rb +6 -9
- data/lib/kobako/snapshot.rb +40 -0
- data/lib/kobako/snippet/binary.rb +6 -7
- data/lib/kobako/snippet/source.rb +8 -8
- data/lib/kobako/snippet.rb +7 -9
- data/lib/kobako/transport/dispatcher.rb +195 -0
- data/lib/kobako/{rpc/wire_error.rb → transport/error.rb} +7 -6
- 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/version.rb +1 -1
- data/lib/kobako.rb +4 -4
- data/release-please-config.json +24 -0
- data/sig/kobako/capture.rbs +0 -2
- data/sig/kobako/catalog/handles.rbs +19 -0
- data/sig/kobako/catalog/namespaces.rbs +17 -0
- data/sig/kobako/{snippet/table.rbs → catalog/snippets.rbs} +2 -11
- data/sig/kobako/{rpc.rbs → catalog.rbs} +1 -1
- data/sig/kobako/codec/decoder.rbs +2 -1
- data/sig/kobako/codec/factory.rbs +2 -2
- data/sig/kobako/codec/utils.rbs +5 -5
- data/sig/kobako/errors.rbs +7 -7
- data/sig/kobako/fault.rbs +19 -0
- data/sig/kobako/handle.rbs +2 -3
- data/sig/kobako/namespace.rbs +19 -0
- data/sig/kobako/outcome.rbs +2 -2
- data/sig/kobako/runtime.rbs +23 -0
- data/sig/kobako/sandbox.rbs +5 -8
- data/sig/kobako/snapshot.rbs +15 -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
- metadata +48 -30
- data/ext/kobako/src/wasm/dispatch.rs +0 -162
- data/ext/kobako/src/wasm/instance.rs +0 -873
- data/ext/kobako/src/wasm.rs +0 -126
- data/lib/kobako/handle_table.rb +0 -119
- data/lib/kobako/invocation.rb +0 -143
- data/lib/kobako/rpc/dispatcher.rb +0 -171
- data/lib/kobako/rpc/envelope.rb +0 -118
- data/lib/kobako/rpc/fault.rb +0 -41
- data/lib/kobako/rpc/namespace.rb +0 -74
- data/lib/kobako/rpc/server.rb +0 -146
- data/lib/kobako/rpc.rb +0 -11
- data/lib/kobako/wasm.rb +0 -25
- data/sig/kobako/handle_table.rbs +0 -23
- data/sig/kobako/invocation.rbs +0 -25
- data/sig/kobako/rpc/dispatcher.rbs +0 -33
- data/sig/kobako/rpc/envelope.rbs +0 -51
- data/sig/kobako/rpc/fault.rbs +0 -20
- data/sig/kobako/rpc/namespace.rbs +0 -24
- data/sig/kobako/rpc/server.rbs +0 -31
- data/sig/kobako/rpc/wire_error.rbs +0 -6
- data/sig/kobako/wasm.rbs +0 -41
data/sig/kobako/errors.rbs
CHANGED
|
@@ -11,6 +11,12 @@ module Kobako
|
|
|
11
11
|
class MemoryLimitError < TrapError
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
class SetupError < Error
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class ModuleNotBuiltError < SetupError
|
|
18
|
+
end
|
|
19
|
+
|
|
14
20
|
class SandboxError < Error
|
|
15
21
|
attr_reader origin: String?
|
|
16
22
|
attr_reader klass: String?
|
|
@@ -39,15 +45,9 @@ module Kobako
|
|
|
39
45
|
?backtrace_lines: Array[String]?,
|
|
40
46
|
?details: untyped
|
|
41
47
|
) -> void
|
|
42
|
-
|
|
43
|
-
class Disconnected < ServiceError
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
class HandleTableError < SandboxError
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
class
|
|
50
|
+
class HandlerExhaustedError < SandboxError
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
class BytecodeError < SandboxError
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
class Fault < Data
|
|
3
|
+
VALID_TYPES: Array[String]
|
|
4
|
+
|
|
5
|
+
attr_reader type: String
|
|
6
|
+
attr_reader message: String
|
|
7
|
+
attr_reader details: untyped
|
|
8
|
+
|
|
9
|
+
def self.new: (type: String, message: String, ?details: untyped) -> Fault
|
|
10
|
+
|
|
11
|
+
def initialize: (type: String, message: String, ?details: untyped) -> void
|
|
12
|
+
|
|
13
|
+
def with: (?type: String, ?message: String, ?details: untyped) -> Fault
|
|
14
|
+
|
|
15
|
+
def ==: (untyped other) -> bool
|
|
16
|
+
|
|
17
|
+
def hash: () -> Integer
|
|
18
|
+
end
|
|
19
|
+
end
|
data/sig/kobako/handle.rbs
CHANGED
|
@@ -5,10 +5,9 @@ module Kobako
|
|
|
5
5
|
|
|
6
6
|
attr_reader id: Integer
|
|
7
7
|
|
|
8
|
-
def initialize: (Integer
|
|
9
|
-
| (id: Integer) -> void
|
|
8
|
+
def initialize: (id: Integer) -> void
|
|
10
9
|
|
|
11
|
-
def self.
|
|
10
|
+
def self.restore: (Integer id) -> Handle
|
|
12
11
|
|
|
13
12
|
def with: (?id: Integer) -> Handle
|
|
14
13
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
class Namespace
|
|
3
|
+
NAME_PATTERN: Regexp
|
|
4
|
+
|
|
5
|
+
attr_reader name: String
|
|
6
|
+
|
|
7
|
+
def initialize: (String name) -> void
|
|
8
|
+
|
|
9
|
+
def bind: (Symbol | String member, untyped object) -> self
|
|
10
|
+
|
|
11
|
+
def fetch: (Symbol | String member) -> untyped
|
|
12
|
+
|
|
13
|
+
def to_preamble: () -> [String, Array[String]]
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def validate_member_name!: (Symbol | String member) -> String
|
|
18
|
+
end
|
|
19
|
+
end
|
data/sig/kobako/outcome.rbs
CHANGED
|
@@ -13,12 +13,12 @@ module Kobako
|
|
|
13
13
|
|
|
14
14
|
def self?.decode_panic: (String body) -> void
|
|
15
15
|
|
|
16
|
-
def self?.
|
|
16
|
+
def self?.build_panic_record: (String body) -> Panic
|
|
17
17
|
|
|
18
18
|
def self?.build_panic_error: (Panic panic) -> (SandboxError | ServiceError)
|
|
19
19
|
|
|
20
20
|
def self?.panic_target_class: (Panic panic) -> (singleton(SandboxError) | singleton(ServiceError))
|
|
21
21
|
|
|
22
|
-
def self?.
|
|
22
|
+
def self?.build_transport_error: (String message, ?detail: String?) -> Transport::Error
|
|
23
23
|
end
|
|
24
24
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Kobako
|
|
2
|
+
class Runtime
|
|
3
|
+
def self.default_path: () -> String
|
|
4
|
+
|
|
5
|
+
def self.from_path: (
|
|
6
|
+
String path,
|
|
7
|
+
(Float | Integer)? timeout_seconds,
|
|
8
|
+
Integer? memory_limit,
|
|
9
|
+
Integer? stdout_limit_bytes,
|
|
10
|
+
Integer? stderr_limit_bytes
|
|
11
|
+
) -> Runtime
|
|
12
|
+
|
|
13
|
+
def on_dispatch=: (^(String) -> String dispatch_proc) -> void
|
|
14
|
+
|
|
15
|
+
def yield_to_active_invocation: (String args_bytes) -> String
|
|
16
|
+
|
|
17
|
+
def eval: (String preamble, String source, String snippets) -> Kobako::Snapshot
|
|
18
|
+
|
|
19
|
+
def run: (String preamble, String snippets, String envelope) -> Kobako::Snapshot
|
|
20
|
+
|
|
21
|
+
def usage: () -> [Float, Integer]
|
|
22
|
+
end
|
|
23
|
+
end
|
data/sig/kobako/sandbox.rbs
CHANGED
|
@@ -3,10 +3,7 @@ module Kobako
|
|
|
3
3
|
extend Forwardable
|
|
4
4
|
|
|
5
5
|
attr_reader wasm_path: String
|
|
6
|
-
attr_reader instance: Kobako::Wasm::Instance
|
|
7
6
|
attr_reader options: Kobako::SandboxOptions
|
|
8
|
-
attr_reader services: Kobako::RPC::Server
|
|
9
|
-
attr_reader snippets: Kobako::Snippet::Table
|
|
10
7
|
|
|
11
8
|
# Forwarded to @options via Forwardable#def_delegators.
|
|
12
9
|
def timeout: () -> Float?
|
|
@@ -32,7 +29,7 @@ module Kobako
|
|
|
32
29
|
|
|
33
30
|
attr_reader usage: Kobako::Usage
|
|
34
31
|
|
|
35
|
-
def define: (Symbol | String name) -> Kobako::
|
|
32
|
+
def define: (Symbol | String name) -> Kobako::Namespace
|
|
36
33
|
|
|
37
34
|
def preload: (code: String, name: Symbol | String) -> Kobako::Sandbox
|
|
38
35
|
| (binary: String) -> Kobako::Sandbox
|
|
@@ -43,16 +40,16 @@ module Kobako
|
|
|
43
40
|
|
|
44
41
|
private
|
|
45
42
|
|
|
43
|
+
def install_dispatch_proc!: () -> void
|
|
44
|
+
|
|
46
45
|
def reset_invocation_state!: () -> void
|
|
47
46
|
|
|
48
47
|
def begin_invocation!: () -> void
|
|
49
48
|
|
|
50
|
-
def read_captures!: () -> void
|
|
51
|
-
|
|
52
49
|
def read_usage!: () -> void
|
|
53
50
|
|
|
54
|
-
def trap_class_for: (Kobako::
|
|
51
|
+
def trap_class_for: (Kobako::TrapError err) -> singleton(Kobako::TrapError)
|
|
55
52
|
|
|
56
|
-
def invoke!: (Symbol verb) { () ->
|
|
53
|
+
def invoke!: (Symbol verb) { () -> Kobako::Snapshot } -> untyped
|
|
57
54
|
end
|
|
58
55
|
end
|
|
@@ -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
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kobako
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aotokitsuruya
|
|
@@ -29,14 +29,14 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.9.
|
|
32
|
+
version: 0.9.128
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.9.
|
|
39
|
+
version: 0.9.128
|
|
40
40
|
description: kobako provides an in-process Wasm sandbox (wasmtime + mruby) with a
|
|
41
41
|
MessagePack-based host/guest RPC, allowing Ruby applications to execute untrusted
|
|
42
42
|
mruby scripts under capability-based Service injection.
|
|
@@ -47,6 +47,8 @@ extensions:
|
|
|
47
47
|
- ext/kobako/extconf.rb
|
|
48
48
|
extra_rdoc_files: []
|
|
49
49
|
files:
|
|
50
|
+
- ".release-please-manifest.json"
|
|
51
|
+
- CHANGELOG.md
|
|
50
52
|
- Cargo.lock
|
|
51
53
|
- Cargo.toml
|
|
52
54
|
- LICENSE
|
|
@@ -55,13 +57,22 @@ files:
|
|
|
55
57
|
- ext/kobako/Cargo.toml
|
|
56
58
|
- ext/kobako/extconf.rb
|
|
57
59
|
- ext/kobako/src/lib.rs
|
|
58
|
-
- ext/kobako/src/
|
|
59
|
-
- ext/kobako/src/
|
|
60
|
-
- ext/kobako/src/
|
|
61
|
-
- ext/kobako/src/
|
|
62
|
-
- ext/kobako/src/
|
|
60
|
+
- ext/kobako/src/runtime.rs
|
|
61
|
+
- ext/kobako/src/runtime/cache.rs
|
|
62
|
+
- ext/kobako/src/runtime/capture.rs
|
|
63
|
+
- ext/kobako/src/runtime/config.rs
|
|
64
|
+
- ext/kobako/src/runtime/dispatch.rs
|
|
65
|
+
- ext/kobako/src/runtime/exports.rs
|
|
66
|
+
- ext/kobako/src/runtime/guest_mem.rs
|
|
67
|
+
- ext/kobako/src/runtime/invocation.rs
|
|
68
|
+
- ext/kobako/src/runtime/trap.rs
|
|
69
|
+
- ext/kobako/src/snapshot.rs
|
|
63
70
|
- lib/kobako.rb
|
|
64
71
|
- lib/kobako/capture.rb
|
|
72
|
+
- lib/kobako/catalog.rb
|
|
73
|
+
- lib/kobako/catalog/handles.rb
|
|
74
|
+
- lib/kobako/catalog/namespaces.rb
|
|
75
|
+
- lib/kobako/catalog/snippets.rb
|
|
65
76
|
- lib/kobako/codec.rb
|
|
66
77
|
- lib/kobako/codec/decoder.rb
|
|
67
78
|
- lib/kobako/codec/encoder.rb
|
|
@@ -69,55 +80,62 @@ files:
|
|
|
69
80
|
- lib/kobako/codec/factory.rb
|
|
70
81
|
- lib/kobako/codec/utils.rb
|
|
71
82
|
- lib/kobako/errors.rb
|
|
83
|
+
- lib/kobako/fault.rb
|
|
72
84
|
- lib/kobako/handle.rb
|
|
73
|
-
- lib/kobako/
|
|
74
|
-
- lib/kobako/invocation.rb
|
|
85
|
+
- lib/kobako/namespace.rb
|
|
75
86
|
- lib/kobako/outcome.rb
|
|
76
87
|
- lib/kobako/outcome/panic.rb
|
|
77
|
-
- lib/kobako/
|
|
78
|
-
- lib/kobako/rpc/dispatcher.rb
|
|
79
|
-
- lib/kobako/rpc/envelope.rb
|
|
80
|
-
- lib/kobako/rpc/fault.rb
|
|
81
|
-
- lib/kobako/rpc/namespace.rb
|
|
82
|
-
- lib/kobako/rpc/server.rb
|
|
83
|
-
- lib/kobako/rpc/wire_error.rb
|
|
88
|
+
- lib/kobako/runtime.rb
|
|
84
89
|
- lib/kobako/sandbox.rb
|
|
85
90
|
- lib/kobako/sandbox_options.rb
|
|
91
|
+
- lib/kobako/snapshot.rb
|
|
86
92
|
- lib/kobako/snippet.rb
|
|
87
93
|
- lib/kobako/snippet/binary.rb
|
|
88
94
|
- lib/kobako/snippet/source.rb
|
|
89
|
-
- lib/kobako/
|
|
95
|
+
- lib/kobako/transport.rb
|
|
96
|
+
- lib/kobako/transport/dispatcher.rb
|
|
97
|
+
- lib/kobako/transport/error.rb
|
|
98
|
+
- lib/kobako/transport/request.rb
|
|
99
|
+
- lib/kobako/transport/response.rb
|
|
100
|
+
- lib/kobako/transport/run.rb
|
|
101
|
+
- lib/kobako/transport/yield.rb
|
|
102
|
+
- lib/kobako/transport/yielder.rb
|
|
90
103
|
- lib/kobako/usage.rb
|
|
91
104
|
- lib/kobako/version.rb
|
|
92
|
-
-
|
|
105
|
+
- release-please-config.json
|
|
93
106
|
- sig/kobako.rbs
|
|
94
107
|
- sig/kobako/capture.rbs
|
|
108
|
+
- sig/kobako/catalog.rbs
|
|
109
|
+
- sig/kobako/catalog/handles.rbs
|
|
110
|
+
- sig/kobako/catalog/namespaces.rbs
|
|
111
|
+
- sig/kobako/catalog/snippets.rbs
|
|
95
112
|
- sig/kobako/codec/decoder.rbs
|
|
96
113
|
- sig/kobako/codec/encoder.rbs
|
|
97
114
|
- sig/kobako/codec/error.rbs
|
|
98
115
|
- sig/kobako/codec/factory.rbs
|
|
99
116
|
- sig/kobako/codec/utils.rbs
|
|
100
117
|
- sig/kobako/errors.rbs
|
|
118
|
+
- sig/kobako/fault.rbs
|
|
101
119
|
- sig/kobako/handle.rbs
|
|
102
|
-
- sig/kobako/
|
|
103
|
-
- sig/kobako/invocation.rbs
|
|
120
|
+
- sig/kobako/namespace.rbs
|
|
104
121
|
- sig/kobako/outcome.rbs
|
|
105
122
|
- sig/kobako/outcome/panic.rbs
|
|
106
|
-
- sig/kobako/
|
|
107
|
-
- sig/kobako/rpc/dispatcher.rbs
|
|
108
|
-
- sig/kobako/rpc/envelope.rbs
|
|
109
|
-
- sig/kobako/rpc/fault.rbs
|
|
110
|
-
- sig/kobako/rpc/namespace.rbs
|
|
111
|
-
- sig/kobako/rpc/server.rbs
|
|
112
|
-
- sig/kobako/rpc/wire_error.rbs
|
|
123
|
+
- sig/kobako/runtime.rbs
|
|
113
124
|
- sig/kobako/sandbox.rbs
|
|
114
125
|
- sig/kobako/sandbox_options.rbs
|
|
126
|
+
- sig/kobako/snapshot.rbs
|
|
115
127
|
- sig/kobako/snippet.rbs
|
|
116
128
|
- sig/kobako/snippet/binary.rbs
|
|
117
129
|
- sig/kobako/snippet/source.rbs
|
|
118
|
-
- sig/kobako/
|
|
130
|
+
- sig/kobako/transport.rbs
|
|
131
|
+
- sig/kobako/transport/dispatcher.rbs
|
|
132
|
+
- sig/kobako/transport/error.rbs
|
|
133
|
+
- sig/kobako/transport/request.rbs
|
|
134
|
+
- sig/kobako/transport/response.rbs
|
|
135
|
+
- sig/kobako/transport/run.rbs
|
|
136
|
+
- sig/kobako/transport/yield.rbs
|
|
137
|
+
- sig/kobako/transport/yielder.rbs
|
|
119
138
|
- sig/kobako/usage.rbs
|
|
120
|
-
- sig/kobako/wasm.rbs
|
|
121
139
|
homepage: https://github.com/elct9620/kobako
|
|
122
140
|
licenses:
|
|
123
141
|
- Apache-2.0
|