kobako 0.28.0-aarch64-linux → 0.29.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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.release-please-manifest.json +1 -1
  3. data/CHANGELOG.md +170 -0
  4. data/README.md +154 -36
  5. data/ROADMAP.md +5 -0
  6. data/SECURITY.md +1 -1
  7. data/crates/kobako-runtime/CHANGELOG.md +86 -0
  8. data/crates/kobako-runtime/README.md +13 -8
  9. data/crates/kobako-transport/CHANGELOG.md +17 -0
  10. data/crates/kobako-transport/README.md +1 -1
  11. data/crates/kobako-wasmtime/CHANGELOG.md +119 -0
  12. data/crates/kobako-wasmtime/README.md +5 -3
  13. data/data/kobako.wasm +0 -0
  14. data/lib/kobako/3.3/kobako.so +0 -0
  15. data/lib/kobako/3.4/kobako.so +0 -0
  16. data/lib/kobako/4.0/kobako.so +0 -0
  17. data/lib/kobako/catalog/flags.rb +2 -14
  18. data/lib/kobako/catalog/grants.rb +30 -0
  19. data/lib/kobako/catalog/mount.rb +27 -0
  20. data/lib/kobako/catalog/services.rb +11 -0
  21. data/lib/kobako/catalog/snippets.rb +5 -9
  22. data/lib/kobako/catalog.rb +11 -0
  23. data/lib/kobako/codec/decoder.rb +1 -0
  24. data/lib/kobako/codec/ext_types.rb +1 -1
  25. data/lib/kobako/codec/state.rb +19 -3
  26. data/lib/kobako/codec/value_budget.rb +86 -0
  27. data/lib/kobako/codec.rb +7 -0
  28. data/lib/kobako/context.rb +38 -11
  29. data/lib/kobako/errors.rb +15 -14
  30. data/lib/kobako/filesystem.rb +38 -0
  31. data/lib/kobako/pool.rb +2 -2
  32. data/lib/kobako/sandbox.rb +40 -12
  33. data/lib/kobako/sandbox_options.rb +39 -12
  34. data/lib/kobako/snippet/{binary.rb → bytecode.rb} +1 -1
  35. data/lib/kobako/snippet.rb +1 -1
  36. data/lib/kobako/transport/block_failure.rb +35 -0
  37. data/lib/kobako/transport/dispatcher.rb +30 -26
  38. data/lib/kobako/transport/exposure.rb +5 -7
  39. data/lib/kobako/transport/reflection.rb +79 -23
  40. data/lib/kobako/transport/yielder.rb +8 -30
  41. data/lib/kobako/transport.rb +1 -0
  42. data/lib/kobako/version.rb +1 -1
  43. data/lib/kobako.rb +1 -0
  44. data/sig/kobako/catalog/flags.rbs +0 -4
  45. data/sig/kobako/catalog/grants.rbs +13 -0
  46. data/sig/kobako/catalog/mount.rbs +28 -0
  47. data/sig/kobako/catalog/services.rbs +4 -0
  48. data/sig/kobako/catalog/snippets.rbs +1 -1
  49. data/sig/kobako/catalog.rbs +1 -0
  50. data/sig/kobako/codec/state.rbs +7 -1
  51. data/sig/kobako/codec/value_budget.rbs +23 -0
  52. data/sig/kobako/codec.rbs +2 -0
  53. data/sig/kobako/context.rbs +14 -6
  54. data/sig/kobako/errors.rbs +4 -4
  55. data/sig/kobako/filesystem.rbs +88 -0
  56. data/sig/kobako/guest_yielder.rbs +9 -0
  57. data/sig/kobako/pool.rbs +1 -1
  58. data/sig/kobako/runtime.rbs +21 -49
  59. data/sig/kobako/sandbox.rbs +7 -1
  60. data/sig/kobako/sandbox_options.rbs +24 -2
  61. data/sig/kobako/snapshot.rbs +20 -0
  62. data/sig/kobako/snippet/bytecode.rbs +12 -0
  63. data/sig/kobako/transport/block_failure.rbs +13 -0
  64. data/sig/kobako/transport/dispatcher.rbs +3 -3
  65. data/sig/kobako/transport/exposure.rbs +1 -1
  66. data/sig/kobako/transport/reflection.rbs +14 -1
  67. data/sig/kobako/transport/yielder.rbs +3 -7
  68. data/sig/kobako/transport.rbs +2 -2
  69. metadata +26 -8
  70. data/sig/kobako/snippet/binary.rbs +0 -12
