banner
Maison / Blog / Socket Runtime vise à abandonner le cloud en tant que dépendance • The Register
Blog

Socket Runtime vise à abandonner le cloud en tant que dépendance • The Register

Nov 17, 2023Nov 17, 2023

Interview Socket Supply Co a présenté aujourd'hui Socket Runtime, un environnement d'exécution open source permettant de créer des applications mobiles et de bureau natives pour Linux, macOS ou Windows à l'aide de technologies Web, mais avec une connectivité peer-to-peer en option comme moyen de compléter ou même d'éviter le cloud backend. prestations de service.

Un runtime est un environnement pour exécuter du code. Les navigateurs Web servent d'environnement d'exécution pour le code JavaScript. Il existe également des environnements d'exécution de serveur tels que Node.js, Deno et Bun, pour les applications JavaScript qui s'exécutent en dehors des navigateurs. Et il existe des environnements d'exécution d'applications comme Electron, Tauri et Socket Runtime, pour les applications JavaScript qui s'exécutent localement sur des appareils de bureau (et mobiles pour les deux derniers).

Electron, un framework open source populaire pour la création d'applications multiplateformes avec des technologies Web (JavaScript, CSS, HTML), s'appuie sur le moteur de navigateur Chromium pour le rendu des pages Web et sur l'environnement d'exécution Node.js. Il rassemble un processus principal Node.js, pour gérer les fonctions orientées serveur et des éléments tels que l'accès aux fichiers, avec des processus de rendu Chrome pour présenter des interfaces utilisateur basées sur HTML.

"Le gros problème d'Electron est qu'il n'a jamais été conçu pour fonctionner sur mobile", a déclaré Paolo Fragomeni, PDG de Socket Supply Co, dans une interview avec The Register.

Tauri est un framework open source permettant de créer des applications mobiles et de bureau pour diverses plates-formes natives utilisant Rust et WebView pour le rendu HTML. Les applications Tauri ne sont pas livrées avec un runtime car le binaire final est compilé en Rust.

Mais Fragomeni affirme que Socket Runtime est préférable car il n'y a pas de nouveau langage de programmation à apprendre. "Avec Tauri, il y a Rust, et c'est un échec pour la majorité des développeurs Web", a-t-il déclaré.

Il a soulevé des objections similaires au framework Flutter de Google. "Flutter introduit à nouveau ce nouveau langage à apprendre, Dart, qui est plutôt obscur dans l'ensemble", a-t-il déclaré, tout en concédant que Google "a d'excellents ingénieurs qui travaillent sur ce genre de choses".

Fragomeni affirme que les technologies Web sont la voie à suivre, faisant écho au cri de ralliement du créateur de JavaScript Brendan Eich : « Misez toujours sur JS !

"Nous aimons le Web", a déclaré Fragomeni. "Il y a plus de développeurs Web que tout autre type de développeurs. Le Web possède la meilleure documentation, les modèles de conception les plus connus et les plus grandes entreprises y investissent."

Mais les navigateurs, dit-il, ont été conçus pour un type spécifique de logiciel client-serveur, c'est pourquoi nous avons vu des efforts comme Electron et Tauri (sans parler de Capacitor, Cordova, Ionic, NativeScript et React Native) pour intégrer la technologie Web aux applications natives. développement. Celles-ci ont été bien accueillies, dit-il, car cibler plusieurs plates-formes constitue un défi du point de vue du développement et de la gestion.

"Il est vraiment difficile de trouver, d'embaucher, puis d'encourager et de maintenir un ingénieur Android, un ingénieur iOS, un ingénieur de bureau Windows, un ingénieur macOS et un ingénieur Linux", a-t-il déclaré.

"Socket aide les développeurs Web à créer des applications pour n'importe quel système d'exploitation, ordinateur de bureau et mobile. Et cela en utilisant HTML, CSS et JavaScript, ou leurs frameworks préférés."

Socket Runtime présente également un avantage en termes de taille par rapport à Electron : il produit des applications beaucoup plus petites. Electron, dit-il, fournit "un binaire de 200 Mo en fin de compte, alors que Socket livre un binaire de 1,5 Mo. Et c'est un gros problème si vous voulez vous adresser aux marchés émergents".

Tauri est compétitif en termes de taille binaire, bien que Fragomeni conteste les choix architecturaux de Tauri car ils ne sont pas sécurisés malgré les avantages en matière de sécurité de la mémoire disponibles dans Rust.

"Tauri, il y a un excellent travail là-dedans", a-t-il déclaré, "mais ils ont conservé l'idée du processus principal [comme on le voit dans Electron]. Le processus principal est ce genre de processus arbitraire qui s'exécute sur votre ordinateur. Il a un accès complet et illimité à votre ordinateur, et il n'y a aucun moyen pour un utilisateur d'avoir des garanties sur ce que ce processus ferait.

"Socket adopte une approche radicalement différente dans la mesure où nous adoptons les standards du Web", a déclaré Fragomeni. "Dans les normes Web, il existe une chose appelée CSP – politique de sécurité du contenu. Nous l'utilisons pour atténuer, de manière fine, les appels IPC [communication inter-processus] qui vont à la couche intermédiaire."