Skip to main content
View on YouTube to comment and like!

almost 2 years ago Syntax Podcast

Is Tauri the Electron Killer?

Wes Bos

Wes Bos Host

Scott Tolinski

Scott Tolinski Host

Topic 0 33:33

Single codebase compiles correctly per platform

Guest 2

in order with a compiled language To to finally come to the the situation where you are not the absolute owner of every piece of memory out there, It's a caveat that I think is is, acceptable we're able to to find out where people went right or where they went wrong. I mean, NativeScript, decided. It's been designed, and we hand it off to the auditors. And as the auditors have findings, we revise and code smell strategy because once you think you know a system really well and you provide one way for people to interact with it and use it, you think that is the way. And in the course of integrating Towery into developer ecosystem provided by, and haptics. So, you know, when when the ride arrives, you get a buzz. And that was all and those are the methodologies that are available.

Guest 2

which, like, means you have a different way of compiling it and then interacting with it and rigging it. And, ultimately, of connoisseurs.

Wes Bos

100 lines of swift in there and then maybe another 20 lines to register the plug in via Rust, and then you can call that thing from JavaScript. That's pretty neat. I'll link up the example in the the show notes.

Wes Bos

that much. It it makes sense where there's a sources haptics plug in Node swift and

Guest 2

If something changes and it becomes suddenly easier through work being done by people in the in the Rust or or Android or iOS ecosystems, Yeah. Williams, Cassidy, she publishes a challenge, would you consider Crab Nebula I know we we kinda went over how you got funding. But would you consider Crab Nebula funding the development of Torrey long term? I think we're always going to be involved. The the risk of just 1 company doing it is that Wes were talking about before Mhmm. About testing your your theories the main Just leave it be, and they're, like, okay.

Guest 2

inside of Rust,

Guest 2

that Like, I've seen a lot of people build these. Like, there was one from a long time ago that's recently been updated where you know, as time went on at Tauri, at the organization, the project, we've adopted a few of those server libraries that we're using and help maintain them for the rest of the community. But we always felt like there was a better opportunity out there. And She used an I thirty two. She used a type while in the weeks before justified in requiring that you have a milestone of shipping an updated Electron app You know? It's been like, yeah. Okay. We'll do you a service. And, you know, Microsoft rightly, in my opinion, I'm not judging here, but there there is a trade craft to understanding the that's running in your Tori app? With a bridge, and we write the bridge in Rust. Right? So that the bridge is then available to Rust, but through the JavaScript API that the commands functionality

Wes Bos

we'd absolutely consider, you know, revisiting that, making alternative approaches available to to people. Yeah. I'm just looking at the haptic plug in here, and it's it's really not

Guest 2

to run a Talry app in those contexts on mobile, Node of product, which I love, right, and understanding, like I this Wes a a challenge from cast a couple ago, crazy interrelated are increasingly turning to AI tooling.

Guest 2

I also have to say the the mobile ecosystem has a couple decades head start on Telry, and we are not a company with a a 1000 employees, and we don't have 1,000,000,000 of of dollars of funding, having a framework like Towery that is regularly audited for minor releases and externally audited for major releases I think

Topic 1 23:06

Custom web view planned to solve limitations

Scott Tolinski

it feels like you're always working hard on something on this project. And that's it. There's nothing about a paid product or anything on the website that I can see. How does this project

Wes Bos

It's damn cool. That's that's a ARM chip. Correct?

Wes Bos

The s t 32. Hold on. Let me Google what that is.

Guest 2

Chip

Guest 2

Yeah. We're targeting the s t 32.

Scott Tolinski

make money and sustain itself? the Safari

Wes Bos

Wow. Wow. How big how big would that would be? Could you run that on some pretty small hardware?

Scott Tolinski

STM, if you're listening, love to talk to you guys. Good stuff then. With all this research and all these these projects and and the Torrey project has been so, it feels like vibrant for a long time. There's always movement. You know, I've been following since early on. And

Wes Bos

That's a like a chip that would go in a low power cell phone?

Guest 2

that is harnessed and controlled by Telry.

Guest 2

The project is a purely open source project that is hosted by a Dutch foundation. No one who works inside of the organization receives any money for it. It is all based on volunteering.

Guest 2

for And, yeah, that's not to make the testing harness that is available to Safari I decided that it's an important opportunity In the course of our design decisions leading up to the 2 point o release of leveraging the Rust programming language to build a whole browser. As fate would have it, the search bar barons

Guest 2

and solve that layer we actually received some funding from a Dutch nonprofit So Tori two point o is scheduled for in about 2 weeks, the stable release. What the versions mean to us in the Tori if you have a giant part order, you can basically and I've been having Some people have accused me personally of you know, in a way, of course, of doing it for the upvotes and it runs great on the platform you built it. And and having a launcher is, you know, kind of a a semi common thing, especially for via invoke and respond but a bootable Are a couple companies, mine included, that discovered that, well, actually,

Topic 2 39:38

Game launchers commonly built with Tauri

Guest 2

Yeah. So actually started a company here and run a company out of Malta with a whole bunch of amazing people around the world. Wow. So

Guest 2

Cheyenne That is print your own ASIC on the expanded version of the 32 series and put all of your logic onto silicon.

Guest 2

then it's a documentation sprint. The RC phase is always a documentation sprint because we just found out that all of our assumptions have been proven or fixed by the auditors.

Wes Bos

Man, this

Scott Tolinski

What JS the future of Tori look like? I know we're in our c phase for version 2.

Scott Tolinski

full release anytime soon? And after that, what's next?

Scott Tolinski

to writing Rust because, like we've talked about, you don't have to get crazy into it. But, you know, I'm not a Rust engineer, and and we were able to to ship some pretty serious stuff just getting into it.

Guest 2

the WASM blob in the browser on what part of the world you're from, whether it's Israel or California. And I probably even said Israel wrong. So, you know, I think how React Native shares

Wes Bos

visualizers,

Wes Bos

absolutely massive. Yeah. And, like, there's hundreds of apps on here. It's really cool. There's EPUB readers, screen recorders

Guest 2

and use the launcher to do amazing things, like manage the assets, manage the versions, use it to do the download because you got this massive binary that you just spit out of your game engine of choice, even I think because no one's gonna do it for us. Apparently, we gave them 5 Yarn, and the situation hasn't gotten better. And then you might ask yourself, Daniel, well, if you give a mouse a cookie, he's probably gonna ask for a glass of milk, and you better believe it. There Yarn I think the interesting yes, the operating system is the best we have for secure updates. Like, I think that Safari is going to do a better job, generally speaking, of shipping ecosystem is an alpha means we're just trying stuff out. We're trying to see, like, what's good enough what's good enough for everybody. A beta means the architecture has been then it's actually hot push to running apps, giving is a huge lift. I think that's something that's gonna carry on for a decade probably. And then I sort of hinted at it, but I I think that the interop with other programming languages like Python, like PHP, We knew this back in 2019. And in fact, back when we were just a core team of, like, 4 people, we even tried to compile Servo. We tried to get Servo to run. Can you explain what Servo is? Yeah. So Servo JS a project kicked off by the, Mozilla research team. The idea behind Servo was to in one way for all the platforms.

Guest 2

I was like, you know, Rust is a lot faster than JavaScript, and she's like, Node. It isn't. And I was like, okay.

Guest 2

run the challenges, but write them in Rust. Cool. And we got into this really interesting where people place and should place their private projects, their their proprietary interfaces

Wes Bos

on there,

Guest 2

and and LinkedIn says download.

Guest 2

Go over a 150 different plugins to audit It's easy to to manufacture.

Wes Bos

keyboard driven database management.

Wes Bos

There's so many cool things on here. It's fun to just click through.

Guest 2

that just doesn't go very big, which meant that suddenly we were confronted with big int and the this whole notion of numbers. And I guess the reason why I'm bringing this up is if somebody who's never studied computer science before is able to start completing Cassadeus challenges in 3 weeks and learn about JavaScript at the same time, there's really no excuse other than being in these cases where we have to interface with low level subsystems. We have to interface with the system WebView, of benefit. You know? When you are a a solid engineer and you're capable of making these kinds of things, then it also opens up a market for other companies to get involved and decide, yeah. We're gonna make this plug in for our customers. And, hey, maybe 1 out of 10 get contributed back upstream to the open source community. Right? Yeah. And I found the Tori ecosystem to be in terms of, like, or just community in general, whether it's the Discord or the GitHub.

Wes Bos

they mark which ones are, like, paid, like, closed closed source paid apps, which is kinda interesting because if people are running businesses on us, you have an idea? You wanna build a a little app and charge $6 for it? You can do that with this. Yeah. And you know what? I will say from somebody who doesn't write Rust, it's a good introduction

Scott Tolinski

Is is that going,

Guest 2

it's battle ready, but it hasn't been battle tested. You can't expect there will be any changes because all of the critical stuff has been found, we felt that it was important actually, it took a year of doing this, but they ultimately approved Crab Nebula as the official partner of Tauri, which is beneficial to us. I mean, we've we've placed information by which people can create but actually, it's a it's a really interesting cause a a vote of no confidence, remove the board of directors from their seats, and then vote in a new board and revert whatever commits those people thought they were entitled to make made.

Guest 2

until

Scott Tolinski

similar in ways, you know, especially if you're not coming from type languages primarily.

Wes Bos

Especially,

Wes Bos

awesome Tori list is

Guest 2

the API is locked, and we're just bug fixing. It's open to the community. It's technically, Wes a and do it in a secure way. And that was actually one of the first occasions where agnostic framework that is good. I guess, yeah, it it sounds trite, but I really believe that And, technically, we won't accept anything into I'm actually writing a book at the weekends. I got involved in the discussion around the Cyber Resilience Act in Europe last year when From the client, from the web worker.

Guest 2

game studios.

Scott Tolinski

It's just so it's a heck of a lot of fun to build an app. I it's just cool. My partner's

Topic 3 30:46

Uses native bridges similar to other cross-platform tools

Wes Bos

You tap something. Is the idea there that they're similar to React Native Wes there's just a large community of people that will build bridges for that type of thing? I mean, writing Swift is just another programming language, right, just like Kotlin? How would you access, like, the Swift from your

Guest 2

had to deal with these problems in one way or the other. And at the end of the day, it's just engineering.

Scott Tolinski

So what was what is the hardest part of putting mobile into Tori? I mean, it had been around with desktop for a little while, like and, you know, I know you had to rewrite a considerable amount of things. But getting mobile applications to work well with Tori, like, what overall, what was the the hardest part of that whole process?

Guest 2

There's so much prior work and good stuff out there, and thanks to the open source community, that solves the problem of, oh, we don't have WebRTC. I guess that's okay. It's absolutely not okay to be missing web

Wes Bos

JavaScript That then shares memory.

Guest 2

provides,

Guest 2

plugins that we wrote that are open source to everybody.

Topic 4 20:50

Safari web view lacks dev tools and WebRTC on Linux

Scott Tolinski

the weird thing about the Apple approach is that the some of the apps are just tied so directly

Guest 2

Electron much and, well, we need a WebView.

Scott Tolinski

any request for

Scott Tolinski

Safari web view, the w k web view, they hadn't implemented the share screen dialogue. That was only part of Safari proper, but not part of the web view. Is that correct? And so what it would do when you prompt it, it would automatically fail

Scott Tolinski

get display media, I believe. And that wasn't an older version as far. I wouldn't say that was about a year and a half ago. And I just had to sit on my hands and wait for Safari Tori, and Tori's just hitting their version 2. It's in release Node now. We're gonna be talking all about what is Tori, you know, what are the motivations behind it, what can it be used for, and just all about the nitty gritty there. So my name is Scott Tolinski. I'm a developer from Denver. With me, as always, is Wes Bos. What's up, Wes? Hey. Excited to talk to Daniel about

Guest 2

for the web view, which is just, I mean, a little baffling to me. And, hey, guys. If you're listening out there, I'd love to talk to you about this. It's not that hard.

Guest 2

somebody just decided that if you don't know

Guest 2

You Node, ring me up. You'll find me anywhere you look. We built Tauri from these first principles of giving people the power, and then, for that version of Chromium that your users are running, You can write your menus in JavaScript. You can trigger all of the low level systems, like send a notification And believe it or not, I don't know if you follow Cassidy

Scott Tolinski

to push an update and for my computer to get an update before I could even think about implementing that with Safari, which I feel like that's the kind of thing that, you know, it

Scott Tolinski

is tied directly to your your Mac version. Right? And in my instance, with the

Scott Tolinski

to the OS. You just have to wait. And then you're not sure if your users are updating and all sorts of stuff there. I mean, it's, yeah, that's a tough world compared to being able to choose the version of the the Wes view. Yeah. The other

Topic 5 50:49

Concept of software being "done" unique to compiled languages

Guest 2

Manufacturing course. Check it out, Rustlings. It's a great way to learn the basics.

Guest 2

it's it's such especially for beginners, you think, oh, I've made an app. I'm done, and and actually it's, it's an infinite game in the context of, use it as a platform to to to spread the word.

Guest 2

almost And I I guess for veracity, from to make a guide for people just building software because the Talry ecosystem. I mean, you've probably worked with the auto updater, Scott. One of the the key things that we knew people were always going to face was setting up an auto updater lets you then communicate with the core of the Tori app, hobby projects or, you know, that instantly goes into kiosk mode running Telry OS, of comedians who've made short films weird one is the nuanced perspective That's very near future.

Guest 2

it's it's been a really exciting journey, especially because the the topic is so

Scott Tolinski

3 years. Things that people wrote about it 2 years ago are just wrong, like, literally wrong because this thing has been evolving. And yeah. So that's that's my my shameless plug. Sweet. I'm writing a book. Cool. Well, thank you so much. This has been incredible. It's been great to hear about Tori, but not only that, just all your amazing thoughts and everything. So thank you so much. This has just been really enlightening. If you haven't checked out Tori, we'll post all the links of everything that we talked about in these show notes. I highly recommend to give it a try. It's a incredible

Guest 2

a behemoth of a topic We actually had to fundamentally rethink a lot of the things that we were doing, Of everything that happens after it's compiled. Interacting with the entire together with the working group in the Tauri documentation that says, hey. You don't want to roll your own update? Go check out this Crab Nebula service. Or you're having trouble debugging the IPC call, check out Crab Nebula's dev tools. In in a similar way to,

Wes Bos

Awesome. And can people find that anywhere?

Guest 2

which I need, and and it was all about log lines. Basically, you get a log line and how much time elapsed between them, between jobs. And, you know, for for Cheyenne, this was a big thing because, to chat GPT, copy paste your Rust function that you wrote, ask it to change it to JavaScript. We took that. We put it into

Guest 2

documents that go back 15 Yarn. And in Node document, they'll say, leveraged geolocation can, in some cases, have an idea but don't know how to bring that all the way to the end a lot of the code that's going to be executed inside of the context of a tower app is going to be written by LLMs or LLMs trained by humans or maybe slightly modified a lot of people use the Towery Discord because we have a showcase, and what that led to was an even more secure And because we were talking about this act gets published in Europe

Scott Tolinski

forever. I think almost 20 years they've been doing them. Yeah. And I have one in my watch view from 13 years ago. It said I watched this at some point in the past 13 years. So Yeah. And

Guest 2

products with digital elements are now going to be regulated in Europe.

Guest 2

that I thought I would take some mystery out of it operating system and and hardware that it's building for and gets rid of everything else. Like, if you're building for Bos Yarn, for example, or just macOS, let's call it that, the easy way, you're not gonna build all the stuff that you might need that's slightly different for Windows.

Guest 2

underserved, and that has to do with how they distribute the updates of WebView.

Scott Tolinski

piece of software in general to work in a great platform. So thank you so much, Daniel, for coming on. Thanks for having me. It was a pleasure.

Topic 6 45:20

After version 2 focusing on developer experience

Guest 2

really button down for 3 ESLint o. Node of those, if you ask me, is going to be having at least pnpm other hobbies. And

Guest 2

experimental web view of our own available on all 3 browsers. I mean, our release cadence is about once every 2 years. It's about how we Wes get to a major release. We're we're methodical in the approach that we take to releasing software, and, Right? So you can go and golf really small.

Guest 2

you know, that gives us enough time to collaborate with the other teams because that's a that's a pretty big project.

Guest 2

some other like, our release structures is kind of interesting, but The really powerful ones are written in something like C or C plus plus And Well, I mean, ignoring for the absolute security horrors of having your developer machines compromised, where you can store your assets, ship your assets, update your assets, and coming soon, proof compliance with these amazing new European regulations.

Topic 7 18:43

Building own web view called Verso based on Servo

Wes Bos

1000000000 lines. Yeah. And that would that would take up a ton of memory because you have it in 2 spots. Right? Right. It would be able to share that. Right?

Wes Bos

and you could have code that runs on the back end. I'm using air quotes here.

Scott Tolinski

So what's the likelihood that that ever makes it into

Guest 2

because there's not really even a great standard for web views. Web views have always kind of been that little extra thing.

Wes Bos

like a browser

Guest 2

user interface that works across all 5 platforms

Guest 2

purpose built web view, you know, she's never been exposed to a production environment. I mean, let alone GitHub. Actually, she does sign her commits now. You know? She's taking the right the right teacher at this time. But, I guess, the the ESLint I wanted to make is that when we decided projects, Joseph Jacks, from OSS Capital available to the web view. So Wes driver interfaces don't exist achieve stable launch.

Scott Tolinski

Tari as the the Wes view?

Guest 2

shared memory, which basically means the user interface

Scott Tolinski

Correct. That's cool.

Wes Bos

in

Wes Bos

Like, you send a a massive array from your back end to the browser.

Guest 2

obviously, for everybody, And, you know, in some cases, and you can just come and and showcase your app. And if you have an update, you give an update to the people that are using it or they give you some feedback, and that'll bubble up to the top of the showcase so you can also start to engage with the Towery community. And I guess if I was to and a cohort of amazing Wes view Actually, it's the launchers that people come to Towery to to build. So they'll build a launcher for the game in Towery were concerned about with Node point o was this method by which you send messages from the user interface to the core. It's like the interprocess communication, you call it. The way that we've been doing it in the beginning Wes, a very net which means it detects the target

Guest 2

but that is not Chromium, project will, but there's something that feels good at the end of the day when your Rust code compiles.

Guest 2

unified we're able to then communicate directly with the app itself. I mean, that can Which Chromium instance does it ship? Well, I can tell you it's not the latest Chromium. It's always behind, There Right? And then they're probably investigate the utility

Guest 2

and the back end JS long as they're sharing the same exact types. I'm not talking about big in tier, but mostly, you know, the same types, they can just share that memory instead of having to message across,

Wes Bos

Rust,

Wes Bos

performant. Node So you're what you're saying is, like, you literally built a web renderer,

Guest 2

critical Like, if the board of directors decided, oh, no. You know what? We're gonna take this private.

Topic 8 02:11

Tauri helps make small, fast, secure apps using webviews and Rust back-end

Guest 2

which JS, that's actually when you have these super highly motivated engineers and they're just kind of, like, stuck fooling their thumbs, like, I can't write docs all day. I have to do something, and we're, like, don't touch that again.

Scott Tolinski

mobile apps as well.

Guest 2

using a system web view. If I already said too many words that people don't understand, I'll start from the very top. You need a user interface, and Talry helps you make that, using the skills that you might know as a web developer on the front end and provides you with an application protocol interface, secure updates, and people are probably generally better about updating their operating system in Safari than they might be about Firefox.

Topic 9 03:52

Rewriting for mobile found faster IPC and more secure permission model

Guest 2

system for users because now they actually have to opt into and grant permissions on a very granular level official library of plug ins unless it offers both opportunities.

Guest 2

let's just say, left left room for be desired, especially when you wanted to do things like stream data from the back end because every blob has to be serialized, and then it has to go across the border transferred over to the front end, and then it has to be deserialized, and then it has to be integrated into whatever thing is reading, whether it's a video player or an audio stream. And so we put a lot of work into who's been around since 2012 and has been reading all these things. And and and built WASM from the Rust and then and executed Scott, are you gonna guess what happened? just turn it into this very utilitarian is not an excuse but what it does to add ons for Twitch streamers.

Guest 2

we felt that we found a better solution than what Electron was doing because our friends in the security community found a vulnerability that we were then able to sidestep because we are now forcing people who make updates to provide a TOWERY signing key to sign the actual binary a Wes view good enough for everybody, but designed for Tauri worked hard to keep it not absolutely necessary to use the tools provided by the respective ecosystems.

Scott Tolinski

so that when an update comes, it can prove that it's coming from the same authorial provenance. Right? Oh, yeah. Those are all sounds like tough problems. So I'll be on, like, websites. Right? We got websites, so just push new update. We don't have to worry about

Guest 2

you know, after the releases before the release, and you have to If you do not continue to innovate,

Topic 10 48:46

Avoid becoming outdated and irrelevant

Guest 2

Mhmm.

Wes Bos

Let's move into the last section here. We have a sick pick, and shameless plug, did you bring a sick pick for us? So my my sick pick would be, 5 Second Films. It's a it's a troupe

Guest 2

opens up the venue for everybody. Right? You don't have to be a Wes station to even touch it at at that point. That that's about as far out the window of this train that I can that I can lean. That's a you know what? I love what you said about find humor in it, and move on. I think that in in the the world I live in of software engineering,

Guest 2

at some point, probably that same day.

Guest 2

done is something that you can is where a lot of young startups are, you know, sharpening their swords and getting into the the the fray.

Guest 2

And and I think that of the 5 quintuplets is obviously Linux. Linux itself is

Scott Tolinski

even the concept of done is something that ESLint the JavaScript world, we don't have that that concept. If we see a package that hasn't seen an update in 6 months, we're like, is this abandoned? You Node? Where in in Tori or even in Rust in general, I can't tell you the amount of times I've seen people ask about abandoned packages. And, like, what do you mean abandoned? It's done. It's like, oh, we don't you know, I've never even thought about that in the web world. So it's an interesting concept that it's it's so far removed from the web world. You know?

Guest 2

that's hard to do with JavaScript. I'll give you an example. Try catch. Right? Like, you just don't Node. Yeah. And why is that? And and Rust Rust is really like, to to get to that kind of behavior,

Guest 2

you you gotta work really hard.

Topic 11 37:40

Some notable apps built on Tauri like Sourcegraph

Guest 2

popular, but not in the sense that you think.

Guest 2

Another However, of the runtime because we kind of overlap with that team, we're working on building a custom And what happens at that point is that you realize GitHub isn't actually a CDN,

Guest 2

for example, from Sourcegraph, Node is written I mean, I'm not suggesting we're gonna go down that road. I'm just talking about research that we're doing. And, again, big enough to prevent us from finding concrete ways to help them.

Wes Bos

Oh, cool.

Guest 2

I've seen teamwork apps being built with it, and, again, you know, this this whole productivity market what I love about these short films is that they capacitor, the risk for a project like Tauri

Guest 2

in Tauri.

Guest 2

I mean, I've seen a lot of those.

Guest 2

try to we put it through Wasmtime tooling application. They're gonna be making them for decades.

Guest 2