@@ -0,0 +1,88 @@
1
+ module Kobako
2
+ module Filesystem
3
+ type mountable = Memory | Temporary | Directory | Overlay | _Readable
4
+
5
+ type access = :read | :read_write
6
+
7
+ # What a Filesystem written in Ruby answers to be mounted. One that
8
+ # also answers _Listable lists its directories, and one answering
9
+ # _Writable takes changes too; each method it lacks is refused alone.
10
+ interface _Readable
11
+ def open: (String path, Integer flags) -> _File
12
+ def stat: (String path) -> _Stat
13
+ end
14
+
15
+ interface _Listable
16
+ def children: (String path) -> Array[String]
17
+ end
18
+
19
+ interface _Writable
20
+ def mkdir: (String path) -> void
21
+ def rmdir: (String path) -> void
22
+ def unlink: (String path) -> void
23
+ def rename: (String from, String to, directory: bool?) -> void
24
+ end
25
+
26
+ # A file a Filesystem written in Ruby opened; +::File+ answers it. One
27
+ # that also answers _WritableFile takes writes too, one answering
28
+ # _AppendableFile takes appends, and any file may answer _SyncableFile
29
+ # to flush or _ClosableFile to close.
30
+ interface _File
31
+ def pread: (Integer length, Integer offset) -> String?
32
+ def size: () -> Integer
33
+ end
34
+
35
+ interface _WritableFile
36
+ def pwrite: (String data, Integer offset) -> Integer
37
+ def truncate: (Integer length) -> void
38
+ end
39
+
40
+ # Writes all of +data+ at the end in one step, answering where the file
41
+ # then ends.
42
+ interface _AppendableFile
43
+ def append: (String data) -> Integer
44
+ end
45
+
46
+ interface _SyncableFile
47
+ def fsync: () -> void
48
+ end
49
+
50
+ interface _ClosableFile
51
+ def close: () -> void
52
+ end
53
+
54
+ # What a Filesystem written in Ruby's +stat+ answers, as +File::Stat+
55
+ # does; an +ino+ of zero names no identity. One that also answers
56
+ # _StatDevice names the device its +ino+ belongs to.
57
+ interface _Stat
58
+ def directory?: () -> boolish
59
+ def size: () -> Integer
60
+ def ino: () -> Integer
61
+ end
62
+
63
+ interface _StatDevice
64
+ def dev: () -> Integer
65
+ end
66
+
67
+ class Memory
68
+ # A bare <tt>"path" => contents</tt> arrives as keywords, which RBS
69
+ # cannot key by String; a Symbol keyword past +limit+ and +inodes+
70
+ # raises ArgumentError.
71
+ def initialize: (?Hash[String, String] files, ?limit: Integer?, ?inodes: Integer?, **String) -> void
72
+ end
73
+
74
+ class Temporary
75
+ def initialize: (?limit: Integer?, ?inodes: Integer?) -> void
76
+ end
77
+
78
+ class Directory
79
+ def initialize: (String path) -> void
80
+ end
81
+
82
+ class Overlay
83
+ def initialize: () -> void
84
+ def layer: (mountable filesystem, ?access: access) -> Overlay
85
+ end
86
+
87
+ end
88
+ end
@@ -0,0 +1,9 @@
1
+ module Kobako
2
+ # Frame-scoped guest re-entry handle the ext hands the dispatch Proc as
3
+ # its last argument — the production conformer of
4
+ # +Kobako::Transport::_GuestYielder+, answering the Yield Reply already
5
+ # split off the core envelope.
6
+ class GuestYielder
7
+ def call: (String args_bytes) -> [Symbol, String, String?]
8
+ end
9
+ end
data/sig/kobako/pool.rbs CHANGED
@@ -31,7 +31,7 @@ module Kobako
31
31
 
