SmackJack icon indicating copy to clipboard operation
SmackJack copied to clipboard

An Ajax Common Lisp Library using parenscript to generate javascript and hunchentoot (for now) as the web server. Basically a fork and refactoring of ht-simple-ajax with an attempt merge ideas and cod...

This is the stub README.txt for the "smackjack" project.

Smackjack is a small Ajax framework written in Common Lisp. Basically Smackjack allows browser code call lisp functions via ajax and get a return value. The code can be downloaded with all its dependencies and loaded by quicklisp (10/2013).

Currently runs under Hunchentoot web server but there are plans to allow other web servers. It was a fork of ht-simple-ajax and aspires to be a replacement to the unmaintained and out of date ht-ajax.

Differently than those two libraries, this one depends on parenscript to generate client-side javascript and allows greater flexibility in generated javascript.

Current version is compatible with ht-simple-ajax but it lacks many features of ht-ajax.

The following features are addition to those available in ht-simple-ajax:

  • AJAX via Post as well as Get

  • response can be text, xml or json.

  • optional javascript namespaces to encapsulate generated javascript functions.

  • The arguments of the functions can be treated by cl-json before calling the function.

The code also contains a "pusher" subclass. This allows a lisp function call indirectly a javascript function defined in your lisp code by parenscript but runs in the browser. Basically the opposite of SmackJack. This is achieved by adding a simple polling mechanism. Future development may include long polling.