Harpoon.js JavaScript Web Server

Harpoon.js



Harpoon.js ist ein leichtgewichtiger und hochperformanter Webserver mit JavaScript-Backend.

Features

  • JavaScript nach modernem ECMAScript ES6 Standard
  • Pfeilschnell
  • Integriertes dokumentenorientiertes LiteDB-Datenbanksystem
  • Integriertes relationales SQLite-Datenbanksystem
  • Server-sent events
  • Zuschaltbarer In-Memory-Cache für Dateien zur Verringerung von Festplatten-Zugriffen
  • Lauffähig unter Windows und Linux
  • 32/64-Bit-kompatibel
  • Vieles mehr

Warum Harpoon.js?

Die Programmiersprache der Zukunft schlechthin ist JavaScript. Von kleinen in HTML-Seiten eingebetteten Skripts zu hochskalierbaren verteilten Anwendungen im Internet und auch als Programmiersprache für die App- und Desktop-Programmierung gewinnt JavaScript zusehends an Bedeutung. In Verbindung mit der Entwicklung von HTML5 und damit verbundenen Technologien bietet JavaScript unschlagbare Möglichkeiten bei der Gestaltung von Benutzeroberflächen. Auch dokumentenorientierte Datenbanken gehen immer mehr dazu über, JSON-Objekte zu speichern, welche durch die native Unterstützung seitens JavaScript nahtlos in der Anwendung verarbeitet werden können.


„Harpoon.js schließt die Lücke zwischen Node.js und PHP.”
Eine Großzahl der Internetseiten basiert auf PHP. Die Skriptsprache ist einfach zu erlernen und somit besonders für kleinere Projekte geeignet. Mit Node.js ist eine Plattform verfügbar, mit der sich ebenfalls resourcensparende Web-Anwendungen auf Basis von JavaScript realisieren lassen. Der Einstieg in Node.js ist jedoch ungleich schwieriger: Der Programmierer muss die Webserver-Funktionalität zunächst selbst in JavaScript programmieren und das Event-basierte Konzept von Node.js erlernen. Für Einsteiger und Umsteiger dürfte ein Blick auf Harpoon.js daher umso interessanter sein.
Die großen Vorteile einer einheitlichen Programmiersprache im Frontend und Backend liegen auf der Hand:
  • Die Kommunikation zwischen Front- und Backend wird vereinfacht, da beide Seiten mit exakt den gleichen Datenstrukturen (hier: JSON-Objekte) umgehen.
  • Der Entwickler braucht nicht zwei separate Programmiersprachen beherrschen, sondern kann sich auf eine konzentrieren. Dies reduziert nicht nur Fehler, sondern auch die Produkteinführungszeit(Time-to-Market) und erhöht so die Produktivität des Entwicklers.
  • Funktionalitäten des Backends (z.B. die Sortierung von Daten-Objekten) lassen sich bei Bedarf einfach vom Backend in das Frontend verlagern oder umgekehrt, ohne die Quellcodes erst in die Zielsprache übersetzen zu müssen.

Code-Beispiele

Node.js-Quellcode: var http = require("http");
http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World');
}).listen(80);


Harpoon.js-Quellcode: function show() {
  write('Hello World');
}
Das Skript wird für jeden Aufruf ausgeführt - die traumhaften Benchmark-Ergebnisse rühren also nicht von gecachten HTML-Ausgaben.

Benchmarks

Benchmark: Node.js vs. Harpoon.js
Die Ergebnisse wurden mit TaratuLoom ermittelt. Das Analyse-Tool steht kostenlos zur Verfügung, um die Geschwindigkeit eigener Internet-Dienste messen und vergleichen zu können.

Systemanforderungen

Zum Betrieb der Software wird ein PC mit .Net-Framework 4.5 (oder höher) benötigt. Die Software ist kompatibel zum Mono-Framework und wurde unter Windows und Linux erfolgreich getestet.