Hunchentoot

Hunchentoot

Hunchentoot ist ein Webserver und -Framework, das komplett in Common Lisp geschrieben wurde, unter einer freien, BSD-ähnlichen Lizenz steht, und ähnliche Ziele wie das inzwischen inaktive Projekt AllegroServe verfolgt. Mit Hunchentoot ist es möglich, dynamische Webseiten in der Programmiersprache Common Lisp herzustellen, weiterhin bauen wichtige Frameworks für diese Sprache, zum Beispiel das Webframework UCW und das Ajax-Framework HT-Ajax darauf auf.

Inhaltsverzeichnis

Funktionsweise

Hunchentoot kann als autonomer Webserver fungieren, hinter einem Webserver einbindbar, der als Proxy fungieren kann, und mithilfe des Apache-Mods mod lisp auch direkter in Apache eingebunden werden. In jedem dieser Fälle muss allerdings eine komplette Common-Lisp-Session am Laufen sein.

Portabilität und Verbreitung

Hunchentoot ist unter den meisten verbreiteten Common-Lisp-Implementationen lauffähig (wenn auch teilweise mit Einschränkungen) und ist einer der wichtigsten Webserver für Common Lisp. Somit kann er auf den meisten unix-artigen Systemen eingesetzt werden.

Allerdings ist er bislang wenig verbreitet, was an der mangelnden Bekanntheit der modernen Lisp-Dialekte liegen könnte. Möglicherweise lassen sich potentielle Anwender auch durch die genutzte Garbage-Collection oder die Tatsache, dass eine Common-Lisp-Session permanent laufen muss, abschrecken. Zudem existieren für kommerzielle Nutzer Alternativen wie AllegroServe und das Webserver-Framework von LispWorks.

Programmierung

Im Zusammenhang mit Hunchentoot und anderen Webservern für Common Lisp wird häufig die Ausdrucksstärke und Flexibilität dieser Sprache genutzt, um HTML-Seiten mittels Markup-Bibliotheken zu generieren. Das folgende sehr rudimentäre Codebeispiel erstellt eine einfache „Hallo Welt“-Seite und benutzt dazu die Markup-Bibliothek cl-who.

  ;Einbinden der Bibliotheken, Paket definieren
  (require :hunchentoot)
  (require :cl-who)
  (defpackage hallo-welt (:use :cl :hunchentoot :cl-who))
 
  ;In das Paket wechseln
  (in-package :hallo-welt)
 
  ;Seite definieren
  (defun http-seite ()
    (with-html-output-to-string (out)
      (:html (:head (:title "Hallo-Welt-Seite"))
             (:body (:h1 "Hallo Welt")))))
 
  ;Webseite veroeffentlichen und Server starten
  (setf *dispatch-table* (list (create-prefix-dispatcher "/hallo-welt" 'http-seite)))
  (defvar *server* (start-server :port 8000))

Die Webseite ist nun unter

http://hostname:8000/hallo-welt

zu erreichen, wobei hostname den Hostname des Servers bezeichnet. Mit Root-Rechten funktioniert dieses Beispiel natürlich auch mit dem Port 80. Hunchentoot bietet auch noch ein eigenes Session-System und die Nutzung von Cookies. Auch SSL-Verbindungen werden unterstützt.

Trivia

Der Name Hunchentoot ist dem Werk des US-amerikanischen Komponisten und Gitarristen Frank Zappa entlehnt. Hunchentoot ist dort Titelfigur eines (unveröffentlichten) Musicals, von dem Fragmente Eingang in Zappas 1979 erstmals erschienenes Album Sleep Dirt fanden.[1]

Weblinks

Einzelnachweise

  1. Barry Miles: Zappa, Rogner & Bernhard, Berlin 2005. ISBN 3-8077-1010-8, S. 263.

Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Hunchentoot — Infobox Software name = Hunchentoot logo = caption = developer = Edmund Weitz operating system = Cross platform genre = Web server license = BSD license website = [http://www.weitz.de/hunchentoot/ weitz.de/hunchentoot/] Hunchentoot is a HTTP… …   Wikipedia

  • Common Lisp — Paradigm(s) Multi paradigm: procedural, functional, object oriented, meta, reflective, generic Appeared in 1984, 1994 for ANSI Common Lisp Developer ANSI X3J13 committee Typing discipline …   Wikipedia

  • Common Lisp Object System — For other uses, see Clos (disambiguation). The Common Lisp Object System (CLOS) is the facility for object oriented programming which is part of ANSI Common Lisp. CLOS is a powerful dynamic object system which differs radically from the OOP… …   Wikipedia

  • Movitz — is an implementation of the Common Lisp programming language for x86 computers. It runs with no underlying operating system and is intended as a development platform for operating system kernels, embedded, and single purpose applications . Movitz …   Wikipedia

  • CLISP — Original author(s) Bruno Haible, Michael Stoll Developer(s) Various Initial release April 1987; 24 years ago ( …   Wikipedia

  • Sleep Dirt — Infobox Album | Name = Sleep Dirt Type = Album Artist = Frank Zappa Released = January 19, 1979 Recorded = December 1974 1976 Genre = Jazz fusion, experimental rock, instrumental rock, progressive rock Length = 39:13 (vinyl) 38:39 (CD) Label =… …   Wikipedia

  • Cheepnis — is a song by Frank Zappa written for his never produced musical Hunchentoot, a tribute to B movies. The song first appeared on his 1974 album Roxy Elsewhere, from a live recording. Another live version of the song was released on You Can t Do… …   Wikipedia

  • OpenMusic — For other uses, see OpenMusic (disambiguation). OpenMusic logo. OpenMusic (OM) is an object oriented visual programming environment for musical composition based on Common Lisp. It may also be used as an all purpose visual interface to Lisp… …   Wikipedia

  • Mirai (software) — Mirai Developer(s) Izware Written in Common Lisp Operating system Windows Type 3D computer graphics …   Wikipedia

  • Common Lisp the Language — is an influential book by Guy L. Steele about Common Lisp. Contents 1 History 1.1 Before standardization 1.2 During standardization 1.3 A …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”