32
32
  def checkin: (Kobako::Sandbox sandbox) -> void
33
33
 
34
- def release_capacity!: () -> void
34
+ def release_capacity: () -> void
35
35
 
36
36
  def monotonic_now: () -> Float
37
37
 
@@ -2,66 +2,38 @@ module Kobako
2
2
  class Runtime
3
3
  def self.default_path: () -> String
4
4
 
5
+ def self.validate_mount!: (untyped at, untyped access, untyped filesystem) -> nil
6
+
5
7
  def self.from_path: (
6
8
  String path,
7
- (Float | Integer)? timeout_seconds,
8
- Integer? memory_limit,
9
- Integer? stdout_limit,
10
- Integer? stderr_limit,
11
- Symbol profile,
12
- Symbol gvl
9
+ timeout: (Float | Integer)?,
10
+ setup_timeout: (Float | Integer)?,
11
+ memory_limit: Integer?,
12
+ stdout_limit: Integer?,
13
+ stderr_limit: Integer?,
14
+ open_file_limit: Integer?,
15
+ profile: Symbol,
16
+ gvl: Symbol
13
17
  ) -> Runtime
14
18
 
15
- def eval: (
16
- Kobako::Transport::dispatch_proc dispatch,
17
- Array[String] paths,
18
- Array[Kobako::Catalog::Snippets::tuple] snippets,
19
- Array[Kobako::Catalog::Flags::tuple] flags,
20
- String source
21
- ) -> Kobako::Runtime::Snapshot
19
+ type setup = [
20
+ Array[String],
21
+ Array[Kobako::Catalog::Snippets::tuple],
22
+ Array[Kobako::Catalog::Flags::tuple],
23
+ Array[Kobako::Catalog::Mount::tuple]
24
+ ]
25
+
26
+ def eval: (Kobako::Transport::dispatch_proc dispatch, setup setup, String source) -> Kobako::Snapshot
22
27
 
23
28
  def run: (
24
29
  Kobako::Transport::dispatch_proc dispatch,
25
- Array[String] paths,
26
- Array[Kobako::Catalog::Snippets::tuple] snippets,
27
- Array[Kobako::Catalog::Flags::tuple] flags,
30
+ setup setup,
28
31
  String entrypoint,
29
32
  String payload
30
- ) -> Kobako::Runtime::Snapshot
33
+ ) -> Kobako::Snapshot
31
34
 
32
35
  def profile: () -> Symbol
33
36
 
34
- def compile: (
35
- Array[String] paths,
36
- Array[Kobako::Catalog::Snippets::tuple] snippets,
37
- Array[Kobako::Catalog::Flags::tuple] flags
38
- ) -> Array[String]?
39
-
40
- # Frame-scoped guest re-entry handle the ext hands the dispatch Proc as
41
- # its last argument — the production conformer of
42
- # +Kobako::Transport::_GuestYielder+, answering the Yield Reply already
43
- # split off the core envelope.
44
- class GuestYielder
45
- def call: (String args_bytes) -> [Symbol, String, String?]
46
- end
47
-
48
- # One invocation's result — the whole Snapshot the driver produced.
49
- class Snapshot
50
- def outcome: () -> [String, Kobako::Outcome::panic_fields?]
51
-
52
- def trap_error: () -> Kobako::TrapError?
53
-
54
- def wall_time: () -> Float
55
-
56
- def memory_peak: () -> Integer
57
-
58
- def stdout: () -> String
59
-
60
- def stdout_truncated?: () -> bool
61
-
62
- def stderr: () -> String
63
-
64
- def stderr_truncated?: () -> bool
65
- end
37
+ def compile: (Kobako::Context::preamble preamble) -> Array[String]?
66
38
  end
67
39
  end
@@ -7,14 +7,16 @@ module Kobako
7
7
 
8
8
  # Forwarded to @options via Forwardable#def_delegators.
9
9
  def timeout: () -> Float?
10
+ def setup_timeout: () -> Float?
10
11
  def memory_limit: () -> Integer?
11
12
  def stdout_limit: () -> Integer?
12
13
  def stderr_limit: () -> Integer?