I know that Git Butler has chosen Tauri for their platform. If you watch Scott Chasson, pretty much every talk, he'll he'll drop a slide where you see that it's Tauri, and I actually sat next to him at a conference as he was hammering in some Rust code and fighting with the compiler, but he won. Yeah. Yeah. Oh. And I think that the apps you can find, there's 2 places to look in the community. We have an awesome Taeri repo

Topic 12 46:11

Plan to embrace AI generated code

Guest 2

possibilities of things like side effects the the important thing for me is that people understand what it's all about. You Node? Names and ways we pronounce them. I say tauri, you say tauri. Tomato, tomato. Right?

Guest 2

That train is traveling.

Guest 2

and itself is that

Guest 2

And so I think that I can't push to the dev branch, though, because dev promotes to is a real regions where there was a skip, there was never a laptop generation, everybody's on their phone, Even if they put 4 or 5 people on it, there's just not that many experts in the security venue your comment that I've heard people say about TowerE is, yeah, you can write code

Guest 2

you know, as engineers, I guess my argument goes that Right? So if you have 3 or 4 different games, that way you can keep people engaged and tell them when there's a new game or a new update because you've got their eyes.

Guest 2

unstoppable.

Guest 2

And so I would see the the the transition to Telry 3 ESLint o what tabs and spaces are, you're not gonna care, and who cares about linting as long as it runs on on my machine? or not milliseconds faster was Rust every time And so European software.

Guest 2

the important part for us to realize is that, verifying on Hacker News or GitHub, takes voice to text and places the text onto the screen. Cool. Games are It's going to stay as as an experimental web view at least for the next 6, 12, 18 months. I think that the risk of making something that experimental, as is a lot of work under the hood to make Towery even more performant and smaller.

Guest 2

for So the future, end days exploits out there And so the approach we took, which was approved by our auditors Radically Open Security from the Netherlands, we don't own everything anymore, and for people who

Topic 13 35:01

Easy to write custom plugins

Guest 2

for simplicity, for readability, and for security because use the the Towerys HTTP service so you can Node step Mhmm. Course, for example. And you can you can control all of this from of software engineering And what that turns into is a security whack a mole where actually, if you are shipping an electron app and you have some kind of CSO in your team, v e r s o, and it uses the servo engine JavaScript land and and the dash client. Right? a vast with the whole module federation

Scott Tolinski

you know, when you pick a platform, you don't wanna pick something that's a ghost town or that everybody's

Guest 2

is something that's going to take a lot of linear time.

Scott Tolinski

Anytime I'm looking for help, there's always somebody who's been ready to help me. Or even, like, just in general, there's a lot going on. There's people in there talking. There's, in general, a lot of support amongst community members. And I found that to be really just a positive aspect about

Guest 2

an auditing firm and my point is that but we made the decision very early that this was not IP that would ever get snagged. And I'm not gonna name names. I don't wanna shame any of any of our listeners out there, but it's literally legally impossible are dev tools, people who are building things for, you know, making their dev life easier.

Scott Tolinski

I don't know. I I've been in some grumpy web communities before, and Tory certainly isn't that. So I've always really appreciated,

Guest 2

and looked at it and figured out how to write it for Talry because they were they were good solid Rust engineers. You know? Like, you take that. You understand how plug ins work.

Scott Tolinski

I I'm curious about, like, what are what are some of the larger apps that have been shipped with Tori? Are you aware of most of the apps that have shipped with Tori, or just things popping up left and right? I mean, I have 2 2 direct comments to that. I wish, but we do not run telemetry. That was a choice.

Guest 2

they agreed to review several types of plug ins It's tiny.

Guest 2

and and the community is based on people that wanna help each other. We knew that we would never be able to hit the full surface area of every single type of plug in that everybody wants written in Rust, although there are projects that let you do it in Python. And if you're adventurous, heck, why not even write it in c? So, basically, what, you're making apps with Tori. Right? You're making desktop apps, and and now with version 2, you're making Lots of VMs.

Guest 2

out of the gate.

Scott Tolinski

that aspect of how everybody seems to work together.

Topic 14 27:53

Crab Nebula provides hosting and auto-update services

Scott Tolinski

syntax.

Wes Bos

native, meaning that, okay, I need to interface with some sort of native API that

Scott Tolinski

Wow. So, yeah, so to make that clear, it is Crab Nebula Crab Nebula Scott dev, and that is I had a peek at some of these things. And, obviously, I don't want this to sound like an ad. But, like, the thing I love about it is that it's taking the things you're gonna have to do and making it much easier on you because, yeah, you can do it without Crab Nebula. But, you know, that doesn't sound like a ton of fun to me. So, yeah. I think that's a a good way to to approach because it's not necessarily funding Torrey dev in the way that you're thinking. Or

Guest 2

to recognize that, the Tauri community

Scott Tolinski

syntax. Again, we've been using this tool for a long time, and it totally rolls. Alright.

Wes Bos

I'm curious about the Bos part. When you need to go

Scott Tolinski

prior art that we sort of modeled that approach on. And if you want to see all of the errors in your application,

Wes Bos

Tori does not give me, you know, like calendar or native maps or

Scott Tolinski

You don't want a production application out there that, well, you have no visibility into in case something is blowing up, and you might not even know it. So head on over to sentry.ioforward/

Scott Tolinski

you'll want to check out Sentry at sentry.ioforward/

Wes Bos

or Bluetooth.

Guest 2

service that the Crab Nebula provides is this cloud custom TOWRI rant right now, And, sure, there's gonna be a few years that you have to get into compliance, kind of unfair to the tens of thousands of people building with Telry today. But for greenfield projects you have to fork, and then you have to track. And so we've started putting together a list of things that we want to Hi, Cheyenne. And she asked me to teach her Rust. She's never programmed before,

Topic 15 14:54

Lots of VMs and hardware for testing across platforms

Guest 2

they supported us in doing initial research into decided to switch funding.

Guest 2

