60

各种 LISP 风格的流行(好吧,流行是相对的)Web 框架是什么?

4

16 回答 16

19

PLT Scheme具有内置的、基于延续的 Web 服务器

更新:PLT 方案现在称为 Racket。

于 2008-10-03T18:04:46.657 回答
14

Hunchentoot也相当普遍

于 2008-10-03T16:32:49.400 回答
14

什么是微区块?

Weblocks 是一个基于 continuation 的 Web 框架,用 Common Lisp 编写。

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

于 2008-10-03T16:46:29.717 回答
10

大多数(也许是全部)著名的 Common Lisp Web 框架已经被提及,所以我将添加一些评论。

Hunchentoot 并不是大多数人所说的“网络框架”。它是一个 HTTP 服务器(非常好的一个)。

Drew Crampsie 的“Lisp on Lines”看起来很有前途,但我不确定它有多远。我一直在等待听到一个通知。

Marco Baringer 的 UnCommon Web 在许多著名的 CL 实现上运行:Allegro CL、CMUCL、Clozure CL(以前称为 OpenMCL)、GNU clisp 和 SBCL。唯一缺少的主要是 LispWorks。我不知道这是否意味着它没有经过测试可以工作,或者已知不工作,或者什么;但如果它在所有其他方言上运行,它可能很容易让它在任何其他方言上运行。

于 2008-10-05T15:14:33.253 回答
8

对于Clojure,您可以尝试Compojure

于 2008-10-27T14:57:22.290 回答
8

通用 Lisp

已经提到了很多常见的嫌疑人(Hunchentoot、UCW、LoL)。Franz 使 Allegro Common Lisp 可用(并移植到其他 Lisp):

  • 在较低级别(自己处理 HTTP 请求),AllegroServe
  • 在更高级别(更多的是“框架”),WebActions

两者都是开源的。我倾向于使用 AllegroServe,根据需要将实用程序分解出来,但有些人真的很喜欢 WebActions。

我使用Araneida已经有一段时间了,我更喜欢它的风格而不是 AllegroServe,但它自 2006 年以来就没有得到维护。

于 2008-10-30T08:14:10.590 回答
8

我已经非常广泛地搜索了一个好的 Lisp 网络框架,但我发现它们都有些难以访问。UCW 的架构对我来说似乎不是很自然(我不记得为什么;我已经有一段时间没有研究它了),并且不再维护 KPAX(我认为)。

Symbolic web 看起来很有趣,我认为 Weblocks 是最有趣的,但是 Weblocks 没有很好的文档记录,对新手来说可能会很吓人。我上次看时 SymbolicWeb 还不成熟,但从那时起它可能已经成长了一些。功能页面今天看起来不错。

您可以采取不同的方法。如果你想要一个纯粹的 lisp 方法,那么你可以:

  • 如果您可以熟练阅读代码并理解延续,您可以尝试使用 Hunchentoot 后端的 Weblocks(Weblocks 依赖于尚未抽象的 Hunchentoot)。一两个月内应该会有一本真正的用户手册,但与任何 OSS 项目一样,这样的承诺都是粗略的。
  • 同样,您可以尝试 SymbolicWeb。[更新:没关系,这个项目已经没有了]
  • 滚动你自己的。说真的 - 有 cl-who 可以帮助生成 HTML,有可用的 javascript 和 json 库,usockets、lephant、cl-sql、hunchentoot、aserve,以及许多可以一起烘焙的实用程序库。

如果您对混合方法感到满意,这是我目前正在试验的东西:我已经为 Qooxdoo 编写了一个 Lisp JSON-RPC 后端,因此我可以通过像 Cherokee 和让 Cherokee 尽可能多地连接到在 Lisp 中运行的后端 json-rpc 服务器。非常非常可扩展。我远未弄清楚问题和挑战,但开始工作非常简单。json 库让后端工作变得非常简单——我认为 Qooxdoo 本身实际上更难(但我真的不是 JS 开发人员)。

我还将检查 allegro 的 WebActions,因为付费支持的可用性具有一定的吸引力——更不用说 Allegro 可能是可用的最佳 CL 实现(他的 Kennyness 使用它:-))。

于 2009-01-16T20:03:04.613 回答
7

UnCommonWeb (UCW) 经常被提及http://www.common-lisp.net/project/ucw/—— 它不是目前流行的 REST,更像是 Smalltalk 的 SeaSide(但话又说回来,SeaSide 相当时尚)。

于 2008-10-03T16:10:13.517 回答
6

