RyanLamansky / dotnet-webassembly

Create, read, modify, write and execute WebAssembly (WASM) files from .NET-based applications.
Apache License 2.0
792 stars 74 forks source link

Roadmap & Timeline #17

Closed RyanElfman closed 3 years ago

RyanElfman commented 5 years ago

Hello,

Is there a roadmap with a timeline for when a stable version will be released?

Thanks, Ryan

RyanLamansky commented 5 years ago

The general road map is to pass all the spec tests (with the possible exception of edge cases that don't play nice with the .NET CLR and are unlikely to impact a real program). The biggest hurdle there right now is that some of the spec tests include code on dead paths that mess up the stack tracking--something that a compiler would optimize out of a real program but is blocking too many tests for me to be comfortable shipping.

The API should be pretty stable right now; there's one case where I'm using nested classes that I'd like to get rid of, but I'm not considering any other changes.

I think it will work for most real WASMs, provided you can supply all the imports the WASM expects. I can't be 100% confident of that until more of the edge case spec tests are passing but people have had success with it.

RyanElfman commented 5 years ago

Thanks for the quick response! That's interesting there are some specific edge cases that don't play nicely with .NET.

Are you able to call out specific people/companies using this in a production scenario at all? That would be helpful for decision making on whether or not to use your code.

RyanLamansky commented 5 years ago

I haven't heard of anyone using this in production, though with over 3000 downloads on NuGet there certainly have been people experimenting with it over time.

Although I haven't gotten it to a point where I'm ready to call it 1.0, it may be suitable for your needs in its current state and you can certainly alter it in any way you want thanks to its permissive license

If you were thinking about using it and decide not to, I'm interested to hear what library you use instead. Running WASM on .NET is a very niche topic and there aren't a lot of fully functional options out there; I'm not aware of any others that do run-time CLR mapping of WASM instructions.

RyanLamansky commented 3 years ago

Updates for you: