wasmer 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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/documentation.yml +50 -0
  3. data/.github/workflows/test.yml +34 -61
  4. data/CHANGELOG.md +89 -29
  5. data/Cargo.lock +812 -380
  6. data/Cargo.toml +7 -20
  7. data/Gemfile +2 -3
  8. data/README.md +1 -0
  9. data/Rakefile +4 -3
  10. data/crates/rutie-derive-macros/Cargo.toml +19 -0
  11. data/crates/rutie-derive-macros/README.md +4 -0
  12. data/crates/rutie-derive-macros/src/class.rs +156 -0
  13. data/crates/rutie-derive-macros/src/function.rs +178 -0
  14. data/crates/rutie-derive-macros/src/lib.rs +27 -0
  15. data/crates/rutie-derive-macros/src/methods.rs +282 -0
  16. data/crates/rutie-derive/Cargo.toml +14 -0
  17. data/crates/rutie-derive/README.md +97 -0
  18. data/crates/rutie-derive/src/lib.rs +4 -0
  19. data/crates/rutie-derive/src/upcast.rs +47 -0
  20. data/crates/rutie-test/Cargo.toml +10 -0
  21. data/crates/rutie-test/src/lib.rs +38 -0
  22. data/crates/wasmer/Cargo.toml +27 -0
  23. data/crates/wasmer/README.md +228 -0
  24. data/crates/wasmer/src/doc.rs +1512 -0
  25. data/crates/wasmer/src/error.rs +55 -0
  26. data/crates/wasmer/src/exports.rs +107 -0
  27. data/crates/wasmer/src/externals/function.rs +159 -0
  28. data/crates/wasmer/src/externals/global.rs +62 -0
  29. data/crates/wasmer/src/externals/memory.rs +117 -0
  30. data/crates/wasmer/src/externals/mod.rs +9 -0
  31. data/crates/wasmer/src/externals/table.rs +41 -0
  32. data/crates/wasmer/src/import_object.rs +78 -0
  33. data/crates/wasmer/src/instance.rs +45 -0
  34. data/crates/wasmer/src/lib.rs +307 -0
  35. data/crates/wasmer/src/memory/mod.rs +1 -0
  36. data/crates/wasmer/src/memory/views.rs +112 -0
  37. data/crates/wasmer/src/module.rs +106 -0
  38. data/crates/wasmer/src/prelude.rs +3 -0
  39. data/crates/wasmer/src/store.rs +22 -0
  40. data/crates/wasmer/src/types.rs +390 -0
  41. data/crates/wasmer/src/values.rs +84 -0
  42. data/crates/wasmer/src/wasi.rs +226 -0
  43. data/crates/wasmer/src/wat.rs +20 -0
  44. data/justfile +7 -1
  45. data/lib/wasmer.rb +29 -3
  46. data/wasmer.gemspec +6 -10
  47. metadata +45 -47
  48. data/README.md +0 -332
  49. data/lib/wasmer/version.rb +0 -3
  50. data/src/error.rs +0 -16
  51. data/src/instance/exports.rs +0 -215
  52. data/src/instance/globals.rs +0 -234
  53. data/src/instance/mod.rs +0 -141
  54. data/src/lib.rs +0 -162
  55. data/src/memory/mod.rs +0 -158
  56. data/src/memory/view.rs +0 -145
  57. data/src/module.rs +0 -28
