spin VS mats3

Compare spin vs mats3 and see what are their differences.

spin

Spin is the open source developer tool for building and running serverless applications powered by WebAssembly. (by fermyon)

mats3

Mats3: Message-based Asynchronous Transactional Staged Stateless Services (by centiservice)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
spin mats3
22 20
4,872 59
2.8% -
9.8 8.7
2 days ago 5 days ago
Rust Java
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

spin

Posts with mentions or reviews of spin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-04.
  • Git Prom! My Favorite Git Alias
    1 project | dev.to | 5 Jan 2024
    For example, here's a snippet of my Git config for the spin repository:
  • 4 Ways to Participate in Advent of Spin - A Wasm Coding Challenge
    2 projects | dev.to | 4 Dec 2023
    We built (and open-sourced) Spin to make the developer experience easier, and we want to show you this through Fermyon's Advent of Spin. You will be presented with fun coding challenges that'll help you learn to build with Spin and WebAssembly.
  • Creating a Server Side Rust WebAssembly App with Spin 2.0
    1 project | dev.to | 6 Nov 2023
    Fermyon Spin is the open source tool for building serverless functions with WebAssembly. We’re going to use a few Spin commands to go from blinking cursor to deployed app in just a few minutes. Along the way, we’ll walk through a Spin project and see some of the features of Spin 2.0.
  • Flawless – Durable execution engine for Rust
    7 projects | news.ycombinator.com | 25 Oct 2023
    linky: https://github.com/fermyon/spin#readme (Apache 2; and while I don't see any CLA, interestingly they do require GPG signed commits: https://developer.fermyon.com/spin/contributing-spin#committ... )
  • Building microservices in Rust with Spin
    1 project | dev.to | 18 May 2023
    To install the binary file on Windows, download the Windows binary release, unzip the file, and place the spin.exe file in your system path.
  • Spin 1.0 — The Developer Tool for Serverless WebAssembly
    17 projects | dev.to | 28 Mar 2023
    We are delighted to introduce Spin 1.0, the first stable release of the open source developer tool for building serverless applications with WebAssembly (Wasm)! Since we first introduced Spin last year, we have been hard at work together with the community on building a frictionless developer experience for building and running serverless applications with Wasm.
  • Spin – Build Microservices with WebAssembly
    1 project | news.ycombinator.com | 26 Mar 2023
  • Waggy v0.3 Released!!
    3 projects | /r/softwaredevelopment | 4 Dec 2022
    “Waggy is used for writing WAGI (WebAssembly Gateway Interface) compliant API routers/individual handlers. WAGI was developed by deislabs for accepting and routing incoming HTTP requests with WebAssembly via a configuration file (modules.toml) defining routes, modules, volumes to be mounted, etc. WAGI can run as a stand alone server, or with a framework such as the Fermyon/Spin framework Go SDK. Waggy allows for the flexibility of handling the routing via the modules.toml, or to define it code (Waggy is written in Go), as well as various pieces of convenient functionality such as the new features described above!!”
  • WasmEdge
    9 projects | news.ycombinator.com | 29 Nov 2022
    They’re VC-funded and will vendor lock-in you. See their response to my discussion:

    https://github.com/fermyon/spin/discussions/861

    With WasmEdge there is no vendor lock-in, it’s opaque and standards-based

  • Recommendations for a resource efficient backend framework?
    1 project | /r/webdev | 15 Oct 2022
    What language do you want? And how experimental are you wanting to go? This project is crazy cool https://github.com/fermyon/spin , but might be harder to work with if you’re not willing to use rust :p, think they might have made it easy for c# too though

mats3