Lisp-on-lines 是一个建立在 CLSQL 和 UCW 之上的 Web 应用程序框架,它提供了在许多方面类似于 Ruby on Rails 的应用程序开发模型。现在可以在http://versions.tech.coop/lisp-on-lines/找到它。

http://www.cliki.net/lisp-on-lines

http://kevin.casa.cavewallarts.com/LISP/LOL/lol.html

于 2008-10-03T16:49:28.773 回答
6

左括号

于 2008-10-03T15:25:07.383 回答
4

对于Clojure,您可以尝试Webjure

于 2008-10-27T14:58:15.910 回答
3

我刚刚为 common lisp 发现了一个名为 Clack 的 Web 框架,并且发现它很容易上手。

http://clacklisp.org/

引用它的网站“Clack 是受 Python 的 WSGI 和 Ruby 的 Rack 启发的 Common Lisp 的 Web 应用程序环境。”

Caveman 是一个基于 Clack 的微型 Web 框架。

于 2012-09-04T05:30:32.090 回答
2

另一个很酷(但远非“流行”)的东西是 SymbolicWeb—— http ://groups.google.com/group/symbolicweb

于 2008-10-03T16:41:49.960 回答
2

回复: SymbolicWeb(及其夸张的消亡)

Gitorious上的SymbolicWeb 项目页面Wikipedia上的SymbolicWeb 文章。Google Groups 页面肯定已经死了(并且未归档?,),但 Gitorious 树显示最近的签到日期为2010 年 4 月 29 日。项目页面还提到“一些正在运行的示例”在nostdal.org上“偶尔可用” (在我写这篇文章时这是无法访问的,加强了“偶尔”限定词:-)。)

注意:我不是 SymbolicWeb 用户。我只是在阅读此线程时跟踪了 SymbolicWeb 链接。)

于 2010-05-13T19:41:17.837 回答
2

Restas 是另一个最近更新的 Web 框架:

http://restas.lisper.ru/en/

其概述

RESTAS is a Common Lisp web application framework. Its key features are:

RESTAS was developed to simplify development of web applications following the REST architectural style.

RESTAS is based on the Hunchentoot HTTP server. Web application development with RESTAS is in many ways simpler than with Hunchentoot, but some knowledge of Hunchentoot is required, at least about working with hunchentoot:*request* and hunchentoot:*reply*.

Request dispatch is based on a route system. The route system is the key concept of RESTAS and provides unique features not found in other web frameworks.

The other key RESTAS concept is its module system, which provides a simple and flexible mechanism for modularized code reuse.

Interactive development support. Any RESTAS code (such as the definition of a route, a module or a submodule) can be recompiled at any time when you work in SLIME and any changes you made can be immediately seen in the browser. No web server restart or other complicated actions are needed.

SLIME integration. The inner structure of a web application can be investigated with the standard "SLIME Inspector." For example, there is a "site map" and a simple code navigation with this map.

Easy to use, pure Lisp web application daemonization facility based on RESTAS and SBCL in Linux without the use of Screen or detachtty.

RESTAS is not an MVC framework, although it is not incompatible with the concept. From the MVC point of view, RESTAS provides the controller level. Nevertheless, RESTAS provides an effective and flexible way for separation of logic and representation, because it does not put any constraints on the structure of applications. Separation of model and controller can be effectively performed with Common Lisp facilities, and, hence, doesn't need any special support from the framework.

RESTAS does not come with a templating library. cl-closure-template and HTML-TEMPLATE are two good templating libraries that can be used with RESTAS.
于 2012-11-19T16:14:34.930 回答
1

这个问题有点老了,但我想我会分享我最近的发现:基于 Scheme 并且相当完整的Hop 语言。

HOP 是一种用于 Web 2.0 和所谓的扩散 Web 的多层编程语言。它专为多媒体(网络画廊、音乐播放器等)、无处不在的家庭自动化(智能手机、个人电器)、混搭、办公室(网络议程、邮件客户端、... ), ETC。

跳的特点:

  • 一组广泛的小部件,用于编写精美和可移植的 Web GUI,
  • 与传统 Web 技术(JavaScript、HTML、CSS)完全兼容,
  • HTML5 支持,支持 HTTP/1.0 和 HTTP/1.1 的多功能 Web 服务器,
  • 支持无处不在的 Web 多媒体应用程序的原生多媒体支持,
  • 快速 WebDAV 1 级支持,
  • 用于服务器代码的优化本机代码编译器,
  • 用于客户端代码的即时 JavaScript 编译器,
  • 用于邮件、日历、数据库、电话、...的大量库
于 2012-08-31T09:20:53.623 回答