we do not have an API that And how can we keep on innovating? I think JS I mentioned earlier, the momentum to build absolute beginners what does done look like for Tauri? pay the salaries that leverages the learnings from the delivery mechanism that the WebView 2 team from Edge are using the And for a while, force you as a viewer to come to terms with a situation you weren't prepared for really quickly,

Guest 2

of people who do things different ways. And we found a library written by our friends over at Agalia called WebKit GTK. One of the large problems for that WebKit distribution disappear in relevance, years of my life, and I think React Native have all

Guest 2

and the European Commission's NGI, Next Generation Internet Fund. The nonprofit is called NL Net, and providing represented by the working group has approved

Guest 2

Basically, our applications check the system to see if there's a WebView 2 installed. If not, it phones home. It says, hey, Microsoft. Give me the WebView 2 that's going to run here on this machine, and then it will get installed and it's enrolled in something, like a a rolling release. Every time they make a new release, She's watched the video solutions to Rustlings.

Wes Bos

We we would just say WebRTC is a way to communicate between

Guest 2

ecosystem and calling yourself a webview. I think that it's not criminal

Guest 2

today, that project is a standalone open source community. It's called Verso,

Guest 2

I think the lonely daughter is 24. She just graduated from college.

Guest 2

proper WebRTC.

Guest 2

a binary that is a browser.

Guest 2

child of the how do you call 5 twins? Anyway, the the the lonely child out of the 5 quintuplets you're going to go your own way and it's going to cost you a lot of time. And for our friends in Scott ups, they don't have time. They're burning candles at both ends.

Guest 2

and that was never something that we JS a team were able to support. Another example on on Safari is that, because it's not written in JavaScript? blowing up everywhere being really important in this opportunity to, you know,

Guest 2

testing out if we could use a servo type window together with TOWERY, which we proved. Then we went on and continued the development work, And traditionally

Guest 2

in order to produce And as time went on and I've had more conversations and I've been on panels and I've held talks and I've got notes put together, cost effective, energy efficient, resource preserving we had to change to a library approach everybody was going crazy that open source was gonna have to turn into a product.

Topic 16 11:37

Research into using Deno instead of Rust back-end

Guest 2

Right. And and I think the paradigm shift that's important for me to make people recognize is that there's always a better programmer than you out there, and it's really easy for great programmers to very rapidly build plug ins place Towery apps into genres, and there's so much FUD out there. The act has changed over the past 3 years, Verso based I think the the people who are not afraid of an early adopter tax even turn into life saving events. I think that the claim that, okay, electron is just free real estate has kind of been debunked, but there's a there's a couple more nuances there. You mentioned that it ships a a Chromium instance.

Guest 2

a lot of modules are actually node modules themselves.

Guest 2

graphics modification library that everyone's using in Node. Js. There's this one very popular one. Sharp.

Guest 2

you So Node? Probably not. Deno who audited our Yarn two point o via funding from the the European Commission again, a

Guest 2

use Rust, we've tried to take every single pain point out of the Rust equation.

Guest 2

is something that's in research right now. Really? Yeah. Okay. I'm trying to remember the name of that to download

Guest 2

to the user, we kind of end up getting stuck with these chances are good by the time it's shipped, there are already which makes it extraordinarily That said, challenge that was all about and people are oftentimes paying for traffic directly.

Wes Bos

Yes. We just had Ryan on, and he's like, that's the stupidest thing we coulda ever done is post install, automatically run code.

Guest 2

Yeah. Sharp. Doesn't sharp require some kind of post install compilation phase inside And if you can get this entire thing set up in 5 minutes, 10 minutes of your time with the support of the team if you need it, ideas in our head, and it's hard to to to flush them. And then I think that this group does a does a really great job. I'm not an affiliate, but, support them on Patreon. It's a good thing. What about a shameless plug? being one of those time, the question we're gonna ask ourselves as we get to 3 point o JS,

Topic 17 02:58

Version 2 adds mobile support for iOS and Android

Guest 2

to include the services offered by Expo. Right? So there there is what we'll really see is a lot of engagement in the mobile ecosystem.

Guest 2

candidate, and polish up my LaTex. I already got the ISBN numbers. I'm just waiting to to to publish it. What's it gonna be called?

Guest 2

the mobile ecosystem.

Guest 2

architectural was

Scott Tolinski

Right? That's the that's the big version 2. Is is that what version 2 is all about, or is there more there?

Topic 18 07:25

Smallest Tauri app built was 500KB

Guest 2

and there's problems once you start to put those those binaries in an AWS bucket because somebody's paying that bill for that transit, and it's gonna be you. Oh, yeah. Yeah. And, Aaron, how about that like script based languages, whether it's TypeScript or, you know, script or whatever TypeScript y languages you're using, service that hosts the latest versions, hosts the old versions, hosts release notes, host it for all of the operating systems that are out there, and then provides updates and and manages that all in a such a painless way that you probably only have to visit the website Maybe we could add something optional in the future, but, I mean, what I what I do know is, actually, the version of the Wes you have is locked to the Safari version that is installed and running right now. There used to be crazy hacks to get around it, but they just weren't sustainable. In a weird twist of fate, the people behind the WebView project team over at Edge, I think they came really close to doing a perfect job, to have something finished. I think the notion of being pretty instantly, I don't know about you, but I do travel quite a bit because I live in Malta. I have to leave the island somehow, and usually it's with a plane. And I always forget to turn off data because I'm traveling. I use I live on my phone when I'm traveling. I sometimes don't even bring a laptop. I can get everything done. And then I'm in the airport in Zurich,

Wes Bos

and it downloads, like, 300 megs or something like that. I'm like, that's that's expensive.

Guest 2

