Lisp Web 框架?

发布于 2024-07-06 19:50:37 字数 1557 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(16

靑春怀旧 2024-07-13 19:50:37

PLT 方案 具有 内置、基于连续的 Web 服务器

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

PLT Scheme features a built-in, continuation-based web server.

Update: PLT Scheme is now called Racket.

荒岛晴空 2024-07-13 19:50:37

Hunchentoot 也相当普遍

Hunchentoot is also quite widespread

柠檬色的秋千 2024-07-13 19:50:37

什么是Weblock?

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

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

What is Weblocks?

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

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

定格我的天空 2024-07-13 19:50:37

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

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

Drew Crampsie 的“Lisp on Lines”看起来非常有前途,但我不确定它能走多远。 我一直在等待消息。

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

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.

瑕疵 2024-07-13 19:50:37

对于 Clojure 你可以尝试 Compojure

For Clojure you can try Compojure.

天涯离梦残月幽梦 2024-07-13 19:50:37

Common Lisp

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

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

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

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.

不寐倦长更 2024-07-13 19:50:37

我已经广泛搜索了 Lisp 的优秀 Web 框架,但发现它们都有些难以访问。 UCW 的架构对我来说似乎不太自然(我不记得为什么;自从我研究它以来已经有一段时间了),并且 KPAX 不再被维护(我认为)。

符号网络看起来非常有趣,我认为 Weblocks 是最有趣的,但 Weblocks 的文档不是很好,对于新手来说可能相当吓人。 我上次查看时 SymbolicWeb 还不成熟,但从那时起它可能已经成熟了一些。 功能页面目前看起来相当不错。

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

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

如果您同意混合方法,这是我目前正在尝试的方法:我为 Qooxdoo 编写了一个 Lisp JSON-RPC 后端,因此我可以通过像 Cherokee 这样的超快 http 服务器提供纯 javascript 前端让 Cherokee 将连接分配给尽可能多的在 Lisp 中运行的后端 json-rpc 服务器。 非常非常可扩展。 我还远未弄清楚其中的难题和挑战,但开始工作非常简单。 json 库让后端工作变得非常简单 - 我认为 Qooxdoo 本身实际上更难(但我真的不是 JS 开发人员)。

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

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 :-)).

浪菊怪哟 2024-07-13 19:50:37

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

UnCommonWeb (UCW) is often mentioned http://www.common-lisp.net/project/ucw/ -- it's not REST as is in en-vogue at the moment, more like Smalltalk's SeaSide (but then again, SeaSide is quite en-vogue).

⒈起吃苦の倖褔 2024-07-13 19:50:37

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

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

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

Lisp-on-lines is a web application framework built on top of CLSQL and UCW and provides an application development model similar in many ways to Ruby on Rails. Right now it can be found at http://versions.tech.coop/lisp-on-lines/.

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

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

呆° 2024-07-13 19:50:37

对于 Clojure,您可以尝试 Webjure

For Clojure you can try Webjure.

捂风挽笑 2024-07-13 19:50:37

我刚刚发现了一个名为 Clack 的 Common Lisp Web 框架,并且发现它非常容易上手。

请参阅 http://clacklisp.org/

引用其网站
“Clack 是 Common Lisp 的 Web 应用程序环境,其灵感来自 Python 的 WSGI 和 Ruby 的 Rack。”

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

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.

饭团 2024-07-13 19:50:37

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

Another cool (yet far from "popular") thing to look at is SymbolicWeb -- http://groups.google.com/group/symbolicweb

云胡 2024-07-13 19:50:37

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

SymbolicWeb 项目页面位于GitoriousSymbolicWeb 文章 位于 维基百科。 Google 网上论坛页面肯定已经死了(并且未存档?),但 Gitorious 树显示最近的签入 2010 年 4 月 29 日。 项目页面还提到“一些运行示例”“偶尔可用”,网址为 < a href="http://nostdal.org/" rel="nofollow noreferrer" title="some running Examples">nostdal.org (在我写这篇文章时无法访问,强化了“偶尔”限定符: -) .)

注意:我不是 SymbolicWeb 用户。我只是在阅读此主题时找到了 SymbolicWeb 链接。)

Re: SymbolicWeb (and its exaggerated demise)

SymbolicWeb project page at Gitorious and SymbolicWeb article at Wikipedia. The Google Groups page is definitely dead (and unarchived?,) but the Gitorious tree shows checkins as recently as 29 April 2010. The project page also refers to "some running examples" being "occasionally available" at nostdal.org (which is unreachable as I write this, reinforcing the "occasionally" qualifier :-) .)

(Note: I'm not a SymbolicWeb user. I just tracked down the SymbolicWeb links while reading this thread.)

娇纵 2024-07-13 19:50:37

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.

Restas is another web framework that has seen recent updates:

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

Its overview

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.
情深缘浅 2024-07-13 19:50:37

这个问题有点老了,但我想我应该分享我最近的发现:Hop 语言,它基于方案也比较完整。

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

HOP 功能:

  • 一组广泛的小部件,用于编程精美的便携式 Web GUI,
  • 与传统网络技术(JavaScript、HTML、CSS)完全兼容,
  • 支持 HTML5,这是一款支持 HTTP/1.0 和 HTTP/1.1 的多功能 Web 服务器,
  • 原生多媒体支持,支持无处不在的 Web 多媒体应用程序,
  • 快速 WebDAV 1 级支持,
  • 用于服务器代码的优化本机代码编译器,
  • 客户端代码的即时 JavaScript 编译器,
  • 一组广泛的库,用于邮件、日历、数据库、电话......

This question is a bit old but I thought I'd share my recent discovery: the Hop language which is based on Scheme and is quite complete.

HOP is a multi-tier programming language for the Web 2.0 and the so-called diffuse Web. It is designed for programming interactive web applications in many fields such as multimedia (web galleries, music players, ...), ubiquitous and house automation (SmartPhones, personal appliance), mashups, office (web agendas, mail clients, ...), etc.

HOP features:

  • an extensive set of widgets for programming fancy and portable Web GUIs,
  • full compatibility with traditional Web technologies (JavaScript, HTML, CSS),
  • HTML5 support, a versatile Web server supporting HTTP/1.0 and HTTP/1.1,
  • a native multimedia support for enabling ubiquitous Web multimedia applications,
  • fast WebDAV level 1 support,
  • an optimizing native code compiler for server code,
  • an on-the-fly JavaScript compiler for client code,
  • an extensive set of libraries for the mail, calendars, databases, Telephony, ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文