- Eine minimale JavaScript-Laufzeit, die sowohl Mobilgeräte als auch Desktop unterstützt und auf verschiedenster Hardware ausgeführt werden kann
- Fokussiert sich mit einer asynchronen, ereignisbasierten Architektur auf Modularität, Vielseitigkeit und Leichtgewichtigkeit
- Optimiert für die Entwicklung von P2P-Anwendungen und plattformübergreifenden Apps
Hauptfunktionen
-
Vollständig modularer Aufbau
- Keine Standardbibliothek → modularer Ansatz, bei dem nur die benötigten Funktionen eingebunden werden
- Beispiele:
bare-fs, bare-http1, bare-crypto, bare-zlib, bare-stream usw.
- Durch die Struktur, nur die benötigten Funktionen zu installieren und zu nutzen, lässt sich eine leichtgewichtige Laufzeitumgebung aufbauen
-
ESM- & CommonJS-Kompatibilität
- Sowohl
require() als auch import können verwendet werden
- Auch in Umgebungen, in denen beide Modulsysteme gemischt sind, ist eine freie Interaktion möglich
-
Unterstützung mit mobiler Optimierung
- Mit Bare Kit kann eine JavaScript-Laufzeit in mobile Anwendungen eingebettet werden
- Über
react-native-bare-kit einfache Integration in Android und iOS
- Unterstützung für IPC-Kommunikation, Bare-Worklets können in React-Native-Apps ausgeführt werden
-
Unterstützung für Native-Add-ons
- Native Add-ons können auf Basis von
libjs und libuv geschrieben werden
- Unterstützung für verschiedene JavaScript-Engines (V8, JavaScriptCore, QuickJS)
- Die meisten N-API-Symbole können verwendet werden
Die Philosophie von Bare: Einfachheit ist Stärke
- Bare ist eine kleine, modularisierte Laufzeitarchitektur, die sowohl auf Desktop als auch auf Mobilgeräten ohne Leistungseinbußen laufen kann
- Wie Node.js bietet es eine asynchrone, ereignisbasierte Architektur, wurde aber mit Fokus auf Embedding und Gerätekompatibilität entworfen
Was sich mit Bare bauen lässt
-
P2P-Anwendungen
- Auf Basis des Holepunch-Stacks lassen sich Echtzeit-Datenstreaming, Dateifreigabe und Kommunikations-Apps schnell aufbauen
- Serverlose Kommunikations- und Sharing-Apps wie Keet oder Pear sind möglich
- Hochleistungs-Echtzeitkommunikation auch ohne WebRTC
- Dank der leichtgewichtigen Struktur und Modularisierung sind sowohl Skalierbarkeit als auch Effizienz gegeben
-
Dezentrale Netzwerke
- Eine serverlose Struktur ermöglicht ein Maß an Verteilung auf Blockchain-Niveau
- Geeignet für verschiedenste verteilte Apps wie DeFi, Datenaustausch und private Netzwerke
-
Hocheffizienter Datenaustausch
- Geeignet für Medienbibliotheken, Echtzeitspiele und Video-Streaming
- Unterstützung für schnelle und stabile Synchronisierung und Streaming
-
Autarke plattformübergreifende Apps
- Einmal geschriebene Module lassen sich sowohl auf Mobilgeräten als auch auf dem Desktop wiederverwenden
- Beispiele: Push-Benachrichtigungen, Video-Re-Encoding, Verschlüsselungsaufgaben – funktionieren auch in ressourcenschwachen Umgebungen reibungslos
Leistung und Skalierbarkeit
- Unterstützung für verschiedene JS-Engines wie V8, JavaScriptCore und QuickJS
- LibJS-Integration sorgt für Kompatibilität mit bestehenden Laufzeiten
- Für Performance auf Native-Niveau wird fastcall eingesetzt
- Technikleiter Kasper Isager: "Bare wurde so entworfen, dass es überall laufen kann – von Computern über Mobiltelefone bis hin zu Embedded-Systemen"
Pear + Bare = vollständiger P2P-Entwicklungs-Stack
- Pear ist eine Plattform, die P2P-Laufzeit sowie Entwicklungs- und Deployment-Tools integriert
- Auf Bare basierende Apps laufen in Holepunchs Pear Runtime und bieten eine vollständige P2P-Umgebung, die ohne Server funktioniert
- Keine Serverkosten, vollständiger Schutz der Datenprivatsphäre
- Pear wird automatisch aktualisiert und enthält die Bare-Laufzeit gleich mit
- Diese Kombination bietet ein völlig neues leichtgewichtiges Container-Modell
Fazit
- Bare ist eine innovative Laufzeit, die die echte Vielseitigkeit und Effizienz von JavaScript verwirklicht
- Auch innerhalb des Holepunch-Teams werden bereits mobile und Desktop-Apps gleichzeitig aus einer einzigen Codebasis ausgeliefert
- Eine echte Umsetzung von "Write Once, Run Anywhere"
- Vollständig serverlose P2P-Apps lassen sich nun mit einer einzigen Codebasis auf jedem Gerät ausführen
Noch keine Kommentare.