Posts with mentions or reviews of mats3. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-25.
  • Flawless – Durable execution engine for Rust
    7 projects | news.ycombinator.com | 25 Oct 2023
    The “restart from where it failed”-aspect was a big reason for why I made Mats3. It is message-based, async, transactional, staged stateless services, or message-oriented asynchronous RPC. Due to the transactionality, and the “state lives on the wire”, if a flow fails, it can be restarted from where it left off.

    https://mats3.io

  • A Modern High-Performance Open Source Message Queuing System
    17 projects | news.ycombinator.com | 27 Jul 2023
    I am truly finding it hard to explain it. I have tried along a dozen angles. I actually think it is a completely new concept - and that might be the problem.

    There is an illustration on the front-page: https://mats3.io/

    Here's a set of small answers to "What is Mats?": https://github.com/centiservice/mats3/blob/main/README.md#wh...

    Here's a way to code up Mats3 endpoints using JBang and a small toolkit which makes it extremely simple to explore the ideas: https://github.com/centiservice/mats3/blob/main/README.md#wh...

    If you read these and then get it, I would be extremely happy if you gave me a sentence or paragraph that would have led you to understanding faster!

    The use of JMS is just a transport. I could really have used anything, incl. any MQ, or ZeroMQ, or plain TCP - or just a shared table in a database.

    Wrt. WebSockets, that is a transport typically between a server, and a end-user client, e.g. an iOS App. Actually, there's also a "sister project", MatsSockets, that bring the utter async-ness of Mats3 all the way out to the client, e.g. a webpage or an app. https://matssocket.io/

    NATS is just a message queue, with some ability to orchestrate. I do not like this concept of orchestration as an external service, that is one of the founding ideas of Mats3: Do the orchestration within each service, as you would do if you employed REST as the ISC mechanism.

  • JBang + Spring + Mats3: Setting up a multi-stage Async Messaging-based Endpoint in very few lines
    1 project | /r/java | 29 Apr 2023
    Read more about mats3 here: https://mats3.io/
  • Where is the "router"? on the client or MOM side?
    1 project | /r/softwarearchitecture | 29 Apr 2023
    I've made a Java library to facilitate the latter. https://mats3.io/ - you can start reading here: https://mats3.io/docs/message-oriented-rpc/, or test out some code right away, using JBang, here: https://mats3.io/explore/jbang-mats/
  • Messaging with a call stack: Async inter-service "RPC" with arbitrary call depth featuring "local variables" on a stack.
    1 project | /r/compsci | 29 Apr 2023
  • A detailed comparison of REST and gRPC | Kreya
    1 project | /r/programming | 29 Apr 2023
  • Mats3 with JBang: An exploration of Message-Oriented Async RPC with self-contained java programs
    2 projects | /r/java | 18 Apr 2023
    I have explained about this on the frontpage of Mats3: https://mats3.io/, and more in-depth in the first step of the "Walkthrough": https://mats3.io/docs/message-oriented-rpc/ - and even more into it at "Rationale for Mats", here: https://mats3.io/background/rationale-for-mats/
  • JBang and Mats3: Explore Mats3 Message-Oriented Async RPC with JBang “Java Exec”
    1 project | news.ycombinator.com | 17 Apr 2023
    JBang’s tagline: “Lets Students, Educators and Professional Developers create, edit and run self-contained source-only Java programs with unprecedented ease.”

    Mats3’s tagline: “Message-Oriented Async RPC. Message-based Interservice Communication made easy! Naturally resilient and highly available microservices, with great DevX and OpsX.”

    JBang is a cool "execute single Java source file with dependencies" solution, which offers a simple way to test new libraries. The article tries to showcase Mats3's core concepts through a series of JBang scripts.

    To streamline the process, a small library called 'MatsJbangKit' has been developed, which not only takes care of pulling up the Mats infrastructure but also depends on all the necessary dependencies. This means users only need to reference this single library in their JBang scripts. The aim is to pique curiosity and inspire further exploration of Mats3 and its potential.

    If you like it, a star on Github would be much appreciated: https://github.com/centiservice/mats3

  • Why messaging is much better than REST for inter-microservice communications
    9 projects | news.ycombinator.com | 12 Feb 2023
    This is a "tack on"-tool to the otherwise fully async nature of Mats/messaging.

    > For this to really work well, the message passing has to be integrated with the CPU dispatcher

    It sounds like you are 100% set on speed. This is not really what Mats is after - it is meant as a inter-service communcation system, and IO will be your limiting factor at any rate. Mats sacrifices a bit of speed for developer ergonomics - the idea is that by easily enabling fully async development of ISC in a complex microservice system, you gain back that potential loss from a) actually being able to use fully async processing (!), and b) the inherent speed of messaging (it is at least as fast as HTTP, and you avoid the overhead of HTTP headers etc.

    It is mentioned here, "What Mats is not": https://github.com/centiservice/mats3#what-mats-is-not

  • Mats3: Message-Oriented Async Remote Procedure Calls
    1 project | news.ycombinator.com | 17 Jan 2023

What are some alternatives?

When comparing spin and mats3 you can also consider the following projects:

wasmCloud - wasmCloud allows for simple, secure, distributed application development using WebAssembly components and capability providers.

blazingmq - A modern high-performance open source message queuing system

lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly

OpenMAMA - OpenMAMA is an open source project that provides a high performance middleware agnostic messaging API that interfaces with a variety of proprietary and open source message oriented middleware systems.

wit-bindgen - A language binding generator for WebAssembly interface types

cadence - Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.

component-model - Repository for design and specification of the Component Model

ntf-core - Sockets, timers, resolvers, events, reactors, proactors, and thread pools for asynchronous network programming

distribution-spec - OCI Distribution Specification

mosquitto - Eclipse Mosquitto - An open source MQTT broker

spec - WebAssembly for Proxies (ABI specification)

ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1