9 ms·
Tauri 2.0 Release Candidate
- kayson 2y agoI've been following tauri for a bit. It seems very cool and interesting but I've always wondered - what are the use cases for putting your app in a webview instead of using the browser? Everything I've thought of would work just as well.
- lwhsiao 2y agoIs it not lighter weight?
- IshKebab 2y agoNot lighter weight than a website because it is a website. The only advantages are you can ship parts of your app as native code, and you aren't constrained by the browser permission model.
- FFFXXX 2y agoOne interesting usecase is that you can run a tauri app without any webview windows just as a system tray icon and only spawn a webview window when necessary. This kind of makes it way more lightweight but only in some situations (obv. heavily depending on the functionality of the app).
- runevault 2y agoWould this be for a service style app that happens to have a UI when you need to configure it? If so that's an... interesting idea, but considering the UI is less important I'd probably mind it less (as someone who is not a fan of Electron apps).
- theultdev 2y agoI built a syncing tool that needed to run in the background with a simple UI to control it. I used tauri so I could easily make that cross-platform toolbar app. Some menu items spawn a webview (things like settings), everything else is in Rust.
- pdpi 2y agoThe goal is to make a standalone desktop app with access to local resources, so the question is "why should you put your app in a webview instead of Electron or a native toolkit?" The answer is that Electron forces you to carry a whole Chrome installation around, which is unnecessarily heavy, and (AIUI) you have a node.js backend giving you the means to touch the actual OS, whereas Tauri lets you write Rust (YMMV as to whether that's an advantage). Both Tauri and Electron let you use a web-based interface instead of mucking about with native widgets, which are a pain for cross-platform development.
- cute_boi 2y agoAdditionally, we don't have to package whole node js thing.
- jmnicolas 2y agoFor example a reader app where you can't host everything on the server. My ebooks collection is 1TB big, and my videos are something like 20TB.
- epsilonfm 2y ago[dead]
- awake6711 2y ago[flagged]
- sieabahlpark 2y ago[dead]
- brigadier132 2y agoWrite once run everywhere is the holy grail of app development and the browser is the only realistic way of achieving this.
- jauntywundrkind 2y agoCan anyone explain what Tauri or webviews offer that makes them a good choice over a local-http-server webapps? Imo, as a user, Webview, no thanks. Local webapps, yes please. There really isn't a good reason for webviews or electron/tauri that I can tell? Why some people love love love native apps, to the extent they'd rather a dressed up webapps is confusing to me. If it's already a webapps, hell yeah give me the user-agency of extensions, browser history, tabs, back buttons, and hyperlinks or give me death! Anything but the power-stripping captive-audience of native apps! It would be much better to package your app as a small daemon that hosts a localhost webserver. The daemon can talk to all the system APIs it needs to. Add a desktop icon or shortcut that opens the localhost webpage. The daemon can present just a regular HTML hypertext webapps as usual, so all the usual bits of user-agency can slot into the overall experience. Theres a lot of usenet-related apps that work like this, that run as daemons, and have web interfaces. Sunshine game streaming too. It's be great to have some massively multi-platform http-headed app frameworks! That does seem semi missing, especially wrt mobile integration.
- TheCleric 2y agoYou are absolutely the exception there, especially if you are talking about an average low tech user.
- jauntywundrkind 2y agoI don't have any understanding why that would be though. Even if it is true, is there a reason or is it happenstance / path-dependence? It seems so inferior to have the same thing but lose access to the browser's suite of tools/capabilities. What could possibly change other people's opinion or what should I use to reconsider my perspective?
- TheCleric 2y agoWhen it comes to a non-hosted web app most non-technical users would have no concept or ability to run a local web server whereas “install this app” is something they’re familiar with. I’m talking from a position of “I have an app that I want to distribute to a population of end users.” If that population happens to be technical your solution would likely work fine. As well if you’re not distributing apps to end users you can do what’s right for you. But if you are you have to meet your users where they’re at. As well operating outside of the browser has the advantage of OS integration (tray access, alt tab support, etc).
- duped 2y agoI mean there are so many reasons why you would want to do this it's impossible to enumerate them all. Key command overrides are a great example of bad behavior on the web that is essential to UX in a native app. Or mouse pointer control. File system access and other native APIs the browser doesn't expose, or makes a pain.
- hobofan 2y agoYou build something that needs access to to the filesystem? -> No other choice than a desktop app. (Chrome has some limited APIs around that, but AFAIK only sandboxes ones and not e.g. existing directories)
- flessner 2y agoThere are many things web browser can technically do nowadays, but aren't great or not supported in all browser. - File System (Obsidian, Logseq) - Push Notifications (IM, Social Media, Email) - USB/Bluetooth (Doesn't work in Safari?) - Global Hotkeys (Raycast) - Interfacing with other local Apps (localhost is often blocked)
- codeptualize 2y agoAnything that needs os access, to name some things: menu bar apps, clipboard access, file system, multi window, etc etc. You can do a lot of things in the browser, but usually it's limited (mainly for security reasons). Having it be an app allows you to better integrate with the OS.
- Klonoar 2y agoFor Slack & co, being able to be on the native application dock (for the average user) instead of buried in a tab is considered a significant visibility boost. It’s also something that came about from when web apps on desktop/PWA didn’t have nearly as much reach. With e.g modern macOS support for PWAs you might be able to get away with just the web app now, depending on your target customer.
- ktosobcy 2y agoSadly instead of having native apps we have "web" monstrosities... each sporting custom "fancy" UI instead of following the OS native style…
- traveler1 2y agoBecause WinUI and QT are so glamorous and offer a super intuitive development experience. /s
- sirwhinesalot 2y agoBest part is that neither of those follows the "native style" either. There's no dark uxtheme provided by windows, so Qt falls back to their fusion style. Even the "native" light theme doesn't follow the new "fluent" style so that's also a shitshow. As for WinUI 3, apps are supposed to bundle it, so if you target Windows 11 and run the app on Windows 10, it'll look all rounded and drop-shadowy instead of flat like native Windows 10 apps. Great stuff.
- ktosobcy 2y agoTBH I'd take QT app over any electron/web app... it still looks more consistent and matches the OS. Heck, even Java Swing (IDEA) looks better and feels more native than any electron crap.
- pjmlp 2y agoSpot on, even if I do mostly Web nowadays to pay the bills.
- frou_dh 2y agoIDEA is surely the ultimate gold-plated Swing app. I'm sure JetBrains have had to pour in a huge amount of time and money to get results that good.
- ktosobcy 2y agoNot sure... It's mostly due to used L&F. You have FlatLaf (inspired by IdeaUI). Swing is surprisingly solid platform (though it has it's quirks and sadly it's development virtually stopped years ago)
- EasyMark 2y agoI have too. I think the big deal is easy to do cross platform + reuse your javascript/css skills for gui + lower memory footprint than electron apps. I'm waiting until I see some major apps done in it.
- vunderba 2y agoIt makes more of a difference for the end-user then the developer necessarily. An end-user can continue to use your electron/tauri app for years after a website has long since vanished into the infinite void. But vunderba you think to yourself and also how did I know what you were thinking just call me the amazing kreskin, "what about a PWA? - you can use that off-line". PWAs give the deceptive illusion to the laymen that they're installing an actual application as opposed to just a bunch of ephemeral stuff thrown inside the user data folder of the respective browser.
- wubrr 2y agoTook a look at the homepage (https://v2.tauri.app/ https://v2.tauri.app/)... and basically have no idea what this is or why I would use it. Consider adding something more informative than 'Hardened foundation for your web apps', and maybe an 'About' page.
- sshine 2y agoI clicked “Get started…” and saw this: > What is Tauri? > Tauri is a framework for building tiny, fast binaries for all major desktop and mobile platforms. Developers can integrate any frontend framework that compiles to HTML, JavaScript, and CSS for building their user experience while leveraging languages such as Rust, Swift, and Kotlin for backend logic when needed. This ought to be on the front page.
- wubrr 2y agoYeah for sure. Personally I wouldn't click 'Get started...' on anything unless I already know what I'm getting started with and why.
- otteromkram 2y agoThat'll show 'em!
- dcre 2y agoI agree. The v1 front page says this, which is ok but much less clear: “Build an optimized, secure, and frontend-independent application for multi-platform deployment.”
- sva_ 2y agoElectron replacement
- tvshtr 2y agoHardly, Electron is used to not care about the system it runs in. Tauri Is the opposite, you have to consider the works of system's engine. At least untill they'll offer packing with servo. Then it would be a real rejection replacement.
- sva_ 2y agoOh they finally support mobile as well (at least beta.) Might be worth checking out again.
- srid 2y agoRelated: Dioxus > Dioxus is a Rust library for building apps that run on desktop, web, mobile, and more. https://dioxuslabs.com https://dioxuslabs.com (Dioxus uses Tauri)
- Sytten 2y agoWe just finished migrating away from Tauri to Electron for our desktop application after running Tauri for 2 years. We are a rust shop so it makes sense to use Tauri, but I can't recommend it for a startup use until they allow packaging a webview into your build. The amount of time you currently have to spend in debugging each OS/Version combination of bugs is simply untenable. This is scheduled for v3 last time I talked to the devs. Otherwise good progress, happy to see it!
- dvt 2y agoI also use Tauri for a startup project I'm getting off the ground and I've been extremely impressed. Unless you're doing something extremely non-standard, I'm not sure what edge cases you're seeing. The webviews packaged with modern operating systems are very compliant (essentially Safari on MacOS and Chrome on Windows). The only wildcard is Linux which uses WebKitGTK which does have all kinds of weird quirks (but that's a comparably tiny market sector to begin with). Using OS WebViews, you also get the added bonus of security updates which you get for "free" with OS updates (otherwise you have to handle these yourself). There have been some RCE exploits in Electron, so it's something you need to keep an eye out for.
- Sytten 2y agoYup this was also our first impression. Wait until you have users (no snark here, but its the reality). We do have around 1/3 of our users on Linux and WebKitGTK is plainly bad. Our application is complex I will give you that, but it isnt just that. Say you want to use WASM you have to check which macos versions you want to support and check the oldest possible webview (it doesn't get updated at the same time as safari), check which subset of WASM that supported, etc. It really is a nightmare of subtitle bugs that are hard and time consuming to reproduce. OS webviews in our findings have a way worse update cycle than us shipping a new version of the app.
- cageface 2y agoThis is just the reality of web development. You'd have the same issues if you were developing a PWA. Blaming Tauri for this doesn't seem fair. It sounds like Electron is a better fit for what you're trying to do.
- cageface 2y agoI use Tauri for my sync app that syncs music between my mobile app and desktop library. It's been a pleasure to use. Tauri 2.0 looks like it's going to be a real contender for mobile too.
- Fire-Dragon-DoL 2y agoIs there any hope that Tauri could use something else as browser on linux? Something based off firefox or chromium would be ideal... That would solve all the problems I have with it
- gabeidx 2y agoWell… kinda. There is this new project called `verso` that from my understanding is coming from the Tauri team (but weirdly is in another org in GitHub): https://github.com/versotile-org/verso https://github.com/versotile-org/verso Seem _very_ early days so who knows if it will have legs.
- Fire-Dragon-DoL 2y agoThat's a whole browser, it doesn't make me very hopeful for what I'd like to see...
- logankeenan 2y agoI’ve been using Tauri for an app I’m developing. The Tauri team is super helpful in their Discord channel. Writing everything in Rust, including the UI (using Axum) has been nice. I’m really excited for 2.0 and mobile support! My app (very beta) https://meshly.cloud https://meshly.cloud
- jemmyw 2y agoI'm using it for https://mixitone.com https://mixitone.com originally it was going to be just a web app, but making it work offline was quite compelling. Being able to access NFC card readers with rust code was the clincher. I wouldn't say the team has been very helpful though. I think I've asked 2 questions on their discord channel. The first the response wasn't unfriendly but they clearly didn't read my message about what I'd already tried and it was along the lines of "just do this as documented here" which was in the message. The second time nobody replied. I self replied with my solutions but no one seemed interested, so it didn't feel like much of a community to start engaging more with. The testing situation isn't very good. They have an unstable webdriver to try. My existing web code was already covered with playwright tests. I ended up writing a websocket layer to pass all the events and commands to a browser so playwright could drive the browser as if it were a tauri window. I'm happy that I can exercise the whole codebase and share tests between the web app and tauri app, but it's not a great solution. If I were a company making money rather than one person doing a side project I'd love to contribute to the test tooling.
- logankeenan 2y ago> I ended up writing a websocket layer to pass all the events and commands to a browser so playwright could drive the browser as if it were a tauri window. I was just about to start doing something like this as well for end-to-end testing. Do you have that on Github or be willing to share more about your approach?
- jemmyw 2y agoemail me using the address in my profile and I'll send you the code. It's not pretty. I needed to vendor tauri too in order to change the visibility of one function.
- Fire-Dragon-DoL 2y agoOne big difference between tauri and electron is that tauri can deliver to mobile, from my understanding. Is there an hybrid way to deliver with tauri on macos and windows, but electron in linux?
- jszymborski 2y agoAny reason why? Tauri works fine on Linux as I understand.
- jitl 2y agoMultiple posts about WebKitGTK webview used on Linux being a source of problems.
- taosx 2y agoBuilt a video player using Tauri and the performance was terrible/unusable in linux under webkitgtk. Every release I'm hoping to see any solution, every release I'm dissapointed.
- Fire-Dragon-DoL 2y agoWebkitgtk is a source of problems. If tauri could address that, it would become my go-to for app building.
- fastball 2y agoIt would be cool if there was a system where linux users could install one version of Chromium that is kept up to date on their distro, and Tauri would check if that is available first and somehow use that as the webview, otherwise falling back to whatever the system ships. So you could have multiple Tauri apps that all use the same Chromium under-the-hood (this also has benefits that security is maintained better, as it is no longer the responsibility of individual app developers to keep a bundled Chromium up-to-date). And then if they wanted to, app developers could disable the fallback entirely, so if you don't have that Chromium package installed you just get an error message saying "please install this package". As this is linux we're talking about, I doubt that would be a very onerous demand for these users.
- drummerboy2543 2y agoI am curious, I work for a company that has a bunch of hardware(serial communication) that communicates to our modules is built via python. So all the backend tooling is python that has the drivers and quality of life functions to support that hardware. Would love to make a native experience instead of a webapp (flask etc) Does anyone have a solution to this? Would love to use Tauri as a desktop server and create the WebView. But do I just use ffi for every single class/module/function? Or does anyone know a more elegant solution to bridge the gap of making a native desktop experience while still leveraging the years of python drivers that have been built up
- jerrygoyal 2y agocan I convert a pwa to Tauri? how much effort is needed?
- FractalHQ 2y agoI converted my Sveltekit PWA to a desktop app by running `tauri init`. I was amazed that it just worked.
- lostindetails 2y agoI upgraded the app I am currently working on from tauri 1.7 to 2.0 by following the guide from here: https://v2.tauri.app/start/migrate/from-tauri-1/ https://v2.tauri.app/start/migrate/from-tauri-1/ After running the migrate tool (via `bun run tauri migrate`) at the end of the guide, I needed to do the following things to get complete it migration. - the migrate tool ran rust format on my backend code - which I was not using at that point - and it changed my preferred to 2 spaces to 4, so I joined the rustfmt bandwagon and created a config file with my preferred settings - run `cargo update` to get the new package versions - modify `tauri.conf.json` as the structure changed, eg. `fileDropEnabled` -> `dragDropEnabled` - change some imports, as the functions from client api were moved, this was straightforward - add the plugins `updater` and `dialog` as that functionality has moved from the core to plugins - change the code that handles the auto-updating, as the api changed as well, but for the better - the only thing that tripped me up, was that re-building the project didnt't work due to an colliding filename error, but I found a closed issue at their https://github.com/tauri-apps/tauri/issues/10192 https://github.com/tauri-apps/tauri/issues/10192 which pointed me towards removing `rlib` from the crate-type, which solved that issue. All in all quite a smooth experience, was done in an 1-2 hours or something, not sure.