Comments (1)
I think this is hard because Wasmer can do exactly what it says on the tin: it is a Wasm runtime, and that means you can do stuff like: import/export functions and memory, do basic pointer math to access strings in the memory if you have well-made functions that allow you to do that... call a function that accepts a fixed number of typed values. Execute a Wasi program.
Access a compiler! Run the compiler when you want, either just-in-time or way ahead of time. Those are all the basic features of wasmer. If we're not sure why we needed a compiler, it's going to be tricky coming up with uses for wasmer. I'd like to say that Wasm (and wasmer) have tricked me into using a compiler, I never wrote a Rust program before today, and now I'm parsing HTML in Rust, and reading files from disk, and building Cargo crates as command-line and library types.
I had some wrong ideas about how this was going to be useful to me as a Rubyist going in. I'm still not sure I've got the right idea, but I think after doing this exploration I can definitely say that I now have a much better idea of what it's not.
There's also a legitimate argument to be made, maybe, that of the languages that Wasm supports interoperability with, we probably picked the worst. I think a good example would be "how to run ruby.wasm and execute a ruby script from wasmer-ruby, in a Ruby host" because frankly that's one I couldn't get working on my own after struggling a while (invalid integer return / something not sure what the error was when fetching the Wasi version maybe I compiled it wrong)
This would give a great opportunity to talk about "where no progress is possible" – why would anyone do this? There might be some good reasons, but I'll bet you can cross performance off the list if you're running Ruby as a wasm inside of Ruby, cause no matter what you do your ruby has to be interpreted, so it's going to be slower than an actually compiled language.
from wasmer-ruby.
Related Issues (20)
- Export Wasm globals ? HOT 4
- WASI / import function support ? HOT 4
- Failed to install this gem HOT 7
- gem install fails with Rust 1.46.0 HOT 3
- Too much rust too little Ruby HOT 1
- Install fails on Ruby 3.0.1 HOT 1
- More parity with other languages HOT 5
- Seg fault with statically linked version of Ruby HOT 4
- Migrate `rutie-derive` and `rutie-derive-macros` to `rutie HOT 1
- Cannot install on macOS with statically distributed Ruby version HOT 12
- Release version 1.0.1 HOT 1
- Integer conversion raising en exception
- Challenges in Running JS Interpreter via wasmer-ruby HOT 4
- Update to latest wasmer 2.3 (or 3.0 when released)
- Redirecting STDOUT and STDERR HOT 9
- Feature request : new classes `Uint64View`, `Int64View`, `Float32View`, and `Float64View` HOT 1
- Support WCGI?
- `undefining the allocator of T_DATA class ...` warning on Ruby 3.2
- gem install fails with Rust 1.75.0 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wasmer-ruby.