@@ -0,0 +1,84 @@
1
+ use crate::{
2
+ error::{to_ruby_err, RubyResult, TypeError},
3
+ prelude::*,
4
+ };
5
+ use rutie::{AnyObject, Fixnum, Float, Object};
6
+ use std::convert::TryInto;
7
+
8
+ pub(crate) fn to_wasm_value((any, ty): (&AnyObject, wasmer::Type)) -> RubyResult<wasmer::Value> {
9
+ Ok(match ty {
10
+ wasmer::Type::I32 => wasmer::Value::I32(
11
+ any.try_convert_to::<Fixnum>()?
12
+ .to_u64()
13
+ .try_into()
14
+ .map_err(to_ruby_err::<TypeError, _>)?,
15
+ ),
16
+ wasmer::Type::I64 => wasmer::Value::I64(
17
+ any.try_convert_to::<Fixnum>()?
18
+ .to_u64()
19
+ .try_into()
20
+ .map_err(to_ruby_err::<TypeError, _>)?,
21
+ ),
22
+ wasmer::Type::F32 => wasmer::Value::F32(any.try_convert_to::<Float>()?.to_f64() as _),
23
+ wasmer::Type::F64 => wasmer::Value::F64(any.try_convert_to::<Float>()?.to_f64()),
24
+ _ => unimplemented!(),
25
+ })
26
+ }
27
+
28
+ pub(crate) fn to_ruby_object(value: &wasmer::Value) -> AnyObject {
29
+ match value {
30
+ wasmer::Value::I32(value) => Fixnum::new((*value).into()).to_any_object(),
31
+ wasmer::Value::I64(value) => Fixnum::new(*value).to_any_object(),
32
+ wasmer::Value::F32(value) => Float::new((*value).into()).to_any_object(),
33
+ wasmer::Value::F64(value) => Float::new(*value).to_any_object(),
34
+ _ => unimplemented!(),
35
+ }
36
+ }
37
+
38
+ #[rubyclass(module = "Wasmer")]
39
+ pub struct Value {
40
+ inner: wasmer::Value,
41
+ }
42
+
43
+ impl Value {
44
+ pub(crate) fn inner(&self) -> &wasmer::Value {
45
+ &self.inner
46
+ }
47
+ }
48
+
49
+ #[rubymethods]
50
+ impl Value {
51
+ pub fn i32(value: &Fixnum) -> RubyResult<AnyObject> {
52
+ Ok(Value::ruby_new(Value {
53
+ inner: wasmer::Value::I32(
54
+ value
55
+ .to_u64()
56
+ .try_into()
57
+ .map_err(to_ruby_err::<TypeError, _>)?,
58
+ ),
59
+ }))
60
+ }
61
+
62
+ pub fn i64(value: &Fixnum) -> RubyResult<AnyObject> {
63
+ Ok(Value::ruby_new(Value {
64
+ inner: wasmer::Value::I64(
65
+ value
66
+ .to_u64()
67
+ .try_into()
68
+ .map_err(to_ruby_err::<TypeError, _>)?,
69
+ ),
70
+ }))
71
+ }
72
+
73
+ pub fn f32(value: &Float) -> RubyResult<AnyObject> {
74
+ Ok(Value::ruby_new(Value {
75
+ inner: wasmer::Value::F32(value.to_f64() as _),
76
+ }))
77
+ }
78
+
79
+ pub fn f64(value: &Float) -> RubyResult<AnyObject> {
80
+ Ok(Value::ruby_new(Value {
81
+ inner: wasmer::Value::F64(value.to_f64()),
82
+ }))
83
+ }
84
+ }
@@ -0,0 +1,226 @@
1
+ use crate::{
2
+ error::{to_ruby_err, unwrap_or_raise, RuntimeError, TypeError},
3
+ import_object::ImportObject,
4
+ module::Module,
5
+ prelude::*,
6
+ store::Store,
7
+ };
8
+ use rutie::{AnyObject, Array, Boolean, Hash, Integer, NilClass, Object, RString};
9
+ use std::{convert::TryFrom, path::PathBuf};
10
+
11
+ #[derive(Debug, Copy, Clone)]
12
+ #[repr(u8)]
13
+ pub enum Version {
14
+ Latest = 1,
15
+ Snapshot0 = 2,
16
+ Snapshot1 = 3,
17
+ }
18
+
19
+ impl Version {
20
+ fn to_integer(&self) -> Integer {
21
+ match self {
22
+ Self::Latest => Integer::new(1),
23
+ Self::Snapshot0 => Integer::new(2),
24
+ Self::Snapshot1 => Integer::new(3),
25
+ }
26
+ }
27
+ }
28
+
29
+ impl From<&wasmer_wasi::WasiVersion> for Version {
30
+ fn from(value: &wasmer_wasi::WasiVersion) -> Self {
31
+ match value {
32
+ wasmer_wasi::WasiVersion::Latest => Self::Latest,
33
+ wasmer_wasi::WasiVersion::Snapshot0 => Self::Snapshot0,
34
+ wasmer_wasi::WasiVersion::Snapshot1 => Self::Snapshot1,
35
+ }
36
+ }
37
+ }
38
+
39
+ impl Into<wasmer_wasi::WasiVersion> for Version {
40
+ fn into(self) -> wasmer_wasi::WasiVersion {
41
+ match self {
42
+ Self::Latest => wasmer_wasi::WasiVersion::Latest,
43
+ Self::Snapshot0 => wasmer_wasi::WasiVersion::Snapshot0,
44
+ Self::Snapshot1 => wasmer_wasi::WasiVersion::Snapshot1,
45
+ }
46
+ }
47
+ }
48
+
49
+ impl TryFrom<&Integer> for Version {
50
+ type Error = &'static str;
51
+
52
+ fn try_from(value: &Integer) -> Result<Self, Self::Error> {
53
+ Ok(match value.to_i32() {
54
+ 1 => Version::Latest,
55
+ 2 => Version::Snapshot0,
56
+ 3 => Version::Snapshot1,
57
+ _ => return Err("Unrecognized WASI version"),
58
+ })
59
+ }
60
+ }
61
+
62
+ #[rubyclass(module = "Wasmer::Wasi")]
63
+ pub struct StateBuilder {
64
+ inner: wasmer_wasi::WasiStateBuilder,
65
+ }
66
+
67
+ #[rubymethods]
68
+ impl StateBuilder {
69
+ pub fn new(program_name: &RString) -> RubyResult<AnyObject> {
70
+ Ok(StateBuilder::ruby_new(StateBuilder {
71
+ inner: wasmer_wasi::WasiState::new(program_name.to_str()),
72
+ }))
73
+ }
74
+
75
+ pub fn arguments(&mut self, arguments: &Array) -> RubyResult<RubyStateBuilder> {
76
+ self.inner.args(
77
+ unsafe { arguments.to_any_object().to::<Array>() }
78
+ .into_iter()
79
+ .map(|argument| {
80
+ argument
81
+ .try_convert_to::<RString>()
82
+ .map(|argument| argument.to_string())
83
+ })
84
+ .collect::<RubyResult<Vec<_>>>()?,
85
+ );
86
+
87
+ Ok(_ruby_self)
88
+ }
89
+
90
+ pub fn argument(&mut self, argument: &RString) -> RubyResult<RubyStateBuilder> {
91
+ self.inner.arg(argument.to_str());
92
+
93
+ Ok(_ruby_self)
94
+ }
95
+
96
+ pub fn environments(&mut self, environments: &Hash) -> RubyResult<RubyStateBuilder> {
97
+ let mut environment_pairs = Vec::with_capacity(environments.length());
98
+
99
+ environments.each(|key, value| {
100
+ unwrap_or_raise(|| {
101
+ environment_pairs.push((
102
+ key.try_convert_to::<RString>()?.to_string(),
103
+ value.try_convert_to::<RString>()?.to_string(),
104
+ ));
105
+
106
+ Ok(())
107
+ });
108
+ });
109
+
110
+ self.inner.envs(environment_pairs);
111
+
112
+ Ok(_ruby_self)
113
+ }
114
+
115
+ pub fn environment(&mut self, key: &RString, value: &RString) -> RubyResult<RubyStateBuilder> {
116
+ self.inner.env(key.to_str(), value.to_str());
117
+
118
+ Ok(_ruby_self)
119
+ }
120
+
121
+ pub fn preopen_directories(
122
+ &mut self,
123
+ preopen_directories: &Array,
124
+ ) -> RubyResult<RubyStateBuilder> {
125
+ self.inner
126
+ .preopen_dirs(
127
+ unsafe { preopen_directories.to_any_object().to::<Array>() }
128
+ .into_iter()
129
+ .map(|directory| {
130
+ Ok(PathBuf::from(
131
+ directory.try_convert_to::<RString>()?.to_string(),
132
+ ))
133
+ })
134
+ .collect::<RubyResult<Vec<_>>>()?,
135
+ )
136
+ .map_err(to_ruby_err::<RuntimeError, _>)?;
137
+
138
+ Ok(_ruby_self)
139
+ }
140
+
141
+ pub fn preopen_directory(
142
+ &mut self,
143
+ preopen_directory: &RString,
144
+ ) -> RubyResult<RubyStateBuilder> {
145
+ self.inner
146
+ .preopen_dir(preopen_directory.to_str())
147
+ .map_err(to_ruby_err::<RuntimeError, _>)?;
148
+
149
+ Ok(_ruby_self)
150
+ }
151
+
152
+ pub fn map_directories(&mut self, map_directories: &Hash) -> RubyResult<RubyStateBuilder> {
153
+ let mut map_directory_pairs = Vec::with_capacity(map_directories.length());
154
+
155
+ map_directories.each(|key, value| {
156
+ unwrap_or_raise(|| {
157
+ map_directory_pairs.push((
158
+ key.try_convert_to::<RString>()?.to_string(),
159
+ PathBuf::from(value.try_convert_to::<RString>()?.to_str()),
160
+ ));
161
+
162
+ Ok(())
163
+ });
164
+ });
165
+
166
+ self.inner
167
+ .map_dirs(map_directory_pairs)
168
+ .map_err(to_ruby_err::<RuntimeError, _>)?;
169
+
170
+ Ok(_ruby_self)
171
+ }
172
+
173
+ pub fn map_directory(
174
+ &mut self,
175
+ alias: &RString,
176
+ directory: &RString,
177
+ ) -> RubyResult<RubyStateBuilder> {
178
+ self.inner
179
+ .map_dir(alias.to_str(), PathBuf::from(directory.to_str()))
180
+ .map_err(to_ruby_err::<RuntimeError, _>)?;
181
+
182
+ Ok(_ruby_self)
183
+ }
184
+
185
+ pub fn finalize(&mut self) -> RubyResult<AnyObject> {
186
+ Ok(Environment::ruby_new(Environment {
187
+ inner: self
188
+ .inner
189
+ .finalize()
190
+ .map_err(to_ruby_err::<RuntimeError, _>)?,
191
+ }))
192
+ }
193
+ }
194
+
195
+ #[rubyclass(module = "Wasmer::Wasi")]
196
+ pub struct Environment {
197
+ inner: wasmer_wasi::WasiEnv,
198
+ }
199
+
200
+ #[rubymethods]
201
+ impl Environment {
202
+ pub fn generate_import_object(
203
+ &self,
204
+ store: &Store,
205
+ wasi_version: &Integer,
206
+ ) -> RubyResult<AnyObject> {
207
+ let import_object = wasmer_wasi::generate_import_object_from_env(
208
+ store.inner(),
209
+ self.inner.clone(),
210
+ Version::try_from(wasi_version)
211
+ .map_err(to_ruby_err::<TypeError, _>)?
212
+ .into(),
213
+ );
214
+
215
+ Ok(ImportObject::ruby_new(ImportObject::raw_new(import_object)))
216
+ }
217
+ }
218
+
219
+ #[rubyfunction]
220
+ pub fn get_version(module: &Module, strict: &Boolean) -> RubyResult<AnyObject> {
221
+ Ok(
222
+ wasmer_wasi::get_wasi_version(&module.inner(), strict.to_bool())
223
+ .map(|version| Version::from(&version).to_integer().to_any_object())
224
+ .unwrap_or_else(|| NilClass::new().to_any_object()),
225
+ )
226
+ }
@@ -0,0 +1,20 @@
1
+ use crate::{
2
+ error::{to_ruby_err, RuntimeError},
3
+ prelude::*,
4
+ };
5
+ use rutie::{Encoding, RString};
6
+
7
+ #[rubyfunction]
8
+ pub fn wat2wasm(wat: &RString) -> RubyResult<RString> {
9
+ wat::parse_str(wat.to_str())
10
+ .map(|bytes| RString::from_bytes(bytes.as_slice(), &Encoding::us_ascii()))
11
+ .map_err(to_ruby_err::<RuntimeError, _>)
12
+ }
13
+
14
+ #[rubyfunction]
15
+ pub fn wasm2wat(bytes: &RString) -> RubyResult<RString> {
16
+ Ok(RString::new_utf8(
17
+ &wasmprinter::print_bytes(bytes.to_bytes_unchecked())
18
+ .map_err(to_ruby_err::<RuntimeError, _>)?,
19
+ ))
20
+ }
data/justfile CHANGED
@@ -1,15 +1,21 @@
1
1
  # Compile and install the Ruby extension.
