
Electron i Tauri dva su popularna razvojna okvira za izradu aplikacija za stolna računala pomoću web-tehnologija. Oba omogućuju razvojnim programerima da upotrebljavaju HTML, CSS, JavaScript i moderne razvojne okvire za korisnička sučelja kako bi stvarali aplikacije za macOS, Windows i Linux. Međutim, imaju temeljno različite pristupe načinu na koji se te aplikacije izvršavaju.
Electron uz svaku aplikaciju isporučuje Chromium i Node.js, čime osigurava ujednačen mehanizam preglednika i izvršno okruženje na različitim operacijskim sustavima. Tauri ima laganiji pristup: upotrebljava postojeći webview operacijskog sustava uz pozadinski dio temeljen na Rustu. Ta arhitektonska razlika utječe na veličinu aplikacije, potrošnju memorije, performanse, sigurnost, kompatibilnost i produktivnost razvojnih programera.
Tauri se često predstavlja kao modernija i laganija alternativa Electronu. Iako ima stvarne prednosti, osobito u pogledu veličine aplikacije i potrošnje resursa, Electron je i dalje snažan izbor za mnoge vrste softvera za stolna računala. Velike aplikacije kao što su Visual Studio Code, Slack, Discord, Notion i Figma upotrebljavaju Electron. U WebCatalogu također smo odabrali Electron kao temelj naših aplikacija za stolna računala koje rade na više platformi.
Dakle, koji biste razvojni okvir trebali odabrati? Razumjeti kompromise korisnije je nego bilo koji od tih okvira proglasiti pobjednikom.
Electron i Tauri ukratko
Prije nego što istražimo tehničke razlike, evo usporedbe tih dvaju razvojnih okvira prema važnim značajkama.
| Značajka | Electron | Tauri |
|---|---|---|
| Mehanizam preglednika | Priloženi Chromium | Sistemski webview |
| Pozadinski dio | Node.js | Rust |
| Veličina aplikacije | U pravilu veća | U pravilu manja |
| Osnovna potrošnja memorije | U pravilu viša | U pravilu niža |
| Ujednačenost na različitim platformama | Visoka | Ovisi o platformi |
| Ekosustav JavaScripta | Opsežna podrška za Node.js | JavaScript za korisničko sučelje, izvorni API-ji putem dodataka i naredbi |
| Sigurnosni model | Izolirano okruženje Chromiuma, izolacija konteksta, IPC | Pozadinski dio u Rustu, ovlasti, IPC |
| Platforme za stolna računala | macOS, Windows, Linux | macOS, Windows, Linux |
| Podrška za mobilne platforme | Nema službene podrške | Android i iOS |
| Najprikladniji za | Složene aplikacije za stolna računala ovisne o Chromiumu | Lagane aplikacije i uslužne alate integrirane s izvornim funkcijama sustava |
Te razlike ponajprije proizlaze iz jedne arhitektonske odluke: treba li uz aplikaciju isporučiti mehanizam preglednika ili se osloniti na onaj koji pruža operacijski sustav.
Arhitektura: priloženi Chromium nasuprot sistemskim webviewovima
Najveća razlika između Electrona i Taurija jest način na koji prikazuju web-sadržaj. Electron uključuje vlastiti mehanizam Chromium, što znači da aplikacije upotrebljavaju u osnovi istu tehnologiju preglednika na macOS-u, Windowsu i Linuxu. Razvojni programeri mogu se osloniti na određenu verziju Chromiuma i web-API-je koje podržava, neovisno o tome koji je operacijski sustav instaliran kod korisnika.
Tauri umjesto toga upotrebljava webview koji pruža svaki operacijski sustav. Time se znatno smanjuje količina softvera koju treba isporučiti uz aplikaciju, ali to također znači da se ista aplikacija može izvršavati na različitim mehanizmima preglednika, ovisno o platformi.
| Platforma | Electron | Tauri |
|---|---|---|
| macOS | Chromium | WKWebView (WebKit) |
| Windows | Chromium | WebView2 (Chromium) |
| Linux | Chromium | WebKitGTK |
| Android | Nije službeno podržan | Android WebView |
| iOS | Nije službeno podržan | WKWebView |
Za aplikacije s jednostavnim sučeljima te razlike mogu imati malen praktičan utjecaj. Većina modernih razvojnih okvira za korisnička sučelja dobro radi i s Chromiumom i s WebKitom. Međutim, aplikacije koje se oslanjaju na određene API-je preglednika, složeno ponašanje pri iscrtavanju ili napredne web-mogućnosti mogu naići na probleme s kompatibilnošću.
Uz Electron razvojni programeri mogu testirati aplikaciju na poznatoj verziji Chromiuma i tu istu verziju distribuirati korisnicima. Uz Tauri moraju uzeti u obzir razlike između mehanizama preglednika i potencijalno različite verzije sistemskih webviewova. To postaje osobito važno pri otklanjanju poteškoća koje se pojavljuju samo na određenim operacijskim sustavima ili distribucijama Linuxa.
Nijedan pristup nije sam po sebi bolji. Tauri smanjuje dupliciranje iskorištavanjem softvera koji je već instaliran na računalu, dok Electron prihvaća veću veličinu aplikacije u zamjenu za veću kontrolu i ujednačenost.
Veličina aplikacije, potrošnja memorije i performanse
Jedna od najočitijih prednosti Taurija jest veličina aplikacije. Budući da Electron uključuje Chromium i Node.js, čak i relativno jednostavne aplikacije izrađene u Electronu mogu zauzimati stotine megabajta prostora na disku. Aplikacije izrađene u Tauriju mogu biti znatno manje jer se oslanjaju na sistemski webview umjesto da u paket aplikacije uključuju cjelovit mehanizam preglednika.
Tauri može imati i nižu osnovnu potrošnju memorije, osobito kod laganih aplikacija s minimalnom obradom u pozadini. Njegov pozadinski dio u Rustu učinkovit je i ne zahtijeva zasebno priloženo izvršno okruženje preglednika. Za male uslužne alate, alate za bilješke i aplikacije s relativno jednostavnim sučeljima te prednosti mogu biti značajne.
Međutim, manje aplikacije nisu nužno i brže aplikacije. I Electron i Tauri u konačnici upotrebljavaju mehanizme preglednika za iscrtavanje svojih sučelja, a performanse korisničkog sučelja i dalje uvelike ovise o kodu aplikacije. Neučinkovita komponenta Reacta, zahtjevna JavaScript operacija ili curenje memorije ostat će problem bez obzira na razvojni okvir.
Postoji i važna razlika između veličine aplikacije i ukupne potrošnje resursa. Tauri ne uklanja mehanizam preglednika; jednostavno upotrebljava onaj koji pruža operacijski sustav. Na Windowsu to znači oslanjanje na WebView2, koji je u pravilu dostupan na modernim instalacijama Windowsa. Na macOS-u i Linuxu to znači oslanjanje na njihove odgovarajuće implementacije WebKita.
Za smislenu usporedbu performansi razvojni programeri trebali bi mjeriti:
- Veličinu aplikacije: Veličinu preuzimanja i zauzeće diska nakon instalacije.
- Vrijeme pokretanja: Koliko brzo aplikacija postaje spremna za interakciju.
- Potrošnju memorije u mirovanju: Potrošnju memorije kada je aplikacija otvorena, ali neaktivna.
- Potrošnju memorije i procesora tijekom rada: Potrošnju resursa pri stvarnim radnim opterećenjima.
- Odzivnost: Performanse iscrtavanja i kašnjenje tijekom korisničkih interakcija.
Rezultati će ovisiti o aplikaciji. Tauri često ima prednost kod laganih aplikacija, dok Electronovo ujednačeno okruženje Chromiuma može olakšati testiranje i optimizaciju složenih aplikacija na različitim platformama.
Iskustvo razvoja i sigurnost
Electron ima značajnu prednost za timove koji već imaju iskustva s JavaScriptom i TypeScriptom. Njegova integracija s Node.js-om pruža pristup zrelom ekosustavu biblioteka za rad s datotečnim sustavom, mrežama, bazama podataka, pozadinskim procesima i funkcijama operacijskog sustava. Razvojni programeri mogu izrađivati napredne aplikacije za stolna računala bez potrebe za uvođenjem još jednog programskog jezika u svoj tehnološki skup.
Tauri za svoj izvorni pozadinski dio upotrebljava Rust, koji donosi izvrsne performanse, memorijsku sigurnost i snažna jamstva u vrijeme prevođenja. Razvojni programeri i dalje mogu izrađivati sučelja pomoću Reacta, Vuea, Sveltea ili drugih razvojnih okvira za JavaScript, a Tauri pruža dodatke i JavaScript API-je za mnoge uobičajene izvorne operacije.
Međutim, implementacija funkcionalnosti izvan tih API-ja može zahtijevati pisanje koda u Rustu ili koda specifičnog za platformu. Za timove koji već dobro poznaju Rust to može biti prednost. Timovima koji uglavnom rade s TypeScriptom to može donijeti dodatnu složenost.
Sigurnost je još jedno područje u kojem ta dva razvojna okvira imaju različite pristupe. Tauri pruža sustav dozvola temeljen na ovlastima, osmišljen kako bi ograničio kojim izvornim operacijama može pristupiti kod korisničkog sučelja. Electron pruža izolirano okruženje Chromiuma, izolaciju konteksta i kontrole za ograničavanje pristupa Node.js-u i drugim privilegiranim API-jima.
Oba razvojna okvira mogu poslužiti za izradu sigurnih aplikacija ako su pravilno konfigurirana, a oba mogu izložiti korisnike ranjivostima ako razvojni programeri dodijele previše dozvola ili nesigurno postupaju s nepouzdanim sadržajem.
Jedna važna razlika odnosi se na sigurnosna ažuriranja. Razvojni programeri koji upotrebljavaju Electron odgovorni su za ažuriranje priloženog izvršnog okruženja Chromiuma i distribuciju novih verzija aplikacije kada postanu dostupni sigurnosni popravci. Tauri se za sigurnosne zakrpe mehanizma preglednika uglavnom oslanja na ažuriranja operacijskog sustava ili pružatelja webviewa. Time se smanjuje dio obveza održavanja za razvojne programere aplikacija, iako dostupnost ažuriranja ovisi o korisnikovu operacijskom sustavu i instaliranom webviewu.
U konačnici, sigurnost više ovisi o tome kako je aplikacija osmišljena i održavana nego o razvojnom okviru koji upotrebljava. Odabir Taurija ne čini aplikaciju automatski sigurnom, baš kao što je odabir Electrona ne čini automatski nesigurnom.
Zašto velike tvrtke i dalje upotrebljavaju Electron
Unatoč čestim kritikama zbog veličine aplikacija i potrošnje resursa, Electron je i dalje popularan izbor za velike softverske proizvode. Neke od najraširenijih aplikacija za stolna računala izrađene su pomoću Electrona, što pokazuje da njegova arhitektura može podržati složen softver kojim se koriste milijuni ljudi.
Primjeri uključuju:
| Tvrtka | Aplikacija |
|---|---|
| Microsoft | Visual Studio Code |
| Salesforce | Slack |
| Discord | Discord |
| Notion | Notion |
| Figma | Figma |
| Signal | Signal Desktop |
| GitHub | GitHub Desktop |
| OpenAI | ChatGPT Desktop |
Te aplikacije služe vrlo različitim svrhama, od razvoja softvera i komunikacije do dizajna i produktivnosti. Zajednička im je potreba za pružanjem naprednog korisničkog iskustva na stolnim računalima uz iskorištavanje web-tehnologija.
Electron nudi zreo ekosustav, ujednačeno izvršno okruženje Chromiuma i mogućnost kombiniranja web-sučelja s izvornim funkcijama operacijskog sustava. Njegova široka prihvaćenost također znači da se razvojni programeri mogu osloniti na godinama stvaranu dokumentaciju, biblioteke otvorenog koda, alate za otklanjanje pogrešaka i rješenja za uobičajene probleme.
Za velike aplikacije produktivnost razvoja i jednostavnost održavanja mogu biti važnije od minimiziranja veličine instalacijskog paketa. Dodatnih stotinjak megabajta prostora na disku može biti prihvatljiv kompromis ako smanjuje složenost razvoja za više platformi i olakšava održavanje aplikacije.
To ne znači da je Electron uvijek pravi izbor niti da ga je svaka tvrtka odabrala iz istih razloga. Međutim, njegova daljnja upotreba u velikim produkcijskim aplikacijama pokazuje da je Electron i dalje praktična i dobro etablirana opcija, a ne zastarjela tehnologija koju bi razvojni programeri trebali automatski zamijeniti.
Više primjera možete istražiti u službenoj zbirci aplikacija izrađenih u Electronu.
Zašto u WebCatalogu odabiremo Electron
U WebCatalogu upotrebljavamo Electron za izradu aplikacija za stolna računala koje rade na više platformi i vjerujemo da je on i dalje pravi razvojni okvir za naše specifične zahtjeve.
WebCatalog korisnicima omogućuje pretvaranje web-mjesta u aplikacije za stolna računala, neovisno održavanje prijava na više računa i organiziranje aplikacija na macOS-u, Windowsu i Linuxu. Za razliku od uobičajene aplikacije za stolna računala, u kojoj razvojni programeri kontroliraju korisničko sučelje i mogu ga optimizirati za određeno okruženje, mi moramo podržati velik broj različitih web-mjesta nad kojima nemamo kontrolu.
Ta web-mjesta mogu upotrebljavati različite sustave autentifikacije, mehanizme pohrane, medijske značajke, API-je preglednika i razvojne okvire za JavaScript. Web-mjesto koje ispravno radi u Chromiumu može se drukčije ponašati u WebKitu, a održavanje kompatibilnosti s više mehanizama preglednika donijelo bi dodatne razvojne izazove.
Electronovo ujednačeno izvršno okruženje Chromiuma pomaže nam izbjeći velik dio te složenosti. Omogućuje nam pružanje predvidljivog okruženja preglednika na podržanim platformama za stolna računala, umjesto oslanjanja na različite sistemske webviewove.
Electron također pruža zrele API-je za upravljanje sesijama preglednika, kolačićima, pohranom, dozvolama i navigacijom. Njegove mogućnosti odvajanja sesija osobito su vrijedne za WebCatalog jer korisnicima omogućuju održavanje više neovisnih sesija prijave za isto web-mjesto.
Tauri također može prikazivati udaljena web-mjesta, a slična se funkcionalnost može implementirati pomoću njegovih webview API-ja, dodataka ili integracija specifičnih za platformu. Razlika je u tome što Electron pruža ujednačeniji temelj za aplikacije izgrađene oko funkcionalnosti preglednika, osobito kada moraju podržavati proizvoljne usluge trećih strana.
Podrška za Linux dodatno naglašava tu prednost. Distribucije Linuxa znatno se razlikuju po dostupnim sistemskim bibliotekama, radnim okruženjima i verzijama softvera. Electronovo priloženo izvršno okruženje Chromiuma uklanja jedan velik izvor razlika, dok aplikacije izrađene u Tauriju moraju uzeti u obzir okruženje WebKitGTK dostupno na svakoj podržanoj distribuciji.
Ta ujednačenost ima svoju cijenu. Aplikacije izrađene u Electronu veće su, a razvojni programeri moraju pažljivo upravljati potrošnjom resursa. U WebCatalogu neprestano tražimo načine za smanjenje tog dodatnog opterećenja. Primjerice, uveli smo APFS klonove radi smanjenja zauzeća diska generiranih aplikacija za Mac, čime pokazujemo da se neki nedostaci Electrona mogu ublažiti bez napuštanja tog razvojnog okvira.
Naša se odluka ne temelji na uvjerenju da je Electron univerzalno bolji od Taurija. Temelji se na zahtjevima našeg proizvoda. Za WebCatalog kompatibilnost preglednika, ujednačeno ponašanje na različitim operacijskim sustavima i zrele mogućnosti upravljanja sesijama vrjedniji su od minimiziranja veličine aplikacije.
Gdje Tauri ima prednost
Unatoč tome što u WebCatalogu dajemo prednost Electronu, postoje mnoge situacije u kojima Tauri može biti bolji izbor. Za lagane uslužne alate za stolna računala manji paketi aplikacija i niža osnovna potrošnja resursa uvjerljive su prednosti. Aplikacije koje uglavnom prikazuju vlastito korisničko sučelje, imaju relativno jednostavne zahtjeve za izvornim funkcijama i ne ovise o određenom mehanizmu preglednika mogu imati znatne koristi od Taurijeve arhitekture.
Tauri je privlačan i razvojnim programerima koji preferiraju Rust ili žele dijeliti izvornu logiku aplikacije između platformi. Od verzije Tauri 2 taj razvojni okvir službeno podržava Android i iOS uz operacijske sustave za stolna računala. Electron je, nasuprot tome, prvenstveno osmišljen za razvoj aplikacija za stolna računala i službeno ne podržava mobilne platforme.
Još jedan čimbenik jest održavanje. Electronovo ujednačeno izvršno okruženje pojednostavnjuje testiranje kompatibilnosti, ali od razvojnih programera aplikacija zahtijeva i održavanje te ažuriranje priloženih verzija Chromiuma. Tauri veći dio te odgovornosti prepušta operacijskom sustavu, što za određene aplikacije može smanjiti teret održavanja. Međutim, razvojni programeri možda će morati uložiti dodatan trud u testiranje različitih implementacija webviewa i rješavanje problema specifičnih za platformu.
Ukupni trošak razvoja važniji je od bilo kojeg pojedinačnog testa performansi. Razvojni okvir koji štedi memoriju, ali zahtijeva znatno više razvojnog rada, možda nije najučinkovitiji izbor za određeni tim. Isto tako, isporučivanje velikog izvršnog okruženja Chromiuma uz jednostavan uslužni alat može biti nepotrebno ako Tauri može obaviti isti zadatak s manje resursa.
Electron ili Tauri: koji biste trebali odabrati?
Oba razvojna okvira omogućuju izradu aplikacija za stolna računala spremnih za produkciju, ali optimizirana su za različite prioritete.
| Vaš prioritet | Bolja polazna točka | Zašto |
|---|---|---|
| Mala veličina preuzimanja i instalacije | Tauri | Upotrebljava sistemski webview |
| Niska osnovna potrošnja resursa | Tauri | Lagan izvorni pozadinski dio |
| Ujednačeno iscrtavanje na različitim platformama za stolna računala | Electron | Isporučuje isti mehanizam Chromium |
| Opsežna integracija s Node.js-om | Electron | Ugrađeno izvršno okruženje Node.js |
| Izvorne funkcionalnosti temeljene na Rustu | Tauri | Rust je primarni jezik pozadinskog dijela |
| Prikazivanje proizvoljnih web-mjesta trećih strana | Electron | Predvidljivo okruženje Chromiuma |
| Složeno upravljanje sesijama preglednika | Electron | Zreli API-ji za sesije i njihovo odvajanje |
| Razvoj za stolna računala i mobilne uređaje | Tauri | Službena podrška za stolne i mobilne platforme |
| Minimalno testiranje kompatibilnosti među preglednicima | Electron | Ujednačen mehanizam na različitim platformama za stolna računala |
To su opće preporuke, a ne apsolutna pravila. Electron se može upotrebljavati za izradu učinkovitih aplikacija, dok Tauri može biti temelj naprednog softvera. Bolji izbor ovisi o zahtjevima proizvoda i postojećoj stručnosti tima.
Timovi koji izrađuju napredne aplikacije za stolna računala trebali bi ozbiljno razmotriti Electronov etablirani ekosustav i dosadašnje rezultate. Činjenica da ga upotrebljavaju Microsoft, Slack, Discord i drugi veliki proizvođači softvera pokazuje da taj razvojni okvir može ispuniti zahtjevne produkcijske potrebe.
S druge strane, Tauri nudi privlačnu alternativu za projekte kojima su prioritet manje binarne datoteke, niža osnovna potrošnja resursa, integracija s Rustom ili zajednički razvoj za stolna računala i mobilne uređaje.
Završne misli
Rasprava o Electronu i Tauriju često se svodi na jednostavnu usporedbu: Electron je velik, a Tauri malen. No važnija je razlika između priloženog, ujednačenog izvršnog okruženja i laganog razvojnog okvira koji se integrira s webviewovima koje pruža sustav.
Electron daje prednost ujednačenosti na različitim platformama, integraciji s ekosustavom JavaScripta i opsežnoj kontroli nad funkcionalnostima preglednika. Tauri daje prednost manjim paketima aplikacija, učinkovitom izvornom izvršavanju i tješnjoj integraciji s webviewovima operacijskog sustava.
U WebCatalogu odabrali smo Electron, baš kao što su to učinile mnoge velike softverske tvrtke za svoje aplikacije za stolna računala. Cijenimo njegov zreo ekosustav, ujednačeno izvršno okruženje Chromiuma i opsežne funkcionalnosti preglednika. Te nam prednosti pomažu u izradi i održavanju proizvoda koji podržava širok raspon web-mjesta na više operacijskih sustava.
To ne znači da je Tauri loš izbor. Za lagane uslužne alate ili aplikacije s drukčijim zahtjevima njegove prednosti mogu nadmašiti Electronove.
Najbolji razvojni okvir nije nužno onaj s najmanjom izvršnom datotekom ili najnižom potrošnjom memorije. To je onaj koji vašem timu omogućuje najučinkovitiju izradu, održavanje i unaprjeđivanje aplikacije.