It's, I don't know, a 150 megabytes. Yeah. And Yeah. I mean, I'm not gonna complain about the LinkedIn app. I think LinkedIn is a wonderful service, Torrey. I know you just got Deno a whole week working with it, and we've been talking about it for seems like over a year Node. So stoked to have him on. Yeah. I've done a lot of Torrey projects, so I got a lot of, lot of questions, a lot of thoughts here, and I'm a big fan of the project. So welcome to the show, Daniel. How are you doing? Great. Thanks. You know, it's, I'm in the hot seat, but that's because I'm in Malta. Oh, wow. It's about 30 degrees here. However, it's a kind of tempered basement. I've heard from friends of mine across the Atlantic that it looks like the walls are made of blocks of butter. They're not. They're limestone.

Wes Bos

updating a an I always think about that. Like, Discord?

Wes Bos

Discord updates, like, every time I open it,

Guest 2

using GitHub at the weekend for their free time, they don't expect to get a 100,000 downloads a month or a1000000 the structure, the architecture. When we get to RC, recently, for a client, we built a mapping app go deeper the index HTML was having an updater that lets people update their apps because and and providing a methodology

Topic 19 44:51

Version 2 stable release expected in September 2022

Guest 2

We're recording this on the 27th August.

Scott Tolinski

Awesome.

Topic 20 32:15

Hardest part was integrating with app stores and processes

Guest 2

yeah, interacting with those services is tricky because,

Guest 2

Apple and and Google is it Alphabet and Play Store? Anyway, to regions like Kenya and India. I mean, Kenya in particular So our plan and expectation is in the month of September to celebrate

Guest 2

you also need to have a human in the loop in certain places. Right? You can't just, like, wildly release an accidental update to every device in in your fleet. There has to be a human involved, and I think that

Guest 2

first of all, you wanna automate everything you can, and second of all, a type of integer JS that it it can kind of run into the the the risk of appearing like it's all being pushed up by 1 company, and it's really not. I mean, yes, we are heavily involved, but without the amazing contributions and participation of the open source community in the working group, Crab Nebula couldn't have even done it alone.

Guest 2

But, you know, sometimes you just have to, and sometimes it's just more efficient. And

Guest 2

we've And I believe Teams even made the switch to to WebView 2. I don't think they're using Telry directly, but the the learnings are shared across the community, and I feel that that's the important part of of all of this, of all the stuff that we're doing. Hey. You know, I even have personal experience here with issues caused by the Safari approach, which is but in Switzerland, I'm paying roaming. So I would ultimately pay €15

Topic 21 00:00

Transcript

Scott Tolinski

So, do you wanna give the audience maybe somebody's never heard of it before? They haven't heard us talking about it or just never seen this project? What's the deal with it? What's it doing? of all of those different things, whether that is all of the APIs? Do do you have, like, a Mac, Linux, and a Windows computer set up to hash everything out on? Like, what what JS the actual process for something like that look like?

Scott Tolinski

Welcome to Syntax. On today's supper club, we have a really good one for you. Daniel Thompson is here to talk all about

Scott Tolinski

do you wanna let's kick this off with a little bit about and you say Tori or Tori. How do you say it? Let's say that. Wow. You know, my friends at Snyk also say Snyk

Guest 2

Sure. That that happens a lot. And I think the the 3 sentence pitch is that Tal Ray helps you make really small performant and secure applications But, you know, the smallest app we ever built was 500 some kilobytes.

Scott Tolinski

Awesome. Says tomato, though. Yeah. No. Yeah. You gotta say tomato. You're right, Wes.

Topic 22 47:24

Improve DX for all developers especially beginners

Guest 2

fix things that have been us along the way. We see it as a maintenance release, but we work really hard on it's important to get that right. It's like that that last part of running a marathon or or building a a a desk. If you forget to hydrate, you're not gonna finish the marathon. If you've if you don't treat the woods, you're gonna get termites. Those are things that you learn from experience, but if you've never done this before, positive win for the broader community.

Guest 2

and you come back the next day and it's still working.

Guest 2

experiences where we hit me up, and found a plug in there, Tauri, Tauri 3 ESLint o. I actually saw somebody in our Discord talk about that, and

Guest 2

if they understand what it is that they're doing. And I'm not gonna go on a philosophical it Capacitor,

Guest 2

You commit your code to to your your, you know, your your version control system, that we are now I think it's something, like, 10 times faster with 2.0 versus 10 versus 1 ESLint o. I remember way back when we were writing up the list of things that we thought were important to qualify Telry 1 ESLint o as being stable these these nuances are turning into pain points for people, and that's the point, you know, where we decided as a team that it's important to the problem gets compounded when you start thinking about the accessibility I live here. I actually moved here a few years ago, fell in love with the climate. I have no allergies here whatsoever, which I can't say for the other 45 for any individual in the community to change the license.

Guest 2

software engineering has a way of changing people, and it can change them for the better is tempered with the desire of a Rust engineer. I count myself amongst them the days right before we launched 1 point o stable, and that was the week that Explorer was deprecated. I mean, Wes the deprecation was announced of Explorer and Adam Shell the week before Teleri Node point o stable came out. And I think I talk about this almost at every every major release because it still sits with me.

Guest 2

improving the developer experience for everybody no matter who they are, where they're coming from, what programming language they're using, and I put her through the course. She's doing the Rustlings The IP is very clear. Everyone knows exactly how it works, so it's very well known.

Topic 23 10:31

Frequent audits and updates improve security

Guest 2

positive way to gain that and engineering,

Scott Tolinski

So those are two reasons, I think. Yeah. I don't think I ever thought about that. Yeah.

Guest 2

confidence in the framework itself.

Guest 2

Given given the fact that that Europe and and the US and Japan and everybody actually is starting to get really concerned about the security of our software, figure out a way to via a GitHub page.

Wes Bos

most people are, oh, I have to learn a little bit of Rust. Like, I built a I built an app in it about a year ago, and I had to learn a little bit of Rust. It's kinda fun. Is there ever a time you said, oh, you can there's a back end in Python, but is there ever a time where we could also have a Node back end as well? I'm I'm gonna tear apart your your points here for a second. Yes.

Wes Bos

And I'm curious about like, one of the

Wes Bos

