Lisp Web Frameworks? [closed]

2019-01-20 22:55发布

What are the popular (ok, popular is relative) web frameworks for the various flavours of LISP?

16条回答
贪生不怕死
2楼-- · 2019-01-20 23:25

What is Weblocks?

Weblocks is a continuations-based web framework written in Common Lisp.

http://common-lisp.net/project/cl-weblocks/

查看更多
Explosion°爆炸
3楼-- · 2019-01-20 23:25

I've searched quite extensively for a good web framework for Lisp, and I found them all to be somewhat inaccessible. The Architecture of UCW didn't seem very natural to me (I can't remember why; it's been a while since I looked into it), and KPAX isn't maintained anymore (I think).

Symbolic web looks very interesting, and I think Weblocks is the most interesting, but Weblocks isn't very well documented and can be pretty intimidating to the newcomer. SymbolicWeb was immature last time I looked, but it may have grow up some since then. The features page looks pretty good today.

There are different approaches you could take. If you want a purely lisp approach, then you could:

  • If you can read code proficiently and understand continuations, you might try Weblocks with a Hunchentoot backend (Weblocks has a dependency on Hunchentoot that hasn't been abstracted yet). There is supposed to be a real user manual out in a month or two, but as with any OSS project, such commitments are sketchy.
  • Similarly, you might try SymbolicWeb. [update: nevermind, the project is no more]
  • roll your own. Seriously - there's cl-who to help with HTML generation, there are javascript and json libraries available, usockets, elephant, cl-sql, hunchentoot, aserve, and lots of utility libraries that you could bake together.

If you are ok with a hybrid approach, this is something I'm experimenting with at the moment: I've written a Lisp JSON-RPC backend for Qooxdoo, so I can serve up pure javascript frontends through a superfast http server like Cherokee and let Cherokee farm out connections to as many backend json-rpc servers running in Lisp as I want. Very, very scalable. I'm far from figuring out the kinks and challenges, but it was pretty straight-forward to get working. the json library makes it stupid simple to get the backend working - Qooxdoo itself is actually harder, I think (but I'm not a JS developer, really).

I'm also going to be checking out WebActions from allegro, because there's a certain allure to the availability of paid support - not to mention that Allegro may be the best CL implementation available (His Kennyness uses it :-)).

查看更多
一夜七次
4楼-- · 2019-01-20 23:25

I just discovered a web framework called Clack for common lisp and found it quite easy to get started.

See http://clacklisp.org/

Quote from it's web site "Clack is a web application environment for Common Lisp inspired by Python's WSGI and Ruby's Rack."

and caveman is a micro web framework based on Clack.

查看更多
冷血范
5楼-- · 2019-01-20 23:26

Most (perhaps all) of the well-known Common Lisp web frameworks have already been mentioned, so I'll just add some comments.

Hunchentoot is not a "web framework" in the sense that most people mean. It's an HTTP server (an extremely good one).

Drew Crampsie's "Lisp on Lines" looks extremely promising, but I'm not sure how far along it is. I've been waiting to hear an announcement.

Marco Baringer's UnCommon Web runs on many of the prominent CL implementions: Allegro CL, CMUCL, Clozure CL (formerly known as OpenMCL), GNU clisp, and SBCL. The only major one missing is LispWorks; I don't know if that means it hasn't been tested to work, or is known not to work, or what; but if it runs on all those other dialects, it's probably easy to make it run on any other.

查看更多
聊天终结者
6楼-- · 2019-01-20 23:31

For Clojure you can try Webjure.

查看更多
We Are One
7楼-- · 2019-01-20 23:33

Common Lisp

A lot of the usual suspects (Hunchentoot, UCW, LoL) have already been mentioned. Franz makes available for Allegro Common Lisp (and ported to other Lisps):

  • at a lower level (handling HTTP requests yourself), AllegroServe.
  • at a higher level (more of a "framework"), WebActions.

Both are open source. I tend to use AllegroServe, factoring out utilities as I need them, but some people really like WebActions.

I used Araneida for quite some time, and I prefer its style to AllegroServe, but it hasn't been maintained since 2006.

查看更多
登录 后发表回答