Swifton VS embassy

Compare Swifton vs embassy and see what are their differences.


A Ruby on Rails inspired Web Framework for Swift that runs on Linux and OS X (by sauliusgrigaitis)


Modern embedded framework, using Rust and async. (by embassy-rs)
Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
Swifton embassy
0 13
1,996 668
- 16.2%
0.0 9.9
about 5 years ago 2 days ago
Swift Rust
MIT License 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.


Posts with mentions or reviews of Swifton. We have used some of these posts to build our list of alternatives and similar projects.

We haven't tracked posts mentioning Swifton yet.
Tracking mentions began in Dec 2020.


Posts with mentions or reviews of embassy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-02-02.
  • Embassy – Modern embedded framework, using rust and async
    1 project | news.ycombinator.com | 2 May 2022
  • Async Rust vs RTOS showdown! - Spoiler: Rust is faster!
    2 projects | reddit.com/r/rust | 2 Feb 2022
  • Rust embedded and networking
    2 projects | reddit.com/r/rust | 24 Jan 2022
    I think embassy, embassy-net on top of smoltcp might also be worth a look
  • Why asynchronous Rust doesn't work
    3 projects | reddit.com/r/programming | 13 Nov 2021
    Rust’s async design allows for async to be used on a variety of hardware types, like embedded. Green threads/fibers are much more useful for managed languages like Go and Java that don’t typically have to run without an operating system or without a memory allocator. Of course C++ can do this also, with their new coroutines/generators feature but I don’t think it’s very controversial to say that it is much harder to use than Rust’s async.
  • Rust on the MOS 6502: Beyond Fibonacci
    8 projects | news.ycombinator.com | 21 Sep 2021
    I guess when mentioning Rust on Nordic controllers one should also mention these excellent projects


  • Will rust's standard libraries maintain their synchronous interfaces?
    3 projects | reddit.com/r/rust | 9 Sep 2021
    FYI async is actually really exciting for embedded. Check out embassy, which allows you to write async code and run it on a very thin executor on embedded devices. The reason this is exciting is that the executor can automatically put the MCU to sleep when there is no work to do (it will be woken up again when something happens, e.g. a timer going off or some data arriving from a peripheral). Very useful for battery consumption! Async is not appropriate for all embedded though: some devices require precise timing. You wouldn't want your pacemaker going to sleep when it should be pumping your heart! For this case, you organise your work by priority and then use interrupts to suspend low-priority work when there is something more important to do.
    3 projects | reddit.com/r/rust | 9 Sep 2021
    Small microcontrollers can fit async runtimes with statically allocated tasks, embassy (embedded async) is doing real neat things in this space: https://github.com/embassy-rs/embassy
  • Ask HN: Thoughts on Async in Embedded?
    1 project | news.ycombinator.com | 15 Jul 2021
    In the Rust OSS embedded community, Async is a popular approach, most notably with Embassy: https://github.com/embassy-rs/embassy

    In embedded, it's common to use interrupts, DMA, and leverage multiple cores to handle concurrent events without blocking the main program loop. These are traditionally handled with deliberate register writes. Eg send a command to a peripheral to start a task. Continue running the program. When the task is complete, an interrupt fires, and code to handle the completion is immediately run.

    Async/Await functionality is used to abstract over these processes, using Futures. In my own programs, the abstraction doesn't provide enough value over natively handling interrupts, and DMA, to be worth the added complexity and cognitive overhead. Eg, framework code you need to account for, and coloring issues, which I'd argue still apply to Rust.

    I'm deliberately asking here, to get an outside perspective from the Rust community (They love embedded and RTIC), and the more general embedded community (Rust is Foreign, and new patterns are viewed with caution). Of note, RTOS is popular in C embedded, which perhaps handles some of the same abstraction issues handled by Async and RTIC in rust.

  • What is the state of async/await on embedded rust?
    1 project | reddit.com/r/rust | 16 Jun 2021
    It's working just fine, you just need an async runtime that supports your chip. embassy is where most of the current progress and experimentation is happening (it requires nightly Rust, but it is possible to write embedded async runtimes that work on stable too).
  • Where can async not run?
    2 projects | reddit.com/r/rust | 8 Jun 2021
    Async is a zero-cost abstraction, so there is no extra cost in terms of CPU or memory. Async could be less costly than using a traditional real-time OS on an embedded system because you don't need one stack per task and you don't need context switching between tasks. This of course depends on the executor being used. Something like tokio is not what you want running on a microcontroller, but embassy looks promising.

What are some alternatives?

When comparing Swifton and embassy you can also consider the following projects:

Express - Swift Express is a simple, yet unopinionated web application server written in Swift

rusty-clock - An alarm clock with environment stats in pure bare metal embedded rust

rust-mos - Empowering everyone to build reliable and efficient software.

cassette - A simple, single-future, non-blocking executor intended for building state machines. Designed to be no-std and embedded friendly.

nrf-hal - A Rust HAL for the nRF family of devices

Perfect - Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)

crates.io - Source code for crates.io

swifter - Tiny http server engine written in Swift programming language.

Vapor - 💧 A server-side Swift HTTP web framework.

bl602-hal - Hardware Abstract Layer for BL602 RISC-V WiFi + BLE SoC in embedded Rust

Embassy - Super lightweight async HTTP server library in pure Swift runs in iOS / MacOS / Linux

Noze.io - Evented I/O streams for Swift