Questions tagged [hunchentoot]

Hunchentoot is a HTTP server written in Common Lisp and at the same time a toolkit for building dynamic websites. As a stand-alone web server, Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent connections (keep-alive), and SSL.

Hunchentoot provides facilities like automatic session handling (with and without cookies), logging, customizable error handling, and easy access to GET and POST parameters sent by the client. It does not include functionality to programmatically generate HTML output. For this task you can use any library you like, e.g. (shameless self-plug) CL-WHO or HTML-TEMPLATE.

Hunchentoot talks with its front-end or with the client over TCP/IP sockets and optionally uses multiprocessing to handle several requests at the same time. Therefore, it cannot be implemented completely in portable Common Lisp. It currently works "natively" with LispWorks (which is the main development and testing platform), and additionally on all Lisps which are supported by the compatibility layers usocket and Bordeaux Threads.

Hunchentoot comes with a BSD-style license so you can basically do with it whatever you want.

Hunchentoot is (or was) for example used by Postabon (it was renamed to Signpost and it seems Lisp is rejected), City Farming, Trip Planner (outdated?), clutu, TwitterBuzz, Jalat, Heike Stephan, xOs, and the NIST.

98 questions
1
vote
1 answer

HTML from DB not injecting into hunchentoot route

I have many routes in my app that get information from a database. In one particular situation, I am getting HTML content from a database to render it with cl-who. I am not sure why the content from the DB will not render. The rest of the page works…
Vinn
  • 1,030
  • 5
  • 13
1
vote
2 answers

Web Development with "hunchentoot" and "restas": how to return a template string with parameters

The code: (restas:define-module #:restas.api (:use #:cl)) (in-package #:restas.api) (restas:start '#:restas.api :port 3000) (restas:define-route main-tr ("/tr" :method :post) (let* ((raw-data (hunchentoot:raw-post-data :force-text t)) …
1
vote
3 answers

Can hunchentoot host CGI application?

We have a CGI application developed using python, which can be hosted in erlang YAWS easily: >cat ~/yaws.conf ... port = 8000 listen = 0.0.0.0 docroot = /media/G/www/qachina/ access_log = false appmods =…
z_axis
  • 8,272
  • 7
  • 41
  • 61
1
vote
1 answer

Hunchentoot/easy-routes - return multiple values to the dom?

I have a :get route with easy-routes that, when hit, runs one function (quick-test). The function quick-test returns two values. Both are strings. (easy-routes:defroute test-file ("/test-file" :method :get) (&get filename) (quick-test…
Vinn
  • 1,030
  • 5
  • 13
1
vote
1 answer

Common Lisp Executable doesn't do anything

I have followed all the steps in the cl-cookbook. I created a webapp project with quickprojects. I have my .asd file: (asdf:defsystem #:serve :description "Describe server here" :author "Your Name " :license "Specify…
Vinn
  • 1,030
  • 5
  • 13
1
vote
1 answer

sbcl executable crash when running a hunchentoot server

I want to create a http server with sbcl + hunchentoot. Everything goes well as long as I test the codes in a REPL or run the script file directly, but when I save the core as an executable, the server just crashes every time I try to access the web…
xiepan
  • 623
  • 4
  • 13
1
vote
2 answers

Trouble grabbing lisp input from the web using hunchentoot and sbcl

A lisp question here. I've been slowly learning lisp over the last couple of months and have ran into a problem when trying to grab input from a web browser vs. grabbing input from a REPL. The specific problem is when trying to evaluate this…
djdrzzy
  • 603
  • 4
  • 17
1
vote
0 answers

hunchentoot fatal error encountered in SBCL SIGABRT received

while installing hunchentoot (and subsequently loading it), I have the error: * (ql:quickload :hunchentoot) To load "hunchentoot": Load 1 ASDF system: hunchentoot ; Loading "hunchentoot" ....fatal error encountered in SBCL pid 43052(tid…
C. Derx
  • 326
  • 2
  • 13
1
vote
0 answers

Error: The condition Bad address (error #14) , fail to run Huntentoot on Clozure CL

I am trying to run hunchentoot on IBM power6 and only clozure cl is available on that platform. I have tried this : 1.lisp (hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 80)) (hunchentoot:define-easy-handler (say-yo :uri "/yo")…
Bah4i
  • 31
  • 2
1
vote
1 answer

Hunchentoot is unknown handler

The binary of my web-app built on CI fails to run, and succeeds if built locally. What could cause those differences, what would cause Hunchentoot to fail with this message ? Here are the different stacktraces: [14:42:11] weblocks/server…
Ehvince
  • 17,274
  • 7
  • 58
  • 79
1
vote
2 answers

cl-who passing stream in funcalls

I'm using cl-who (via hunchentoot), so far completely successfully, but there's one thing that I can't figure out, and my workaround is ugly, so I'm hoping that there's an easy fix. My hunchentoot easy handlers call functions that look something…
jackisquizzical
  • 307
  • 1
  • 8
1
vote
4 answers

Common Lisp implementation with CFFI and thread support on Mac, Windows, and Linux?

Goal: Install Hunchentoot and be able to run Hunchentoot as a background thread. This is what I do: Install Common Lisp. Install Quicklisp. (ql:quickload "hunchentoot") (hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242)) The last…
mcandre
  • 22,868
  • 20
  • 88
  • 147
1
vote
0 answers

Hunchentoot function timeout?

I'm about to start writing an app that will be accepting uploads of large files. I want to make sure that Hunchentoot doesn't timeout if the upload takes longer than 'X' number of seconds. I searched quickdocs and found the following instances of…
JEPrice
  • 627
  • 7
  • 10
1
vote
1 answer

easy-acceptor ignoring :document-root option; not serving static files

I am trying to serve static files with Hunchentoot, from the www directory inside my project. My acceptor is defined as: (defvar *acceptor* (make-instance 'easy-acceptor :port 4242 :document-root (truename "./www/"))) I then start…
Duncan Bayne
  • 3,870
  • 4
  • 39
  • 64
1
vote
1 answer

HTTPS with Clack

I have written a small server with Ningle, which in turn is using Clack to start a web server such as Hunchentoot or Woo. How can I handle HTTPS requests ? I have of course obtained the needed certificates.
Ealhad
  • 1,912
  • 20
  • 27