KWERC
Willkommen bei Kyles Werc, einer Neuinterpretation von Uriels WERC -Web -Framework in Es Shell.
Merkmale
- Produktiv. Erstellen Sie leistungsstarke, skalierbare Web -Apps so einfach wie das Schreiben von Shell -Skripten. Buchstäblich - es ist Shell! Pipe Unix -Tools wie SED und Grep oder praktisch alle Befehlszeilenprogramme, um komplexe Funktionen mit sehr wenig Code zu erstellen. Und mit weitaus intelligenterem Design als Bourne/Bash und andere Muscheln ist es Spaß und ist zuverlässig.
- Leicht zu lernen. Kennt es nicht ES? Kein Problem (fast niemand tut es). Es ist extrem einfach. Wenn Sie Bourne Shell oder Bash oder RC kennen, kennen Sie die meisten bereits. Weitere Informationen finden Sie in nur 10 Seiten und der ES -Manpage für weitere Informationen.
- Hackbar. Kwerc ist ein paar hundert Zeilen von ES. In Ihrer bevorzugten Datenbank (möchten Sie die leistungsstarke E/A -Umleitung von ES nutzen möchten, speichern Sie Daten in einem einfachen Textdateibaum oder montieren Sie eine Datenbank als Sicherungsdateisystem), Code in jeder Sprache usw. Auch ES selbst können im Fliegen geändert und erweitert werden.
- Kraftvoll. Neben Standard -Shell -Merkmalen ist ES erweiterbar und funktionsfähig und unterstützt erstklassige Funktionen, lexikalischen Umfang, Ausnahmen und Rich -Return -Werte. Benötigen Sie mehr? KWERC Schiffe mit dem lodernden schnellen Mawk -Dolmetscher können Inline von ES verwenden. Oder integrieren Sie Ihre Lieblingssprache wieder einfach (beachten Sie einige Sprachen mit einem erheblichen Leistungsverlust, der von Shell aufgerufen wird).
- Schnell. Passt in einen kleinen ramdisk, einschließlich eines vollständigen Satzes von statisch kompilierten Unix -Befehlszeilen -Tools (9Base). Funktioniert in einem Cluster. Unterstützt Redis als primärer Datenspeicher (Kwerc-Redis.
- Sicher. KWERC hat einen starken Schutz gegen Schaleninjektionen. ES 'Zitatregeln und insgesamt vernünftige Syntax vermeiden Sicherheitsfehler, die in anderen Shells üblich sind. Und natürlich gibt es keine bessere Sicherheitsfunktion als Einfachheit. KWERC ist durch Design und Implementierung einfach, und Software, die mit KWERC erstellt wurde, hat mehr mit weniger Code und weniger Fehler. Darüber hinaus ist KWERC vollständig in sich geschlossen und kann in einem schreibgeschützten Chroot oder einem Gefängnis geschaltet werden.
- Tragbar. Sollte auf einem typischen Unix ausgeführt werden (eines Tages kann es auch in Plan 9 oder Inferno ausgeführt werden). Keine externen Abhängigkeiten. 100% statisch zusammengestellt.
Abhängigkeiten
Alles ist im Verkäufer/enthalten. Sie brauchen nur C und Golang (> = 1.11) Compiler zum Bau. Es wird dringend empfohlen, statisch für maximale Leistung zu bauen (einschließlich aller externen Programme, die Sie von KWERC durchführen). Musl ist ideal (kann jedoch in einigen Umgebungen Fehler in 9Base erzeugen).
Eine einfache make erstellt die Anbieterabhängigkeiten und setzt sie an den richtigen Ort. Sie müssen nicht make install ausführen (tatsächlich können Sie nicht)-alles ist im KWERC-Verzeichnis in sich geschlossen.
Debian:
# apt install build-essential golang-go
$ make
Alpin:
# apk add build-base go
$ make
Hier ist ein kurzer Überblick über diese Abhängigkeiten:
- ES: Der ES -Interpreter. Alternativen: RC, jede andere Hülle mit ein wenig Portierungsarbeiten.
- 9Base: Verschiedene Plan 9 -Tools, die auf Unix portiert sind und eine schöne Shell -Umgebung bieten. Alternativen: Coreutils, SBase, Busybox usw. mit ein wenig Portierungsarbeiten.
- Mawk: Ein schneller Awk -Interpreter. Alternativen: Jeder andere AWK -Interpreter.
- Kryptgo: Eine Befehlszeilenschnittstelle zu Golang Crypto-Funktionen, die für Auth.
- CGD: Ein CGI -Webserver. Alternativen: Jeder Webserver mit CGI -Support - Dokumentation bevorsteht.
Verwendung
./bin/cgd -c app/es/kwerc.es
KWERC sollte nun unter http://127.0.0.1:42069 erreichbar sein. Die Standard -Site verfügt über eine grundlegende Anmelde-/Registrierung und eine Debug -Seite.
Als nächstes: Erstellen einer tatsächlichen Web -App. Die Dokumentation ist eine laufende Arbeit unter kWerc.org. Die Dokumentation von WERC ist ebenfalls etwas anwendbar.
Erweiterungen
Häufig befragte Antworten
Frage: Ein Web -Framework in Shell? Sie können es nicht ernst meinen.
A. Das ist nicht verprügelt.
F. CGI? Ist das nicht langsam?
A. https://www.mail-archive.com/[email protected]/msg00202.html
Frage: Statische Binärdateien? Sind diese riesigen/unsicher/langsam?
A. https://sta.li/faq/
Bald zu einem KWERC in Ihrer Nähe kommen
- Dokumentation
- Datei -Uploads
- Ausschnitt
- PWA -Unterstützung
- ???
Kontakt
[email protected]
Spenden
Senden Sie einfach das Geld
Lizenz
KWERC wird unter der ISC -Lizenz verteilt. Weitere Informationen finden Sie in Lizenz.
Abhängigkeiten unter Verkäufern/ haben ihre eigenen Lizenzen. Lesen Sie sie.
Danke & Geschichte
KWERC ist der Erinnerung an Uriel gewidmet. <3
KWERC basiert auf WERC, das von Uriel mit Beiträgen von Garbeam, Kris Maglione, Sqweek, Soul9, Mycroftiv, Maht, Yiyus, Cinap_lenrek, KHM und vielen anderen erstellt wurde.
KWERC enthält viele der Änderungen aus Garbeams Werc Fork Swerc.
Vielen Dank auch an alle, die hinter den verschiedenen Abhängigkeitsprojekten unter dem Anbieter/.
Ideen für KWERC stammen aus einer Vielzahl von Projekten, bei denen ich unter anderem WERC verwendet habe, darunter ROVR, VRLFP, Tokumei, Gelato Labs und Werchan. Vielen Dank an alle Beteiligten. Besonderer Dank geht an das bekannte Genie und den lieben Freund Keefer Rourke für viel Weisheit, die Kwercs Design geprägt hat.