Lisp Веб-рамки?

Каковы популярные (хорошо, популярны относительные) веб-фреймы для различных вкусов LISP?

Ответ 2

Hunchentoot также широко распространен

Ответ 3

Что такое Weblocks?

Weblocks - это основанная на продолжении веб-инфраструктура, написанная в Common Lisp.

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

Ответ 4

Большинство (возможно, все) общеизвестных общих веб-фреймворков Lisp уже упомянуты, поэтому я просто добавлю несколько комментариев.

Hunchentoot не является "веб-каркасом" в том смысле, что это означает большинство людей. Это HTTP-сервер (очень хороший).

Drew Crampsie Lisp on Lines "выглядит очень многообещающе, но я не уверен, насколько далеко он находится. Я ждал, чтобы услышать объявление.

Marco Baringer UnCommon Web работает на многих известных реализациях CL: Allegro CL, CMUCL, Clozure CL (ранее известный как OpenMCL), GNU clisp и SBCL. Единственный недостающий - LispWorks; Я не знаю, означает ли это, что он не был проверен на работу или, как известно, не работает или что-то еще; но если он работает на всех этих других диалектах, вероятно, легко заставить его работать на любом другом.

Ответ 5

Для Clojure вы можете попробовать Compojure.

Ответ 6

Общий Lisp

Многие обычные подозреваемые (Hunchentoot, UCW, LoL) уже упомянуты. Франц делает доступным для Allegro Common Lisp (и переносится на другие Lisps):

  • на более низком уровне (обработка запросов HTTP самостоятельно), AllegroServe.
  • на более высоком уровне (больше "рамки" ), WebActions.

Оба являются с открытым исходным кодом. Я имею тенденцию использовать AllegroServe, разлагая утилиты по мере необходимости, но некоторым людям очень нравится WebActions.

Я использовал Araneida в течение некоторого времени, и я предпочитаю его стиль AllegroServe, но он не поддерживается с 2006 года.

Ответ 7

Я довольно широко искал хорошую веб-инфраструктуру для Lisp, и я обнаружил, что все они несколько недоступны. Архитектура UCW не казалась мне очень естественной (я не могу вспомнить, почему, прошло некоторое время с тех пор, как я ее изучил), и KPAX больше не поддерживается (я думаю).

Символическая сеть выглядит очень интересной, и я думаю, что Weblocks является самым интересным, но Weblocks не очень хорошо документирован и может быть довольно запугивающим для новичков. SymbolicWeb был незрелым в прошлый раз, когда я смотрел, но с тех пор он может расти. Страница features выглядит сегодня довольно неплохо.

Существуют различные подходы, которые вы могли бы предпринять. Если вы хотите использовать чисто lisp, то вы можете:

  • Если вы умеете читать код и понимать продолжение, вы можете попробовать Weblocks с бэкэндом Hunchentoot (у Weblocks есть зависимость от Hunchentoot, которая еще не была абстрагирована). Ожидается, что через месяц или два появится реальное руководство пользователя, но, как и в случае любого проекта OSS, такие обязательства являются отрывочными.
  • Аналогично, вы можете попробовать SymbolicWeb. [ обновление: nevermind, проект больше не будет]
  • сворачивайте свои собственные. Серьезно - там cl-кто поможет в генерации HTML, есть доступные javascript и json-библиотеки, usockets, слон, cl-sql, hunchentoot, aserve и множество библиотек-утилит, которые вы могли бы испечь вместе.

Если вы согласны с гибридным подходом, это то, над чем я сейчас экспериментирую: я написал бэкэнд для lisp JSON-RPC для Qooxdoo, поэтому я могу обслуживать чистые интерфейсы javascript через сверхбыструю http-сервер, такой как Cherokee, и пусть у Cherokee есть соединения с таким количеством серверов back-json-rpc, которые работают в lisp, как я хочу. Очень, очень масштабируемо. Я далек от выяснения перегибов и проблем, но было очень легко работать. библиотека json делает глупостью просто заставить работать бэкэнд - сам Qooxdoo на самом деле сложнее, я думаю (но я не разработчик JS, действительно).

Я также собираюсь проверить WebActions от allegro, потому что есть определенная привлекательность доступности платной поддержки - не говоря уже о том, что Allegro может быть лучшей реализацией CL (его Kennyness использует ее:-)).

Ответ 8

UnCommonWeb (UCW) часто упоминается http://www.common-lisp.net/project/ucw/ - это не REST, как сейчас в моде, больше похоже на Smalltalk SeaSide (но опять же, SeaSide вполне в моде).

Ответ 11

Для Clojure вы можете попробовать Webjure.

Ответ 12

Я только что открыл веб-фреймворк под названием Clack для обычного lisp и нашел его довольно легко начать.

См. http://clacklisp.org/

Цитата из этого сайта "Clack - это среда веб-приложений для Common lisp, вдохновленная Python WSGI и Ruby Rack."

и пещерный человек - это микро-веб-каркас, основанный на Clack.

Ответ 13

Еще одна интересная (но далеко не "популярная" ) вещь, на которую нужно смотреть - SymbolicWeb - http://groups.google.com/group/symbolicweb

Ответ 14

Re: SymbolicWeb (и его преувеличенная кончина)

Страница проекта SymbolicWeb на Gitorious и Статья SymbolicWeb в Wikipedia. Страница "Группы Google" определенно мертва (и unarchived?,), но дерево Gitorious показывает проверки еще как 29 апреля 2010 г.. Страница проекта также ссылается на" некоторые запущенные примеры "время от времени доступны" в nostdal.org (это недостижимо, поскольку я пишу это, усиливая "изредка" квалификатор:-).)

( Примечание: Я не пользователь SymbolicWeb. Я просто отслеживал ссылки SymbolicWeb при чтении этого потока.)

Ответ 15

Restas - это еще одна веб-инфраструктура, которая увидела последние обновления:

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.

Ответ 16

Этот вопрос немного устарел, но я думал, что поделился своим недавним открытием: Hop language, который основан на схеме и вполне полный.

HOP - это многоуровневый язык программирования для Web 2.0 и так называемого диффузного Web. Он предназначен для программирования интерактивных веб-приложений во многих областях, таких как мультимедиа (веб-галереи, музыкальные плееры,...), вездесущая и домашняя автоматизация (SmartPhones, персональное устройство), mashups, офис (веб-программы, почтовые клиенты,... ) и т.д.

Функции HOP:

  • обширный набор виджетов для программирования удобных и портативных веб-графических интерфейсов,
  • полная совместимость с традиционными веб-технологиями (JavaScript, HTML, CSS),
  • Поддержка HTML5, универсальный веб-сервер, поддерживающий HTTP/1.0 и HTTP/1.1,
  • встроенная поддержка мультимедиа для создания вездесущих веб-мультимедийных приложений,
  • поддержка быстрого доступа к WebDAV уровня 1,
  • оптимизирующий компилятор исходного кода для кода сервера,
  • компилятор JavaScript на лету для кода клиента,
  • обширный набор библиотек для почты, календарей, баз данных, телефонии,...