In diesem Artikel stellen wir Ihnen sieben neue Projekte aus dem JavaScript-Universum vor, die Sie vielleicht noch nicht kennen. Die Tools und Frameworks decken ein breites Funktionsspektrum ab und geben einen Einblick, wohin die Trends in Sachen JavaScript-Entwicklung gehen.
1. Tauri
Tauri ist ein JavaScript-Framework, um Desktop-Anwendungen zu entwickeln. Dieses "Meta-Framework" ermöglicht es, ein beliebiges Frontend-Web-Framework wie React oder Svelte einzusetzen - und verwandelt es in einen plattformübergreifenden "Rich"-Client.
Einer der Mitbegründer von Tauri, der unter dem Usernamen Denjell in Erscheinung tritt, bringt den Sinn und Zweck des Desktop-Frameworks auf den Punkt: "Tauri existiert, um den Prozess der Anwendungsentwicklung zu rationalisieren. Zunächst einmal erstellt Tauri Anwendungen für Mac, Windows und Linux. Diesen Sommer werden wir Version 2.0 veröffentlichen, die dann auch iOS und Android miteinbezieht."
Der Entwicklungsprozess mit Tauri gestaltet sich interessant: Das Framework ermöglicht es Ihnen, mit Ihrer vorhandenen Pipeline zu entwickeln und kann dabei mit jedem Stack umgehen, der in JavaScript und HTML erstellt wird. Es läuft gegen den Entwicklungsserver und generiert den nativen Desktop-Client on the fly. Mitbegründer Denjell beschreibt den Entwicklungsprozess folgendermaßen:
Starten Sie einen Entwicklungsserver mit Svelte, Solid.js, React, Vue, etc.
Konfigurieren Sie
tauri.conf
auf den enstprechenden Port.Starten Sie ein Tauri-Entwicklungsfenster.
Obwohl der Code von Tauri systemorientiert und in Rust geschrieben ist, interagieren Entwickler mit APIs, die fast alle in JavaScript geschrieben sind. Tauri ist ein überzeugender Ansatz, um native Desktop-Anwendungen für die Welt der JavaScript-Entwickler zu erstellen. Im Gegensatz zu älteren Frameworks, die ähnliche Versuche unternommen haben, will Tauri das Versprechen der Multiplattform-Entwicklung mit JavaScript auch tatsächlich einlösen.
2. tRPC
tRPC bietet einen verlockenden Ansatz, um APIs auf der Grundlage von TypeScript zu erstellen. Obwohl es zur gleichen Technologiefamilie wie GraphQL gehört, hebt sich tRPC dadurch ab, dass es die Interaktion zwischen dem Frontend- und Backend-Code automatisiert. Außerdem verfügt es über "Superkräfte", die sich aus der Fähigkeit von TypeScript ergeben, Typisierung zu erzwingen.
Ich habe den tRPC-Erfinder Alex Johansson gefragt, warum er tRPC entwickelt hat. Seine Antwort: "Ich bin langjähriger Fan von GraphQL, aber bei der Entwicklung meiner eigenen Produkte habe ich oft das Gefühl, dass es mich ausbremst. Ich benutze TypeScript für Front- und Backend. Warum kann ich nicht einfach die Sprache selbst verwenden, statt ein externes Schema einzubinden?"
Besagte "Superkraft" manifestiert sich darin, dass tRPC ermöglicht, Typen über den gesamten Stack hinweg durchzusetzen und zuzuordnen. Es bietet eine Art Zwei-Wege-Typ-Inferenz und funktioniert ohne die Zwischenschaltung von Metadaten oder einen zusätzlichen Erstellungsschritt, um die API-Definitionen mit dem Code zu verbinden.
hier können Sie einen Blick auf eine React-Applikation werfen, die vom tRPC-Team mit StackBlitz erstellt wurde. In dem Beispiel steuern die exponierten Endpunkte die Informationen, die der IDE zur Verfügung stehen. Am Frontend wird die result-Variable zum Beispiel mit einem benutzerdefinierten tRPC useQuery
-Hook gefüllt:
const result = trpc.greeting.useQuery({ name: 'client' });
.
Am Backend wird das von einem tRPC-Router verarbeitet.
Das Frontend kann dann die Variable wie folgt verwenden: {result.data.text}
. Die IDE (und der TypeScript-Kompilierungsschritt) ist sich dessen "bewusst" und kann die Typdefinition von result.data
bereitstellen. Ebenso kennt der tRPC-Router-Endpunkt das Frontend, etwa den in der Abfrage angegebenen Parameter. tRPC gewinnt innerhalb der Developer-Community zunehmend an Interesse, wie über 20.000 Stars auf GitHub belegen.
3. Bun.js
Bun.js ist ein aufstrebender Stern am JavaScript-Himmel, weil das Framework an mehreren Fronten mit nur einem einzigen Paket angreift. Einer der Schöpfer, Jarred Sumner, fasst seine Beweggründe dafür zusammen, Bun zu entwickeln:
"Wir wollten, dass JavaScript schneller läuft und einfacher zu schreiben ist. Ein wichtiger Teil davon ist die Kompatibilität mit dem Ökosystem. Bun ist als Drop-in-Ersatz für Node.js konzipiert. Die Leute sollen ihren Code nicht umschreiben müssen, um Bun zu nutzen. Viele Node.js-APIs wie Nodes native Modul-API (NAPI), fs
, path
, process
und mehr sind in Bun integriert."
Bun ist jedoch auch eine Alternative für sekundäre Tools wie Webpack, Vite und Babel und zeichnet sich in erster Linie durch seine erstaunliche Geschwindigkeit aus. Der Performance-Vorteil von Bun resultiert dabei aus dem Fakt, dass ein Großteil des Codes nicht mehr in JavaScript, sondern in den Low-Level-Sprachen Zig und C++ gespeichert wird.
Die schnelle Verarbeitung von Bun und sein All-in-One-Ansatz machen es zu einer überzeugenden Alternative zu herkömmlichen Stacks für serverseitiges JavaScript im Backend. Auch die Entwickler wissen das zu schätzen und haben dem Framework auf GitHub bislang mehr als 40.000 Stars verliehen.