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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.release-please-manifest.json +1 -0
  3. data/CHANGELOG.md +29 -0
  4. data/Cargo.lock +1 -1
  5. data/README.md +0 -1
  6. data/data/kobako.wasm +0 -0
  7. data/ext/kobako/Cargo.toml +1 -1
  8. data/ext/kobako/src/lib.rs +4 -2
  9. data/ext/kobako/src/{wasm → runtime}/cache.rs +12 -16
  10. data/ext/kobako/src/runtime/capture.rs +91 -0
  11. data/ext/kobako/src/runtime/config.rs +26 -0
  12. data/ext/kobako/src/runtime/dispatch.rs +211 -0
  13. data/ext/kobako/src/runtime/exports.rs +51 -0
  14. data/ext/kobako/src/runtime/guest_mem.rs +228 -0
  15. data/ext/kobako/src/{wasm/host_state.rs → runtime/invocation.rs} +94 -86
  16. data/ext/kobako/src/runtime/trap.rs +134 -0
  17. data/ext/kobako/src/runtime.rs +782 -0
  18. data/ext/kobako/src/snapshot.rs +110 -0
  19. data/lib/kobako/capture.rb +11 -16
  20. data/lib/kobako/catalog/handles.rb +107 -0
  21. data/lib/kobako/catalog/namespaces.rb +99 -0
  22. data/lib/kobako/{snippet/table.rb → catalog/snippets.rb} +37 -62
  23. data/lib/kobako/catalog.rb +18 -0
  24. data/lib/kobako/codec/decoder.rb +13 -5
  25. data/lib/kobako/codec/factory.rb +12 -12
  26. data/lib/kobako/codec/utils.rb +56 -59
  27. data/lib/kobako/codec.rb +6 -3
  28. data/lib/kobako/errors.rb +45 -28
  29. data/lib/kobako/fault.rb +40 -0
  30. data/lib/kobako/handle.rb +4 -6
  31. data/lib/kobako/namespace.rb +67 -0
  32. data/lib/kobako/outcome.rb +31 -35
  33. data/lib/kobako/runtime.rb +30 -0
  34. data/lib/kobako/sandbox.rb +83 -72
  35. data/lib/kobako/sandbox_options.rb +6 -9
  36. data/lib/kobako/snapshot.rb +40 -0
  37. data/lib/kobako/snippet/binary.rb +6 -7
  38. data/lib/kobako/snippet/source.rb +8 -8
  39. data/lib/kobako/snippet.rb +7 -9
  40. data/lib/kobako/transport/dispatcher.rb +195 -0
  41. data/lib/kobako/{rpc/wire_error.rb → transport/error.rb} +7 -6
  42. data/lib/kobako/transport/request.rb +78 -0
  43. data/lib/kobako/transport/response.rb +69 -0
  44. data/lib/kobako/transport/run.rb +141 -0
  45. data/lib/kobako/transport/yield.rb +91 -0
  46. data/lib/kobako/transport/yielder.rb +89 -0
  47. data/lib/kobako/transport.rb +24 -0
  48. data/lib/kobako/version.rb +1 -1
  49. data/lib/kobako.rb +4 -4
  50. data/release-please-config.json +24 -0
  51. data/sig/kobako/capture.rbs +0 -2
  52. data/sig/kobako/catalog/handles.rbs +19 -0
  53. data/sig/kobako/catalog/namespaces.rbs +17 -0
  54. data/sig/kobako/{snippet/table.rbs → catalog/snippets.rbs} +2 -11
  55. data/sig/kobako/{rpc.rbs → catalog.rbs} +1 -1
  56. data/sig/kobako/codec/decoder.rbs +2 -1
  57. data/sig/kobako/codec/factory.rbs +2 -2
  58. data/sig/kobako/codec/utils.rbs +5 -5
  59. data/sig/kobako/errors.rbs +7 -7
  60. data/sig/kobako/fault.rbs +19 -0
  61. data/sig/kobako/handle.rbs +2 -3
  62. data/sig/kobako/namespace.rbs +19 -0
  63. data/sig/kobako/outcome.rbs +2 -2
  64. data/sig/kobako/runtime.rbs +23 -0
  65. data/sig/kobako/sandbox.rbs +5 -8
  66. data/sig/kobako/snapshot.rbs +15 -0
  67. data/sig/kobako/transport/dispatcher.rbs +34 -0
  68. data/sig/kobako/transport/error.rbs +6 -0
  69. data/sig/kobako/transport/request.rbs +32 -0
  70. data/sig/kobako/transport/response.rbs +30 -0
  71. data/sig/kobako/transport/run.rbs +27 -0
  72. data/sig/kobako/transport/yield.rbs +34 -0
  73. data/sig/kobako/transport/yielder.rbs +21 -0
  74. data/sig/kobako/transport.rbs +4 -0
  75. metadata +48 -30
  76. data/ext/kobako/src/wasm/dispatch.rs +0 -162
  77. data/ext/kobako/src/wasm/instance.rs +0 -873
  78. data/ext/kobako/src/wasm.rs +0 -126
  79. data/lib/kobako/handle_table.rb +0 -119
  80. data/lib/kobako/invocation.rb +0 -143
  81. data/lib/kobako/rpc/dispatcher.rb +0 -171
  82. data/lib/kobako/rpc/envelope.rb +0 -118
  83. data/lib/kobako/rpc/fault.rb +0 -41
  84. data/lib/kobako/rpc/namespace.rb +0 -74
  85. data/lib/kobako/rpc/server.rb +0 -146
  86. data/lib/kobako/rpc.rb +0 -11
  87. data/lib/kobako/wasm.rb +0 -25
  88. data/sig/kobako/handle_table.rbs +0 -23
  89. data/sig/kobako/invocation.rbs +0 -25
  90. data/sig/kobako/rpc/dispatcher.rbs +0 -33
  91. data/sig/kobako/rpc/envelope.rbs +0 -51
  92. data/sig/kobako/rpc/fault.rbs +0 -20
  93. data/sig/kobako/rpc/namespace.rbs +0 -24
  94. data/sig/kobako/rpc/server.rbs +0 -31
  95. data/sig/kobako/rpc/wire_error.rbs +0 -6
  96. data/sig/kobako/wasm.rbs +0 -41