14
+ def open_file_limit: () -> Integer?
13
15
  def profile: () -> Symbol
14
16
  def gvl: () -> Symbol
15
17
 
16
18
  # Every keyword beyond wasm_path forwards verbatim to
17
- # SandboxOptions.new (the four caps + the profile floor).
19
+ # SandboxOptions.new (the caps + the profile floor).
18
20
  def initialize: (
19
21
  ?wasm_path: String?,
20
22
  **untyped options
@@ -24,6 +26,8 @@ module Kobako
24
26
 
25
27
  def install: (*untyped extensions) -> Kobako::Sandbox
26
28
 
29
+ def mount: (String at, Kobako::Filesystem::mountable filesystem, ?access: Kobako::Filesystem::access) ?{ (String path, Kobako::Filesystem::access access) -> boolish } -> Kobako::Sandbox
30
+
27
31
  def preload: (code: String, name: Symbol | String) -> Kobako::Sandbox
28
32
  | (binary: String) -> Kobako::Sandbox
29
33
 
@@ -39,6 +43,8 @@ module Kobako
39
43
 
40
44
  def new_invocation: () -> Kobako::Context
41
45
 
46
+ def preamble: (Array[Kobako::Catalog::Snippets::tuple] snippets) -> Kobako::Context::preamble
47
+
42
48
  def refuse_once_invoked!: (String verb) -> void
43
49
 
44
50
  def begin_invocation!: () -> void
@@ -1,45 +1,67 @@
1
1
  module Kobako
2
2
  class SandboxOptions < Data
3
3
  DEFAULT_TIMEOUT_SECONDS: Float
4
+ DEFAULT_SETUP_TIMEOUT_SECONDS: Float
4
5
  DEFAULT_MEMORY_LIMIT: Integer
5
6
  DEFAULT_OUTPUT_LIMIT: Integer
7
+ DEFAULT_OPEN_FILE_LIMIT: Integer
6
8
  DEFAULT_PROFILE: Symbol
7
9
  PROFILES: Array[Symbol]
8
10
  GVL_MODES: Array[Symbol]
9
11
  DEFAULT_GVL: Symbol
12
+ VALUE_BYTES: Integer
10
13
 
11
14
  attr_reader timeout: Float?
15
+ attr_reader setup_timeout: Float?
12
16
  attr_reader memory_limit: Integer?
13
17
  attr_reader stdout_limit: Integer?
14
18
  attr_reader stderr_limit: Integer?
19
+ attr_reader open_file_limit: Integer?
15
20
  attr_reader profile: Symbol
16
21
  attr_reader gvl: Symbol
17
22
 
18
23
  def self.new: (
19
24
  ?timeout: (Float | Integer)?,
25
+ ?setup_timeout: (Float | Integer)?,
20
26
  ?memory_limit: Integer?,
21
27
  ?stdout_limit: Integer?,
22
28
  ?stderr_limit: Integer?,
29
+ ?open_file_limit: Integer?,
23
30
  ?profile: Symbol,
24
31
  ?gvl: Symbol
25
32
  ) -> SandboxOptions
26
33
 
27
34
  def initialize: (
28
35
  ?timeout: (Float | Integer)?,
36
+ ?setup_timeout: (Float | Integer)?,
29
37
  ?memory_limit: Integer?,
30
38
  ?stdout_limit: Integer?,
31
39
  ?stderr_limit: Integer?,
40
+ ?open_file_limit: Integer?,
32
41
  ?profile: Symbol,
33
42
  ?gvl: Symbol
34
43
  ) -> void
35
44
 
45
+ def to_h: () -> {
46
+ timeout: Float?,
47
+ setup_timeout: Float?,
48
+ memory_limit: Integer?,
49
+ stdout_limit: Integer?,
50
+ stderr_limit: Integer?,
51
+ open_file_limit: Integer?,
52
+ profile: Symbol,
53
+ gvl: Symbol
54
+ }
55
+
56
+ def value_budget: () -> Integer?
57
+
36
58
  def enforce_floor!: (Symbol declared) -> void
37
59
 
38
60
  private
39
61
 
40
- def normalize_timeout: ((Float | Integer)? timeout) -> Float?
62
+ def normalize_timeout: ((Float | Integer)? timeout, String name) -> Float?
41
63
 
42
- def normalize_byte_limit: (Integer? limit, String name) -> Integer?
64
+ def normalize_limit: (Integer? limit, String name) -> Integer?
43
65
 
44
66
  def normalize_choice: (untyped value, Array[Symbol] choices, String name) -> Symbol
45
67
  end
@@ -0,0 +1,20 @@
1
+ module Kobako
2
+ # One invocation's result — the whole Snapshot the driver produced.
3
+ class Snapshot
4
+ def outcome: () -> [String, Kobako::Outcome::panic_fields?]
5
+
6
+ def trap_error: () -> Kobako::TrapError?
7
+
8
+ def wall_time: () -> Float
9
+
10
+ def memory_peak: () -> Integer
11
+
12
+ def stdout: () -> String
13
+
14
+ def stdout_truncated?: () -> bool
15
+
16
+ def stderr: () -> String
17
+
18
+ def stderr_truncated?: () -> bool
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ module Kobako
2
+ module Snippet
3
+ class Bytecode < Data
4
+ KIND: Symbol
5
+
6
+ attr_reader body: String
7
+
8
+ def self.new: (body: String) -> Bytecode
9
+ | (String body) -> Bytecode
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module Kobako
2
+ module Transport
3
+ class BlockFailure
4
+ @raised: Kobako::BlockError?
5
+
6
+ def initialize: () -> void
7
+
8
+ def remember: (Kobako::BlockError error) -> Kobako::BlockError
9
+
10
+ def fault_text: (Exception error) -> String?
11
+ end
12
+ end
13
+ end
@@ -9,9 +9,9 @@ module Kobako
9
9
 
10
10
  BREAK_THROW: Symbol
11
11
 
12
- OWN_FAULTS: Hash[singleton(StandardError), String]
12
+ BARE_FAULTS: Hash[singleton(StandardError), String]
13
13
 
14
- def self.dispatch: (Kobako::Transport::Call call, Kobako::Transport::_ServiceResolver resolver, Kobako::Transport::_HandleTable handles, Kobako::Transport::_GuestYielder guest_yielder) -> [bool, String, String?]
14
+ def self.dispatch: (Kobako::Transport::Call call, Kobako::Transport::_ServiceResolver resolver, Kobako::Transport::_HandleTable handles, Kobako::Transport::BlockFailure failure, Kobako::Transport::_GuestYielder guest_yielder) -> [Symbol, String, String?]
15
15
 
16
16
  private
17
17
 
@@ -21,7 +21,7 @@ module Kobako
21
21
 
22
22
  def self.resolve_call_args: (Kobako::Payload::Arguments arguments, Kobako::Codec::_HandleTable handles, bool carried_handle) -> [Array[untyped], Hash[Symbol, untyped]]
23
23
 
24
- def self.caught_fault: (StandardError error, Kobako::Transport::Yielder? yielder) -> [String, String]
24
+ def self.caught_fault: (StandardError error, Kobako::Transport::BlockFailure failure) -> [String, String]
25
25
 
26
26
  def self.invoke: (Kobako::Transport::Exposure exposure, String method, Array[untyped] args, Hash[Symbol, untyped] kwargs, Kobako::Transport::Yielder? yielder) -> untyped
27
27
 
@@ -37,7 +37,7 @@ module Kobako
37
37
 
38
38
  def self.with_singleton: (untyped object, Set[Symbol] names) -> Set[Symbol]
39
39
 
40
- def self.authored: (Module owner) -> Array[Symbol]
40
+ def self.authored_names:(Module owner) -> Array[Symbol]
41
41
  end
42
42
  end
43
43
  end
@@ -1,16 +1,29 @@
1
1
  module Kobako
2
2
  module Transport
3
3
  module Reflection
4
- META_OWNERS: Array[Module]
5
4
  GADGET_OWNERS: Array[Module]
6
5
  CALLABLE_ALLOW: Array[Symbol]
7
6
 
8
7
  def self.refusal: (Kobako::Transport::Exposure exposure, Symbol name) -> String?
9
8
 
9
+ def self.authored?: (UnboundMethod method) -> bool
10
+
10
11
  private
11
12
 
13
+ def self.ambient_copy?: (UnboundMethod method) -> bool
14
+
12
15
  def self.ambient_refusal: (untyped target, Symbol name) -> String?
13
16
 
17
+ def self.defined_refusal: (untyped target, Symbol name, Module klass) -> String?
18
+
19
+ def self.authored_for?: (untyped target, Symbol name, UnboundMethod method, Module klass) -> bool
20
+
21
+ def self.refused: (Symbol name) -> String
22
+
23
+ def self.owner_refusal: (untyped target, Symbol name, Module owner) -> String?
24
+
25
+ def self.lookup_class: (untyped target) -> Module
26
+
14
27
  def self.ambient_owner?: (Module owner, untyped target) -> bool
15
28
  end
16
29
  end
@@ -4,25 +4,21 @@ module Kobako
4
4
  @guest_yielder: Kobako::Transport::_GuestYielder
5
5
  @break_tag: Symbol
6
6
  @handles: Kobako::Codec::_HandleTable
7
+ @failure: Kobako::Transport::BlockFailure
7
8
  @active: bool
8
- @raised: Kobako::BlockError?
9
9
 
10
- def initialize: (Kobako::Transport::_GuestYielder guest_yielder, Symbol break_tag, Kobako::Codec::_HandleTable handles) -> void
11
-
12
- def fault_text: (Exception error) -> String?
10
+ def initialize: (Kobako::Transport::_GuestYielder guest_yielder, Symbol break_tag, Kobako::Codec::_HandleTable handles, Kobako::Transport::BlockFailure failure) -> void
13
11
 
14
12
  def yield: (*untyped args) -> untyped
15
13
 
16
14
  def to_proc: () -> Proc
17
15
 
18
- def invalidate!: () -> void
16
+ def invalidate: () -> void
19
17
 
20
18
  private
21
19
 
22
20
  def encode_args: (Array[untyped] args) -> String
23
21
 
24
- def remember: (Kobako::BlockError error) -> Kobako::BlockError
25
-
26
22
  def decode_body: (String body) -> [untyped, bool]
27
23
 
28
24
  def restore: (untyped value, bool carried_handle) -> untyped
@@ -3,7 +3,7 @@ module Kobako
3
3
  # The guest re-entry callable a dispatch hands to a Yielder: invoked
4
4
  # with the encoded yield args, it returns the decoded Yield Reply as an
5
5
  # +[arm, body, klass]+ triple.
6
- # The ext's Kobako::Runtime::GuestYielder is the production conformer;
6
+ # The ext's Kobako::GuestYielder is the production conformer;
7
7
  # modelled structurally so the Transport layer needs no upward
8
8
  # dependency on Runtime.
9
9
  interface _GuestYielder
@@ -14,7 +14,7 @@ module Kobako
14
14
  # side already decoded off the core envelope and answering the arm and
15
15
  # body it puts on the Reply. Named here so the producer (Context) and the
16
16
  # consumer (Runtime) cannot declare it differently.
17
- type dispatch_proc = ^(String | Integer, String, bool, String, _GuestYielder) -> [bool, String, String?]
17
+ type dispatch_proc = ^(String | Integer, String, bool, String, _GuestYielder) -> [Symbol, String, String?]
18
18
 
19
19
  # What a dispatch resolves constant-path targets against. The
20
20
  # invocation's Kobako::Context is the production conformer, so its
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kobako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.0
4
+ version: 0.29.0
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Aotokitsuruya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-13 00:00:00.000000000 Z
11
+ date: 2026-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: 1.8.2
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 1.8.2
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '1.7'
32
+ version: '2'
27
33
  description: kobako provides an in-process Wasm sandbox (wasmtime + mruby) with a
28
34
  MessagePack-based host/guest RPC, allowing Ruby applications to execute untrusted
29
35
  mruby scripts under capability-based Service injection.
@@ -54,7 +60,9 @@ files:
54
60
  - lib/kobako/catalog.rb
55
61
  - lib/kobako/catalog/extensions.rb
56
62
  - lib/kobako/catalog/flags.rb
63
+ - lib/kobako/catalog/grants.rb
57
64
  - lib/kobako/catalog/handles.rb
65
+ - lib/kobako/catalog/mount.rb
58
66
  - lib/kobako/catalog/services.rb
59
67
  - lib/kobako/catalog/snippets.rb
60
68
  - lib/kobako/codec.rb
@@ -66,11 +74,13 @@ files:
66
74
  - lib/kobako/codec/nesting.rb
67
75
  - lib/kobako/codec/state.rb
68
76
  - lib/kobako/codec/utils.rb
77
+ - lib/kobako/codec/value_budget.rb
69
78
  - lib/kobako/constant_name.rb
70
79
  - lib/kobako/context.rb
71
80
  - lib/kobako/errors.rb
72
81
  - lib/kobako/execution.rb
73
82
  - lib/kobako/extension.rb
83
+ - lib/kobako/filesystem.rb
74
84
  - lib/kobako/handle.rb
75
85
  - lib/kobako/outcome.rb
76
86
  - lib/kobako/payload.rb
@@ -80,9 +90,10 @@ files:
80
90
  - lib/kobako/sandbox.rb
81
91
  - lib/kobako/sandbox_options.rb
82
92
  - lib/kobako/snippet.rb
83
- - lib/kobako/snippet/binary.rb
93
+ - lib/kobako/snippet/bytecode.rb
84
94
  - lib/kobako/snippet/source.rb
85
95
  - lib/kobako/transport.rb
96
+ - lib/kobako/transport/block_failure.rb
86
97
  - lib/kobako/transport/call.rb
87
98
  - lib/kobako/transport/dispatcher.rb
88
99
  - lib/kobako/transport/error.rb
@@ -99,7 +110,9 @@ files:
99
110
  - sig/kobako/catalog.rbs
100
111
  - sig/kobako/catalog/extensions.rbs
101
112
  - sig/kobako/catalog/flags.rbs
113
+ - sig/kobako/catalog/grants.rbs
102
114
  - sig/kobako/catalog/handles.rbs
115
+ - sig/kobako/catalog/mount.rbs
103
116
  - sig/kobako/catalog/services.rbs
104
117
  - sig/kobako/catalog/snippets.rbs
105
118
  - sig/kobako/codec.rbs
@@ -111,11 +124,14 @@ files:
111
124
  - sig/kobako/codec/nesting.rbs
112
125
  - sig/kobako/codec/state.rbs
113
126
  - sig/kobako/codec/utils.rbs
127
+ - sig/kobako/codec/value_budget.rbs
114
128
  - sig/kobako/constant_name.rbs
115
129
  - sig/kobako/context.rbs
116
130
  - sig/kobako/errors.rbs
117
131
  - sig/kobako/execution.rbs
118
132
  - sig/kobako/extension.rbs
133
+ - sig/kobako/filesystem.rbs
134
+ - sig/kobako/guest_yielder.rbs
119
135
  - sig/kobako/handle.rbs
120
136
  - sig/kobako/outcome.rbs
121
137
  - sig/kobako/payload.rbs
@@ -124,10 +140,12 @@ files:
124
140
  - sig/kobako/runtime.rbs
125
141
  - sig/kobako/sandbox.rbs
126
142
  - sig/kobako/sandbox_options.rbs
143
+ - sig/kobako/snapshot.rbs
127
144
  - sig/kobako/snippet.rbs
128
- - sig/kobako/snippet/binary.rbs
145
+ - sig/kobako/snippet/bytecode.rbs
129
146
  - sig/kobako/snippet/source.rbs
130
147
  - sig/kobako/transport.rbs
148
+ - sig/kobako/transport/block_failure.rbs
131
149
  - sig/kobako/transport/call.rbs
132
150
  - sig/kobako/transport/dispatcher.rbs
133
151
  - sig/kobako/transport/error.rbs
@@ -1,12 +0,0 @@
1
- module Kobako
2
- module Snippet
3
- class Binary < Data
4
- KIND: Symbol
5
-
6
- attr_reader body: String
7
-
8
- def self.new: (body: String) -> Binary
9
- | (String body) -> Binary
10
- end
11
- end
12
- end