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
17
votes
3 answers

Deploying Common Lisp Web Applications

I am wondering how one goes about deploying a Common Lisp web application written in, say, Hunchentoot, Wookie, Woo, or even Clack. That is, suppose I write an app that contains some files, packages, etc. Typically when I am working locally, I…
MadPhysicist
  • 5,401
  • 11
  • 42
  • 107
14
votes
1 answer

Common Lisp: Hunchentoot and the REPL - When I start the server I get log output in the REPL and can't use the REPL any more

Like a few of the askers on here, I'm new to Lisp. I'm going through the Practical Common Lisp book, but took a sidestep to see how easy it would be to set up a web app, so I've been following this tutorial, as well as the updated version here. When…
mkornblum
  • 534
  • 5
  • 18
12
votes
2 answers

How to tell Hunchentoot where to find static web pages to serve?

The Hunchentoot documentation states: "The method for ACCEPTOR tries to serve a static file relative to it's ACCEPTOR-DOCUMENT-ROOT." acceptor-document-root acceptor => (or pathname null) (setf (acceptor-document-root acceptor )…
mobydick
  • 151
  • 1
  • 8
10
votes
2 answers

SBCL: Deploying Hunchentoot application as executable

I started playing with SBCL Common Lisp and want to develop a small web application using Hunchentoot. For easy deployment I planned to save everything in a binary using sb-ext:save-lisp-and-die as I can live with the big output size. For the…
Sojaki
  • 187
  • 1
  • 8
9
votes
6 answers

Using ASDF to start Hunchentoot

I'm working on a web app using Hunchentoot (on SBCL and Linux), and usually I just run it from Emacs (SLIME), but for deployment I want something that's easier to automate. So I'm trying to figure out ASDF, because that seems to be what everybody's…
Ken
  • 511
  • 3
  • 4
8
votes
2 answers

Common Lisp on Heroku with Hunchentoot?

Has anyone been able to successfully deploy an app on Heroku with the Heroku Common Lisp Buildpack using Hunchentoot? I'm getting a ! Heroku push rejected, no Cedar-supported app detected and I'm not sure if I'm doing something wrong, or if it…
mck
  • 1,334
  • 2
  • 12
  • 20
8
votes
2 answers

Accessing Hunchentoot request objects from the REPL for debugging

I find that incremental development tends to break when coding for Hunchentoot. For example, I might write a web page that is composed of a few functions. If one of these inner functions contains a call to - say - hunchentoot:post-parameters* then I…
BnMcGn
  • 1,440
  • 8
  • 22
7
votes
3 answers

How do I start Hunchentoot?

How do I start Hunchentoot on a project? I looked over Edi Weitz's guide and everything went smoothly until after installation. The listed tutorials were either broken or skimmed over actual server usage. I have my asdf file, installed dependencies…
deadghost
  • 5,017
  • 3
  • 34
  • 46
7
votes
4 answers

Newbie question about Lisp and Packages

Here is the back story skip to the bottom if you do not care and only want to see the question. So I have been playing around in LISP for a little while. Some basic functions, some classes ,and file IO. When I run across this…
efbenson
  • 189
  • 1
  • 9
6
votes
1 answer

Hunchentoot enabling CORS

I am having some issues in enabling CORS on hunchentoot: (hunchentoot:define-easy-handler (one-api :uri *one-endpoint*) () (when (boundp '*acceptor*) (setf (hunchentoot:header-out "Access-Control-Allow-Origin") "*") (setf…
piggyback
  • 9,034
  • 13
  • 51
  • 80
6
votes
1 answer

Special variable in hunchentoot

Currently, I'm developing 2 web-based tools for my own need with hunchentoot. Before starting hunchentoot, I want to set some special variable with let so there values will be available while hunchentoot is running. Like : (let ((*db-path*…
FireRain
  • 103
  • 8
6
votes
2 answers

What are some recommended Common Lisp Web Servers options?

So far I've only tried Hunchentoot and heard about AllegroServe, ABCLweb, though I wouldn't know how they compare in performance. I was wondering, what is currently the best option for deploying a Common Lisp web app in a production environment?
wallyqs
  • 7,456
  • 5
  • 26
  • 25
6
votes
3 answers

Hunchentoot dispatch by HTTP method

I couldn't find any documentation on how to dispatch based on HTTP method (on the same uri). The closest I got was :default-request-type on the define-easy-handler -- but it seems to dispatch to the latter, even though I use GET…
mck
  • 1,334
  • 2
  • 12
  • 20
6
votes
2 answers

In Common Lisp what is a printed representation?

I'm using SBCL, emacs, slime, and quicklisp to install various packages. I instantiate and start a hunchentoot acceptor like so, CL-USER> (hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242)) #
kes
  • 359
  • 1
  • 8
6
votes
1 answer

Using hunchentoot to parse post request sent by model.save() in Backbone.js

I am a javascript/web application newbie and trying to implement my first web application using hunchentoot and backbone.js. The first thing I was experimenting is to understand how model.fetch() and model.save() work. It seems to me that…
BreakDS
  • 498
  • 4
  • 13
1
2 3 4 5 6 7