@@ -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 HandleTableExhausted < HandleTableError
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
@@ -5,10 +5,9 @@ module Kobako
5
5
 
6
6
  attr_reader id: Integer
7
7
 
8
- def initialize: (Integer id) -> void
9
- | (id: Integer) -> void
8
+ def initialize: (id: Integer) -> void
10
9
 
11
- def self.from_wire: (Integer id) -> Handle
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
@@ -13,12 +13,12 @@ module Kobako
13
13
 
14
14
  def self?.decode_panic: (String body) -> void
15
15
 
16
- def self?.parse_panic: (String body) -> Panic
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?.build_wire_violation_error: (String message, ?wire_error: String?) -> RPC::WireError
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
@@ -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::RPC::Namespace
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::Wasm::Error err) -> singleton(Kobako::TrapError)
51
+ def trap_class_for: (Kobako::TrapError err) -> singleton(Kobako::TrapError)
55
52
 
56
- def invoke!: (Symbol verb) { () -> void } -> untyped
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,6 @@
1
+ module Kobako
2
+ module Transport
3
+ class Error < Kobako::SandboxError
4
+ end
5
+ end
6
+ 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
@@ -0,0 +1,4 @@
1
+ module Kobako
2
+ module Transport
3
+ end
4
+ 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.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.91
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.91
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/wasm.rs
59
- - ext/kobako/src/wasm/cache.rs
60
- - ext/kobako/src/wasm/dispatch.rs
61
- - ext/kobako/src/wasm/host_state.rs
62
- - ext/kobako/src/wasm/instance.rs
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/handle_table.rb
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/rpc.rb
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/snippet/table.rb
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
- - lib/kobako/wasm.rb
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/handle_table.rbs
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/rpc.rbs
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/snippet/table.rbs
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