[HN Gopher] Spin 2.0 - open-source tool for building and running...
       ___________________________________________________________________
        
       Spin 2.0 - open-source tool for building and running WASM apps
        
       Author : acifani
       Score  : 115 points
       Date   : 2023-11-04 12:01 UTC (10 hours ago)
        
 (HTM) web link (www.fermyon.com)
 (TXT) w3m dump (www.fermyon.com)
        
       | matei_radu wrote:
       | Hi, everyone, I'm one of the Spin maintainers.
       | 
       | We're really excited about the new release, happy to answer
       | questions about it!
        
         | jedisct1 wrote:
         | How to use Spin with Zig?
        
           | matei_radu wrote:
           | Hey, jesdict1!
           | 
           | Check out this community project that adds support for Zig --
           | https://github.com/tensorush/zig-spin.
        
         | tipiirai wrote:
         | Congrats on the release! Any example sites where Spin is in
         | active use?
        
           | matei_radu wrote:
           | Thank you!
           | 
           | (disclaimer: I work at Fermyon, the company that created
           | Spin.)
           | 
           | All of Fermyon's websites are powered by Spin, and there are
           | quite a few users who are deploying their Spin applications
           | to Fermyon Cloud.
        
         | rockwotj wrote:
         | Congrats on the release!
         | 
         | Question how did you come up with your the languages you
         | support. Obviously how well the language compiles to Wasi is a
         | factor, but how did you end up picking C# for instance?
         | 
         | Additionally how does Javascript support work? Are you
         | embedding QuickJS?
        
           | matei_radu wrote:
           | Thank you!
           | 
           | To your point, the primary consideration for choosing the
           | languages is their support for WebAssembly, and WASI in
           | particular.
           | 
           | Due to Spin's heavy use of WASI and the component model,
           | languages that have first party support in the WIT bindings
           | generator (https://github.com/bytecodealliance/wit-bindgen)
           | are the easiest to implement, followed by languages that can
           | be built on top of the support for those with first party
           | support.
           | 
           | For example, the JavaScript support is built by embedding
           | QuickJS (in particular, Shopify's Javy project --
           | https://github.com/fermyon/spin-js-sdk), which then uses the
           | Rust SDK. (As a side note for the JS support -- adapting
           | QuickJS has been extremely helpful in getting JS support out;
           | however, we are in the process of rebuilding the JS runtime
           | using SpiderMonkey (with which a few people on the team have
           | significant experience) and JCO
           | (https://github.com/bytecodealliance/jco), and the web
           | platform compatibility makes it a significantly better
           | proposition for things like 3rd party dependencies).
           | 
           | C# is an interesting one -- the .NET team at Microsoft (and
           | in particular Steve Sanderson from that team) has been making
           | tremendous progress in ahead-of-time compilation for .NET and
           | generating Wasm and WASI compatible binaries (as opposed to
           | their initial approach on Blazor), and experimenting with
           | that led us to build support for Spin as well.
           | 
           | Finally, we do a lot to support other popular languages and
           | their Wasm support -- two examples: Python
           | (https://github.com/bytecodealliance/componentize-py) and
           | Java / TeaVM (https://github.com/fermyon/teavm-wasi), for
           | which we haven't fully integrated Spin support, but we hope
           | to get there soon.
           | 
           | I hope this explains a bit our process on language support,
           | happy to expand on any point here. Enjoy your weekend!
        
             | evntdrvn wrote:
             | yeah Steve Sanderson is a force :)
        
         | neophyt3 wrote:
         | Hi Matei_Radu, Is it possible for spin to support actor-model
         | pattern for eg. can it run long running process to execute
         | trading strategies which will accept tick data every second
        
       | jtflynnz wrote:
       | Very intriguing, great work and thanks for sharing!
        
         | matei_radu wrote:
         | Thank you for the kind words!
        
       | _a_a_a_ wrote:
       | Ahem? "Spin is a widely used open-source software verification
       | tool"
       | 
       | and it's been around a long time
       | 
       | "The tool was developed at Bell Labs in the Unix group of the
       | Computing Sciences Research Center, starting in 1980, and has
       | been available freely since 1991"
       | 
       | http://spinroot.com/
        
         | theamory wrote:
         | Ha, naming is tough! At least it's not named Atlas :)
        
           | notum wrote:
           | Allow me to introduce you to Watergate, our new dam
           | simulation platform.
        
         | 9dev wrote:
         | I wonder if we're at a point where it doesn't really make sense
         | anymore to insist on unique names. Most of the good ones have
         | been used by now; and this likely won't get better as more time
         | passes.
        
           | slimsag wrote:
           | It's a solved problem, and it's called trademark law / a
           | wordmark.
        
             | rubyfan wrote:
             | If you've been through the process of naming something that
             | is safe for trademark purposes then you might think we're
             | beyond unique names for things. We're out of options.
        
             | 9dev wrote:
             | Well it's certainly not solved by trademark law for me, a
             | lowly software engineer, trying to pick a rememberable name
             | for my open source project that'll _maybe_ grow into
             | something bigger someday.
        
       | luismedel wrote:
       | I still have to try wasm, but I see the main focus seems to be on
       | cloud and edge deployments.
       | 
       | What I'd really like would be to program a game in C (or classic
       | Turbo Pascal) and have a way to run it "hosted" in a iOS, Android
       | or <whatever platform> native app. Is that possible nowadays?
        
         | kvdveer wrote:
         | Someone would need to implement a library to abstract away the
         | differences between all of these platforms, like Spin does for
         | server software.
         | 
         | I'm not aware of a tech stack that does that.
        
           | syrusakbary wrote:
           | WASIX might come in handy for that!
           | 
           | https://wasix.org
        
           | trealira wrote:
           | I also replied to OP, but SDL is popular for this.
           | 
           | https://www.libsdl.org/
        
         | trealira wrote:
         | You could write it using SDL2, a popular C library. They say
         | the support iOS and Android:
         | https://wiki.libsdl.org/SDL2/Installation
        
       | jokoon wrote:
       | how can I call a js function from wasm?
        
       ___________________________________________________________________
       (page generated 2023-11-04 23:00 UTC)