extism 0.1.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb92afe98d7671a494f96bd306d5f4cc7b00115c15a84216e284f7e70b26a92f
4
- data.tar.gz: '09f772d8b63f6c366af68b876ae91ff05e7fc909d4076342f2e4b5ee58f93901'
3
+ metadata.gz: 3b540fbbf71c7df6e1830473a374de243616af3fbed809b54e65d54b97521ca4
4
+ data.tar.gz: 9c37464eb99dd16e7481e6ad1b1a46385b2b8c33861041ede0d055cbdaab2317
5
5
  SHA512:
6
- metadata.gz: ed493bfb2ddec6844f1f6a61636ea53976733eaf25fa1567b79ab9abe78c9d480bfaf0efa5ca8e186575d5af3c30db6cb777143bb1c31a1e17601ab7eca2da96
7
- data.tar.gz: cc5a6b46b8dcda5c53ae8fe1aff425cbc48e063e3106ab2badf4009d0764a556d269c6b592eae1a7342c1ab0df7ea7251ca5d87ed4dee836f103ec8bac91c2d0
6
+ metadata.gz: 541a4167c2985a8adecb5565d6c4fca794c87de64ccd10bbde410f22c752e9eaaf16686306ec280e9755deeafa47866b6bf26a098cb54199c6185ed6321fadfc
7
+ data.tar.gz: f3711e03292689c31547d22bc099ec356e07fa7876698c8d00cc5d0ab4b54f0f76377bca5d34789e76766978b9bd620721d11639143fde06572ef07ec07b086f
data/Gemfile CHANGED
@@ -11,5 +11,5 @@ gem "ffi", "~> 1.15.5"
11
11
  group :development do
12
12
  gem "yard", "~> 0.9.28"
13
13
  gem "rufo", "~> 0.13.0"
14
- gem "minitest", "~> 5.16.3"
14
+ gem "minitest", "~> 5.18.0"
15
15
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Extism
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/extism.rb CHANGED
@@ -115,6 +115,18 @@ module Extism
115
115
  end
116
116
  end
117
117
 
118
+ # A CancelHandle can be used to cancel a running plugin from another thread
119
+ class CancelHandle
120
+ def initialize(handle)
121
+ @handle = handle
122
+ end
123
+
124
+ # Cancel the plugin used to generate the handle
125
+ def cancel
126
+ return C.extism_plugin_cancel(@handle)
127
+ end
128
+ end
129
+
118
130
  # A Plugin represents an instance of your WASM program from the given manifest.
119
131
  class Plugin
120
132
  # Intialize a plugin
@@ -131,7 +143,7 @@ module Extism
131
143
  end
132
144
  code = FFI::MemoryPointer.new(:char, wasm.bytesize)
133
145
  code.put_bytes(0, wasm)
134
- @plugin = C.extism_plugin_new(context.pointer, code, wasm.bytesize, wasi)
146
+ @plugin = C.extism_plugin_new(context.pointer, code, wasm.bytesize, nil, 0, wasi)
135
147
  if @plugin < 0
136
148
  err = C.extism_error(@context.pointer, -1)
137
149
  if err&.empty?
@@ -161,7 +173,7 @@ module Extism
161
173
  end
162
174
  code = FFI::MemoryPointer.new(:char, wasm.bytesize)
163
175
  code.put_bytes(0, wasm)
164
- ok = C.extism_plugin_update(@context.pointer, @plugin, code, wasm.bytesize, wasi)
176
+ ok = C.extism_plugin_update(@context.pointer, @plugin, code, wasm.bytesize, nil, 0, wasi)
165
177
  if !ok
166
178
  err = C.extism_error(@context.pointer, @plugin)
167
179
  if err&.empty?
@@ -219,6 +231,11 @@ module Extism
219
231
  C.extism_plugin_free(@context.pointer, @plugin)
220
232
  @plugin = -1
221
233
  end
234
+
235
+ # Get a CancelHandle for a plugin
236
+ def cancel_handle
237
+ return CancelHandle.new(C.extism_plugin_cancel_handle(@context.pointer, @plugin))
238
+ end
222
239
  end
223
240
 
224
241
  private
@@ -230,8 +247,8 @@ module Extism
230
247
  ffi_lib "extism"
231
248
  attach_function :extism_context_new, [], :pointer
232
249
  attach_function :extism_context_free, [:pointer], :void
233
- attach_function :extism_plugin_new, [:pointer, :pointer, :uint64, :bool], :int32
234
- attach_function :extism_plugin_update, [:pointer, :int32, :pointer, :uint64, :bool], :bool
250
+ attach_function :extism_plugin_new, [:pointer, :pointer, :uint64, :pointer, :uint64, :bool], :int32
251
+ attach_function :extism_plugin_update, [:pointer, :int32, :pointer, :uint64, :pointer, :uint64, :bool], :bool
235
252
  attach_function :extism_error, [:pointer, :int32], :string
236
253
  attach_function :extism_plugin_call, [:pointer, :int32, :string, :pointer, :uint64], :int32
237
254
  attach_function :extism_plugin_function_exists, [:pointer, :int32, :string], :bool
@@ -241,5 +258,7 @@ module Extism
241
258
  attach_function :extism_plugin_free, [:pointer, :int32], :void
242
259
  attach_function :extism_context_reset, [:pointer], :void
243
260
  attach_function :extism_version, [], :string
261
+ attach_function :extism_plugin_cancel_handle, [:pointer, :int32], :pointer
262
+ attach_function :extism_plugin_cancel, [:pointer], :bool
244
263
  end
245
264
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extism
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - zach
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-30 00:00:00.000000000 Z
11
+ date: 2023-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi