Aiden πŸ›οΈπŸ΄ Profile picture
Jul 11 β€’ 18 tweets β€’ 4 min read
Let's talk about EmbassyOS 0.3.1 for a minute.

It may not look very different, but I'm super excited about it, and I think you should be too.

πŸ§΅πŸ‘‡
But first, a quick high level overview. EmbassyOS 0.3.1 includes:
- A password reset flow: you can now reset your password with physical access to the device. This will not be supported when disk encryption is enabled.

(1/17)
- Selective backups: you can now backup specific services without having to backup the whole Embassy.
- Restart button for services
- JS based package procedures
- Support for side loading packages from your dashboard

I'll be going into detail on those last 2.

(2/17)
If you have had the chance to update already, you may have found that interacting with your Embassy is incredibly snappy now. From configuration, to properties, to dependency autoconfiguration.

(3/17)
The secret ingredient? JavaScript. New in 0.3.1 is a JS execution environment that can be used by package devs to interact with the operating system. This gives us a massive performance benefit over docker-based implementations, while sacrificing almost no flexibility.

(4/17)
Why JS? Built for the web, JS is best in class when it comes to sandboxing, and has very heavily optimized interpreters, like v8. Anything you don't like about the language itself can be solved by using other source langs that target it, like Typescript or Purescript.

(5/17)
And if that's still not good enough, JS can bind easily into WebAssembly (WASM), allowing you to use a whole host of other languages as your source, including Rust. EmbassyOS doesn't support WASM today, but will be available soonℒ️.

(6/17)
Thanks to the fine work done by @deno_land, we were able to use off the shelf bindings to v8 directly from the embassy daemon, giving us a fast, standards-compliant, well-sandboxed execution environment in which we can provide arbitrary host functions.

(7/17)
These host functions can allow package devs to interact with the OS and package, and can provide filesystem access, network access, process execution within the service's docker context, and could even allow subscribing and reacting to OS events.

(8/17)
Not all of these host functions are implemented yet, but look forward to them continuing to grow in coming releases. These APIs can give us fully scriptable, highly performant packages, that allow for the unparalleled user experience that the Embassy provides.

(9/17)
And on top of all of that, we now provide a library that you can import into your embassy package project, containing both typescript definitions for all types used by EmbassyOS, as well as functions for performing many common operations.

(10/17)
But wait, there's more! Also new in EmbassyOS 0.3.1 is the ability to side load packages directly from your embassy dashboard. Just drag and drop your .s9pk file, and it will install.

(11/17)
This is what makes EmbassyOS an open platform. Compared to other plug-and-play node products, the Embassy is completely unique in this aspect. All other options are completely bundled, and would require forking the project to add a new app.

(12/17)
Think about how on iOS, you can only install apps that are approved for the app store, but on Android you can install any app you damn well please, just by downloading the apk. Yeah, like that.

(13/17)
If you want to run software that someone else has packaged, you can do that, and take advantage of everything Start9 has built. And no one, not even us at Start9 can stop you. This was always true, but now it's easier than ever.

(14/17)
All that being said: be careful! Sandboxing within EmbassyOS is far from where it needs to be for installing untrusted packages. Malicious software can very easily compromise your Embassy as it is today!

(15/17)
Improving sandboxing is a priority for us, and this will get better over time. But for now, installing software from untrusted sources is #reckless! Start9 cannot vouch for packages that are not listed on our marketplace.

(16/17)
Finally, 0.3.1 comes with a ton of under the hood refactors, bugfixes, and performance improvements. It may not sound too glamorous, but stability is a top priority for us.

That's all I have to say for today!

You can find the full details at github.com/Start9Labs/emb…

(17/17)

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with Aiden πŸ›οΈπŸ΄

Aiden πŸ›οΈπŸ΄ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(