2
2
  build:
3
3
  rake build_lib
4
+ rake bundle_install
4
5
 
5
- # Run the tests.
6
+ # Run all the tests.
6
7
  test:
7
8
  rake test
9
+ cargo test --manifest-path crates/wasmer/Cargo.toml --doc
8
10
 
9
11
  # Build the `.gem` file.
10
12
  gem:
11
13
  rake build
12
14
 
15
+ # Generate the documentation.
16
+ doc:
17
+ cargo rustdoc --manifest-path crates/wasmer/Cargo.toml -- --extend-css doc/patch-rustdoc.css
18
+
13
19
  # Clean the project.
14
20
  clean:
15
21
  cargo clean
data/lib/wasmer.rb CHANGED
@@ -1,6 +1,32 @@
1
- require 'wasmer/version'
2
- require 'rutie'
1
+ require "fiddle"
3
2
 
4
3
  module Wasmer
5
- Rutie.new(:wasmer).init 'Init_wasmer', __dir__
4
+ shared_library_name = :wasmer_ruby
5
+ init_function = :init
6
+
7
+ shared_library_prefix =
8
+ case RUBY_PLATFORM
9
+ when /windows|mswin|mingw/ then ""
10
+ when /cygwin/ then "cyg"
11
+ else "lib"
12
+ end
13
+
14
+ shared_library_suffix =
15
+ case RUBY_PLATFORM
16
+ when /darwin/ then "dylib"
17
+ when /windows|mswin|mingw|cygwin/ then "dll"
18
+ else "so"
19
+ end
20
+
21
+ shared_library_directory = File.expand_path "../target/release/", __dir__
22
+ shared_library_path = File.join(
23
+ shared_library_directory,
24
+ [shared_library_prefix, shared_library_name, ".", shared_library_suffix].join()
25
+ )
26
+
27
+ Fiddle::Function.new(
28
+ Fiddle::dlopen(shared_library_path)[init_function.to_s],
29
+ [],
30
+ Fiddle::TYPE_VOIDP
31
+ ).call
6
32
  end