huge benefits to something like Electron is that the back end is in Node, and I I feel like that makes it very accessible to just a lot of regular developers. Whereas on Tori, you wanna write back end. It's it's in Rust. Right? And

Topic 24 13:04

Plugins provide Rust and JS access

Guest 2

Right. So you can call the file picker for the operating system that you're on, and then you choose something, and that value then gets returned through Rust and bubbles back up to the JavaScript side.

Scott Tolinski

iOS, and Android. Right? And each of those have their own web view, right, with Safari. It's w k WebKit. W k WebKit. Yeah. And in addition to that, there's all these APIs that exist in the different systems. How is it possible that you're able to test the surface

Scott Tolinski

Yep. Node. Yeah. When we were working on our Tori app for Hack Week, we did a, like, a syntax production assistant. And one of those things it does is it runs like FFmpeg

Guest 2

that have not only ways to consume them from Rust but also from JavaScript.

Guest 2

the 1 word, and they know everybody knows exactly what that word means, the device will download it and use that then. You can also install a pinned version as well. None of this is really great

Scott Tolinski

to generate Npm threes and stuff. So that was being done through Rust, but it Wes it wasn't super tough being just done through invoking a message, hitting a file, and running that sidecar, and it it compiled it. So the Wes stuff isn't that scary if you can get into it a little bit. And we didn't have to do everything in Rust either. I I'm curious because so Tori works and is able to ship to Mac, Linux, Windows,

Wes Bos

Oh,

Wes Bos

so you're saying, like, we could build a good chunk of our apps entirely in JavaScript? Like, it's not like, even the file system has a has a JavaScript client side API.

Topic 25 25:48

License prevents privatization and protects community

Guest 2

So that is the who, like the Sorcerer's Apprentice, are confronted with a tool they don't understand, microcontroller I think that the the security model can always be improved, and maybe there's ways for people using module federation and Tauri together to get the best of all those worlds. Right? So talking about clients. Right? Most likely used for video audio streaming. Right. Exactly. There are people who have built it themselves, And I think that the the trickiest part that we faced, Scott, to come back to your question directly, and these And the approach, is to the various subsystems that they need, whether that's the camera or the file storage. Right? The move to mobile actually brought with it a lot of other benefits to the ecosystem. I think another one that that people is notorious for not even having 4 g, the unwilling or lazy or you've got other things to do. It's not hard if you put the time in, and, honestly, we the 3 of us wouldn't be sitting here if we had decided at some point to be lazy and not put the time in. Yeah. And I found, you know, writing Rust even made me a better TypeScript developer. There are so many things that are that department didn't have any funding, so the team got let go. Also, as fate would have its, Firefox was already using some of those libraries, and they needed somebody to maintain it. And,

Guest 2

But, of course, you know, people have jobs and in open source, they likely have a job and a hobby, and the hobby is open source, but then people get families and kids and or more.

Guest 2

build products that serve If you don't know Rust, for example, you get this amazing feature called conditional compilation, People like Cheyenne, people who It's easy to acquire.

Guest 2

twice and set up the CI once and check your credit card invoice Wes the end of the month. It's just that bulletproof and and that simple because

Guest 2

gave us money to finish off Talry two point o. We dedicated a lot of time and effort and money into that the Cyber Resilience Act is all about the notion that of senior engineers in the project, that we were gonna have to show this somehow to Cassadot,

Guest 2

angels we actually raised money from an incredible VC, I think for people who are doing Android and Bos, we discovered that the way that we built for desktop just didn't work.

Guest 2

most ideal version of a community driven project that you could think of.

Guest 2

The working group would revolt get that updated code to the users following spec as close as possible,

Topic 26 06:20

Even websites now use checksums for integrity like Tauri does for updates

Wes Bos

Tori versus Electron is that it's not huge. Like, the the joke with Electron is that you download an entire thing, and we're running

Wes Bos

these massive Chrome apps on absolutely every single desktop. Right?

Wes Bos

Electron, because people listening right now are probably going, okay. That seems cool. Maybe I've built an Electron app in the past. And the real benefit to using

Guest 2

And before you know it, you have, like, 8 instances of Chrome running. Probably, I'm running them right now. Is is that fair to say? Obviously, one of the benefits of shipping the Telry app is that your binaries are 3 to 9 megabytes in size. Yeah. Until you start adding LLM models or something like that or shipping lots of images.

Topic 27 08:37

Large downloads expensive on metered connections

Guest 2

the update of LinkedIn right there. I guess the Oh, wow. No. But I'm I'm doing great, and I'm happy to be here and talk to you all about that fantastic Tauri stuff. Yeah. Do you you live in Malta, or are you just vacationing? And if you're looking for more interaction or feedback,

Guest 2

and when you produce working in the same place. Right? So you'd have to shop around nightmare. The approach that we took is we tried to make it so simple that gosh. I don't know. I mean, somebody in the community said they were looking for a plug in, and they went over they went over to Mhmm. Which takes is something that was made really clear to me back in Physical hardware Mhmm. Of course. I think there's a lot of automated test suites that we have used to prove that up to a certain version of a system web view, a certain API is or is not available.

Guest 2

finding Yeah.

Guest 2

applications

Guest 2

especially in It's going to be on Amazon. It's going to be on my corporate website. I'm going to be shilling it on LinkedIn and at conferences because I have 4 ISBNs. I'm also printing the physical copy. So if you see me somewhere, I will always have a couple copies there. So, that are Rust nerds, it's a hard pill to swallow.

Guest 2

a Electron app and you ship it to your customers, problem of Tauri on the Safari based web view on on macOS is that

Topic 28 05:54

Tauri apps are 3-9MB in size unlike large Electron apps

Guest 2

with the web, we've come to realize that things like integrity checksums are important when you're pulling source from remote.

Guest 2

And

Scott Tolinski

signing and deploying and having the user update. It's a yeah. It's a whole another world. I think

Share

Empowering developers for over 286201087572 milliseconds!