wasmer 0.1.1 → 0.2.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 (6) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +16 -15
  3. data/Cargo.toml +3 -3
  4. data/README.md +55 -30
  5. data/lib/wasmer/version.rb +1 -1
  6. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66d948e289c9851f9f766b0cdfdc2c34d96e70ac3e028891f138553b114348fa
4
- data.tar.gz: f4c4d9cd85f20177573da3a55666e97675add7ad11fc2c1aa793158a649c4dba
3
+ metadata.gz: 95ded27d0123f00e65407dae42df437be93ae305eaaa7de573d4e4e57f3f96a3
4
+ data.tar.gz: b623747a94aff21d1e3724f6f9d459ae7b904c3275596761e423a02c4b7f2977
5
5
  SHA512:
6
- metadata.gz: 637758cb646962b5fcb34a4777e2527fd81783319748f51fe54e85b8b8efd0af7661c5594059949f05617c4beb04bd7b5ad33f14304790db875a0f16d33116db
7
- data.tar.gz: dc07a70a0cfb2be89faf9a7949746891ddfbe77e3907d27d9c9588d510c0dd405c259997db650b2791e96fe82c418c28e88593f3ed0fe3996b4cd9cb4609dc87
6
+ metadata.gz: 9caa34babdc601de3e9575b47be3b5d79cc0a22f15b1b4a2648fcaba04c085894eee87ca0e0c764d4bd1c9aa17e3b1a80e30875d5fb592f5a1b63ca897c4f726
7
+ data.tar.gz: 509927b40b42ea16c929544d4aa35c540c646748f97cf90c67185a246acd37619715170bfde2567405d1b7142605833e4ca0227eeb2dc487ff50e69c90908517
data/Cargo.lock CHANGED
@@ -746,8 +746,8 @@ version = "0.1.1"
746
746
  dependencies = [
747
747
  "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
748
748
  "rutie 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
749
- "wasmer-runtime 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
750
- "wasmer-runtime-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
749
+ "wasmer-runtime 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
750
+ "wasmer-runtime-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
751
751
  ]
752
752
 
753
753
  [[package]]
@@ -959,7 +959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
959
959
 
960
960
  [[package]]
961
961
  name = "wasmer-clif-backend"
962
- version = "0.3.0"
962
+ version = "0.4.0"
963
963
  source = "registry+https://github.com/rust-lang/crates.io-index"
964
964
  dependencies = [
965
965
  "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -976,26 +976,26 @@ dependencies = [
976
976
  "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
977
977
  "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
978
978
  "target-lexicon 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
979
- "wasmer-runtime-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
980
- "wasmer-win-exception-handler 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
979
+ "wasmer-runtime-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
980
+ "wasmer-win-exception-handler 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
981
981
  "wasmparser 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
982
982
  "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
983
983
  ]
984
984
 
985
985
  [[package]]
986
986
  name = "wasmer-runtime"
987
- version = "0.3.0"
987
+ version = "0.4.0"
988
988
  source = "registry+https://github.com/rust-lang/crates.io-index"
989
989
  dependencies = [
990
990
  "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
991
991
  "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
992
- "wasmer-clif-backend 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
993
- "wasmer-runtime-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
992
+ "wasmer-clif-backend 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
993
+ "wasmer-runtime-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
994
994
  ]
995
995
 
996
996
  [[package]]
997
997
  name = "wasmer-runtime-core"
998
- version = "0.3.0"
998
+ version = "0.4.0"
999
999
  source = "registry+https://github.com/rust-lang/crates.io-index"
1000
1000
  dependencies = [
1001
1001
  "blake2b_simd 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1014,20 +1014,21 @@ dependencies = [
1014
1014
  "serde-bench 0.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
1015
1015
  "serde_bytes 0.10.5 (registry+https://github.com/rust-lang/crates.io-index)",
1016
1016
  "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
1017
+ "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
1017
1018
  "wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)",
1018
1019
  "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
1019
1020
  ]
1020
1021
 
1021
1022
  [[package]]
1022
1023
  name = "wasmer-win-exception-handler"
1023
- version = "0.3.0"
1024
+ version = "0.4.0"
1024
1025
  source = "registry+https://github.com/rust-lang/crates.io-index"
1025
1026
  dependencies = [
1026
1027
  "bindgen 0.46.0 (registry+https://github.com/rust-lang/crates.io-index)",
1027
1028
  "cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
1028
1029
  "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
1029
1030
  "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1030
- "wasmer-runtime-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
1031
+ "wasmer-runtime-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1031
1032
  "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
1032
1033
  ]
1033
1034
 