data/wasmer.gemspec CHANGED
@@ -1,29 +1,25 @@
1
1
  lib = File.expand_path("../lib", __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
- require "wasmer/version"
5
-
6
4
  Gem::Specification.new do |spec|
7
5
  spec.name = "wasmer"
8
- spec.version = Wasmer::VERSION
9
- spec.authors = ["Ivan Enderlin"]
10
- spec.email = ["ivan.enderlin@hoa-project.net"]
6
+ spec.version = "0.5.0"
7
+ spec.authors = ["Wasmer Engineering Team"]
8
+ spec.email = ["engineering@wasmer.io"]
11
9
 
12
10
  spec.summary = "Run WebAssembly binaries."
13
11
  spec.description = "Wasmer is a Ruby extension to run WebAssembly binaries."
14
- spec.homepage = "https://github.com/wasmerio/ruby-ext-wasm"
15
- spec.license = "BSD-3-Clause"
12
+ spec.homepage = "https://github.com/wasmerio/wasmer-ruby"
13
+ spec.license = "MIT"
16
14
 
17
15
  spec.extensions = %w(Rakefile)
18
16
 
19
17
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(examples|tests)/}) }
18
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(examples|tests|doc)/}) }
21
19
  end
22
20
 
23
21
  spec.require_paths = %w(lib)
24
22
 
25
- spec.add_dependency "rutie", "~> 0.0.4"
26
23
  spec.add_development_dependency "bundler", "~> 2.1"
27
24
  spec.add_development_dependency "rake", "~> 13.0"
28
- spec.add_development_dependency "minitest", "~> 5.14"
29
25
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wasmer
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
- - Ivan Enderlin
8
- autorequire:
7
+ - Wasmer Engineering Team
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-03 00:00:00.000000000 Z
11
+ date: 2021-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rutie
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.0.4
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.0.4
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: bundler
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -52,23 +38,9 @@ dependencies:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
40
  version: '13.0'
55
- - !ruby/object:Gem::Dependency
56
- name: minitest
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '5.14'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '5.14'
69
41
  description: Wasmer is a Ruby extension to run WebAssembly binaries.
70
42
  email:
71
- - ivan.enderlin@hoa-project.net
43
+ - engineering@wasmer.io
72
44
  executables: []
73
45
  extensions:
74
46
  - Rakefile
@@ -78,6 +50,7 @@ files:
78
50
  - ".github/ISSUE_TEMPLATE/---bug-report.md"
79
51
  - ".github/ISSUE_TEMPLATE/---feature-request.md"
80
52
  - ".github/ISSUE_TEMPLATE/--question.md"