@@ -1214,10 +1215,10 @@ dependencies = [
1214
1215
  "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
1215
1216
  "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
1216
1217
  "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
1217
- "checksum wasmer-clif-backend 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0afacbd83b3897e59ac7686ebeed7c39bfae20bcf150869eb695e55afe19e91a"
1218
- "checksum wasmer-runtime 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "272c74d8494e4c59dba5df3a256e7661d1684ad7d8b425b80e9fe80124def568"
1219
- "checksum wasmer-runtime-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b9fd8e1f3c4eac86563394354aee2b8dfc59a8b9f7051478dfb27bff568b668"
1220
- "checksum wasmer-win-exception-handler 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46e37084fc382f419fa06e09ffd388aa1e2eaeeb6bfa3b8edd311f3f857751e9"
1218
+ "checksum wasmer-clif-backend 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a3550d9770c7e0cd4fda73658b9d75e94df108fcf825914817960226122d443d"
1219
+ "checksum wasmer-runtime 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50be960b2a9dd5371785db681f5592662f3827da42e71c42121bc43befd9d6af"
1220
+ "checksum wasmer-runtime-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bbef3ab3407493f5b9005b4ddff9f2ea9e9bb7283e034f98fde35ed1eeab4a9e"
1221
+ "checksum wasmer-win-exception-handler 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d577aa8ba78e23e0e6db974998f5856e3f082a8666e7183886a3c30183a12654"
1221
1222
  "checksum wasmparser 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5e01c420bc7d36e778bd242e1167b079562ba8b34087122cc9057187026d060"
1222
1223
  "checksum wasmparser 0.29.2 (registry+https://github.com/rust-lang/crates.io-index)" = "981a8797cf89762e0233ec45fae731cb79a4dfaee12d9f0fe6cee01e4ac58d00"
1223
1224
  "checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
data/Cargo.toml CHANGED
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  publish = false
3
3
  name = "ruby-ext-wasm"
4
- version = "0.1.1"
4
+ version = "0.2.0"
5
5
  authors = ["Ivan Enderlin <ivan.enderlin@hoa-project.net>"]
6
6
  edition = "2018"
7
7
  description = "Ruby extension to run WebAssembly binaries"
@@ -15,7 +15,7 @@ name = "wasmer"
15
15
  crate-type = ["dylib"]
16
16
 
17
17
  [dependencies]
18
- wasmer-runtime = "0.3.0"
19
- wasmer-runtime-core = "0.3.0"
18
+ wasmer-runtime = "0.4.0"
19
+ wasmer-runtime-core = "0.4.0"
20
20
  rutie = "0.5.4"
21
21
  lazy_static = "1.3.0"
data/README.md CHANGED
@@ -7,39 +7,40 @@
7
7
  <p align="center">
8
8
  <a href="https://spectrum.chat/wasmer">
9
9
  <img src="https://withspectrum.github.io/badge/badge.svg" alt="Join the Wasmer Community"></a>
10
+ <a href="https://rubygems.org/gems/wasmer">
11
+ <img src="https://img.shields.io/gem/v/wasmer.svg" alt="Gem"></a>
12
+ <a href="https://rubygems.org/gems/wasmer">
13
+ <img src="https://img.shields.io/gem/dt/wasmer.svg" alt="Gem"></a>
10
14
  <a href="https://github.com/wasmerio/wasmer/blob/master/LICENSE">
11
15
  <img src="https://img.shields.io/github/license/wasmerio/wasmer.svg" alt="License"></a>
12
16
  </p>
13
17
 
14
- # The Ruby extension to run WebAssembly
18
+ Wasmer is a Ruby library for executing WebAssembly binaries:
15
19
 
16
- The goal of the project is to be able to run WebAssembly binaries from
17
- Ruby directly. So much fun coming!
20
+ * **Easy to use**: The `wasmer` API mimics the standard WebAssembly API,
21
+ * **Fast**: `wasmer` executes the WebAssembly modules as fast as possible,
22
+ * **Safe**: All calls to WebAssembly will be fast, but more
23
+ importantly, completely safe and sandboxed.
18
24
 
19
- _Under Development, don't use it in product yet_.
25
+ # Install
20
26
 
21
- ## What is WebAssembly?
27
+ To install the `wasmer` Ruby gem, just run this command in your shell:
22
28
 
23
- Quoting [the WebAssembly site](https://webassembly.org/):
29
+ ```sh
30
+ $ gem install wasmer
31
+ ```
24
32
 
25
- > WebAssembly (abbreviated Wasm) is a binary instruction format for a
26
- > stack-based virtual machine. Wasm is designed as a portable target
27
- > for compilation of high-level languages like C/C++/Rust, enabling
28
- > deployment on the web for client and server applications.
33
+ **Note**: [Rust][rust] is required to install the Ruby library (Cargo
34
+ —the build tool for Rust— is used to compile the extension). See [how
35
+ to install Rust][install-rust].
29
36
 
30
- About speed:
37
+ [View the `wasmer` gem on RubyGems][wasmer-gem].
31
38
 
32
- > WebAssembly aims to execute at native speed by taking advantage of
33
- > [common hardware
34
- > capabilities](https://webassembly.org/docs/portability/#assumptions-for-efficient-execution)
35
- > available on a wide range of platforms.
36
-
37
- About safety:
39
+ [rust]: https://www.rust-lang.org/
40
+ [install-rust]: https://www.rust-lang.org/tools/install
41
+ [wasmer-gem]: https://rubygems.org/gems/wasmer
38
42
 
39
- > WebAssembly describes a memory-safe, sandboxed [execution
40
- > environment](https://webassembly.org/docs/semantics/#linear-memory) […].
41
-
42
- ## Example
43
+ # Example
43
44
 
44
45
  There is a toy program in `examples/simple.rs`, written in Rust (or
45
46
  any other language that compiles to Wasm):
@@ -71,9 +72,9 @@ $ ruby simple.rb
71
72
  3
72
73
  ```
73
74
 
74
- ## API documentation
75
+ # API documentation
75
76
 
76
- ### The `Instance` class
77
+ ## The `Instance` class
77
78
 
78
79
  Instantiates a WebAssembly module represented by bytes, and calls exported functions on it:
79
80
 
@@ -105,7 +106,7 @@ view = instance.memory.uint8_view
105
106
 
106
107
  See below for more information.
107
108
 
108
- ### The `Memory` class
109
+ ## The `Memory` class
109
110
 
110
111
  A WebAssembly instance has its own memory, represented by the `Memory`
111
112
  class. It is accessible by the `Instance.memory` getter.
@@ -124,7 +125,7 @@ view = instance.memory.uint8_view offset
124
125
  puts view[0]
125
126
  ```
126
127
 
127
- #### The `*Array` classes
128
+ ### The `*Array` classes
128
129
 
129
130
  These classes represent views over a memory buffer of an instance.
130
131
 
@@ -241,7 +242,7 @@ assert_equal 0b01000000_00010000, int16[1]
241
242
  assert_equal 0b01000000_00010000_00000100_00000001, int32[0]
242
243
  ```
243
244
 
244
- ### The `Module` class
245
+ ## The `Module` class
245
246
 
246
247
  The `Module` class contains one static method `validate`, that checks
247
248
  whether the given bytes represent valid WebAssembly bytes:
@@ -258,7 +259,7 @@ end
258
259
 
259
260
  This function returns a boolean.
260
261
 
261
- ## Install and Testing
262
+ # Install and Testing
262
263
 
263
264
  To compile the entire project, run the following commands:
264
265
 
@@ -268,12 +269,36 @@ $ just test
268
269
  $ ruby examples/simple.rb
269
270
  ```
270
271
 
271
- (Yes, you need [`just`](https://github.com/casey/just/)).
272
+ (Yes, you need [`just`][just]).
273
+
274
+ [just]: https://github.com/casey/just/
275
+
276
+ # What is WebAssembly?
277
+
278
+ Quoting [the WebAssembly site][wasm]:
272
279
 
273
- ## License
280
+ > WebAssembly (abbreviated Wasm) is a binary instruction format for a
281
+ > stack-based virtual machine. Wasm is designed as a portable target
282
+ > for compilation of high-level languages like C/C++/Rust, enabling
283
+ > deployment on the web for client and server applications.
284
+
285
+ About speed:
286
+
287
+ > WebAssembly aims to execute at native speed by taking advantage of
288
+ > [common hardware
289
+ > capabilities](https://webassembly.org/docs/portability/#assumptions-for-efficient-execution)
290
+ > available on a wide range of platforms.
291
+
292
+ About safety:
293
+
294
+ > WebAssembly describes a memory-safe, sandboxed [execution
295
+ > environment](https://webassembly.org/docs/semantics/#linear-memory) […].
296
+
297
+ [wasm]: https://webassembly.org/
298
+
299
+ # License
274
300
 
275
301
  The entire project is under the BSD-3-Clause license. Please read [the
276
302
  `LICENSE` file][license].
277
303
 
278
-
279
304
  [license]: https://github.com/wasmerio/wasmer/blob/master/LICENSE
@@ -1,3 +1,3 @@
1
1
  module Wasmer
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wasmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Enderlin