53
+ - ".github/workflows/documentation.yml"
81
54
  - ".github/workflows/test.yml"
82
55
  - ".gitignore"
83
56
  - CHANGELOG.md
@@ -88,23 +61,48 @@ files:
88
61
  - README.md
89
62
  - Rakefile
90
63
  - bors.toml
64
+ - crates/rutie-derive-macros/Cargo.toml
65
+ - crates/rutie-derive-macros/README.md
66
+ - crates/rutie-derive-macros/src/class.rs
67
+ - crates/rutie-derive-macros/src/function.rs
68
+ - crates/rutie-derive-macros/src/lib.rs
69
+ - crates/rutie-derive-macros/src/methods.rs
70
+ - crates/rutie-derive/Cargo.toml
71
+ - crates/rutie-derive/README.md
72
+ - crates/rutie-derive/src/lib.rs
73
+ - crates/rutie-derive/src/upcast.rs
74
+ - crates/rutie-test/Cargo.toml
75
+ - crates/rutie-test/src/lib.rs
76
+ - crates/wasmer/Cargo.toml
77
+ - crates/wasmer/README.md
78
+ - crates/wasmer/src/doc.rs
79
+ - crates/wasmer/src/error.rs
80
+ - crates/wasmer/src/exports.rs
81
+ - crates/wasmer/src/externals/function.rs
82
+ - crates/wasmer/src/externals/global.rs
83
+ - crates/wasmer/src/externals/memory.rs
84
+ - crates/wasmer/src/externals/mod.rs
85
+ - crates/wasmer/src/externals/table.rs
86
+ - crates/wasmer/src/import_object.rs
87
+ - crates/wasmer/src/instance.rs
88
+ - crates/wasmer/src/lib.rs
89
+ - crates/wasmer/src/memory/mod.rs
90
+ - crates/wasmer/src/memory/views.rs
91
+ - crates/wasmer/src/module.rs
92
+ - crates/wasmer/src/prelude.rs
93
+ - crates/wasmer/src/store.rs
94
+ - crates/wasmer/src/types.rs
95
+ - crates/wasmer/src/values.rs
96
+ - crates/wasmer/src/wasi.rs
97
+ - crates/wasmer/src/wat.rs
91
98
  - justfile
92
99
  - lib/wasmer.rb
93
- - lib/wasmer/version.rb
94
- - src/error.rs
95
- - src/instance/exports.rs
96
- - src/instance/globals.rs
97
- - src/instance/mod.rs
98
- - src/lib.rs
99
- - src/memory/mod.rs
100
- - src/memory/view.rs
101
- - src/module.rs
102
100
  - wasmer.gemspec
103
- homepage: https://github.com/wasmerio/ruby-ext-wasm
101
+ homepage: https://github.com/wasmerio/wasmer-ruby
104
102
  licenses:
105
- - BSD-3-Clause
103
+ - MIT
106
104
  metadata: {}
107
- post_install_message:
105
+ post_install_message:
108
106
  rdoc_options: []
109
107
  require_paths:
110
108
  - lib
@@ -119,8 +117,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
117
  - !ruby/object:Gem::Version
120
118
  version: '0'
121
119
  requirements: []
122
- rubygems_version: 3.0.3
123
- signing_key:
120
+ rubygems_version: 3.2.15
121
+ signing_key:
124
122
  specification_version: 4
125
123
  summary: Run WebAssembly binaries.
126
124
  test_files: []