Какие веб-фреймворки Scala доступны?

Я только начал изучать Scala, и первое, что я собираюсь реализовать, - это крошечное веб-приложение. В прошлом году я использовал Erlang для реализации программного обеспечения на стороне сервера, но никогда раньше не писал веб-приложений. Это будет отличный опыт.

Существуют ли веб-фреймворки для Scala кроме Lift?

Не поймите меня неправильно, Лифт выглядит потрясающе. Я просто хочу знать, сколько существует фреймворков, чтобы потом выбирать между ними. Всегда хорошо иметь выбор, но я нашел только Лифт.

18 ответов

Решение

Я очень заинтересован в Scala, но я еще не использовал его, поэтому, с учетом этого предостережения, фреймворки, о которых я знаю, не упомянуты в ответе HRJ (Lift, Sweet, Slinky):

Я написал в блоге об этом.

Подводя итог, некоторые из вариантов:

  1. Лифт
  2. Милая
  3. облегающий

Я наконец обнаружил, что ни один из них не подходит для меня, и разработал мою собственную маленькую "основу". (Это еще не с открытым исходным кодом).

Ниже приводится дамп рамок. Это не значит, что я на самом деле использовал их:

  • Коус. Традиционный веб-фреймворк MVC для Scala.

  • Нефильтрованный Инструментарий для обслуживания HTTP-запросов в Scala.

  • Uniscala Гранит.

  • Гардель

  • Mondo

  • Аморе Порт Scala веб-платформы Ruby Sinatra

  • Весы XML. Гибкий подход к обработке XML и упрощенный способ взаимодействия с XML.

  • Пояс Rack-подобный интерфейс для веб-приложений, построенный на основе Scalaz-HTTP

  • Франк Веб-приложение DSL, построенное поверх Scalaz / Belt

  • MixedBits. Основа языка программирования Scala для создания веб-сайтов.

  • Круговой спуск Объединяет несколько автономных проектов с открытым исходным кодом для разработки приложений с использованием языка программирования Scala.

  • Скала Вебмашина. Портовая машина Basho в Scala, основанная на REST система для создания веб-приложений

  • Боулер RESTful, многоканальный готовый веб-фреймворк Scala

Мне нравится лифт;-)

Play - мой второй выбор для Scala-дружественных веб-фреймворков.

Калитка - мой третий выбор.

Попробуйте Play Framework, который также поддерживает Scala.

Следует отметить, что существует также значительный интерес к Wicket и Scala. Калитка удивительно хорошо подходит Scala. Если вы хотите воспользоваться преимуществами очень зрелого проекта Wicket и его экосистемы (расширений), а также лаконичным синтаксисом и преимуществами производительности Scala, этот может быть для вас!

Смотрите также:

  1. Какая-то проза

  2. презентация

  3. Некоторый опыт работы с Wicket и Scala

  4. Объявления со ссылкой на проект связующего кода для привязки замыканий Scala к моделям

Одним из очень интересных веб-фреймворков с коммерческим развертыванием является Scalatra, вдохновленный Sinatra Руби. Вот статья InfoQ об этом.

Я нахожу нефильтрованный очень интересным https://github.com/unfiltered/unfiltered.

Это упоминается в списке ИттайД.

Вот презентация об этом http://unfiltered.lessis.me/ и видео http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for

Также здесь есть статья с дополнительной информацией http://code.technically.us/post/998251172/holding-the-parameter

Играть довольно мило.

Сейчас производство готово. Он включает в себя: классную структуру шаблонов, автоматическую перезагрузку исходных файлов в безопасное место, систему действий, которую можно составить, akka awesomeness и т.д.

Это часть Typesafe Stack.

Используя его для двух проектов, я могу сказать, что он работает довольно плавно, и в следующий раз стоит подумать над тем, чтобы изучить новые веб-фреймворки.

Я склонен использовать JAX-RS с использованием Jersey (вы можете писать хорошие ресурсы в Scala, Java или Groovy) для написания веб-приложений RESTul. Затем я использую Scalate для рендеринга представлений, используя один из различных языков шаблонов ( JADE, Scaml, Ssp (Scala Server Pages), Усы и т. Д.).

Прикрутил, думаю мы на одной лодке. Я также приезжаю в Скала из Эрланга. Мне очень нравится Nitrogen, поэтому я решил создать веб-фреймворк Scala, вдохновленный им.

Посмотрите на Xitrum. Его документ довольно обширный. От README:

Xitrum - это асинхронная и кластерная веб-платформа Scala и веб-сервер на базе Netty и Hazelcast:

  • Он заполняет пробел между Скалатрой и Лифтом: более мощный, чем Скалатра, и более простой в использовании, чем Лифт. Вы можете легко создавать как RESTful API, так и постбэки. Xitrum - это сначала контроллер, как Scalatra, а не первый вид, как Lift.
  • Аннотация используется для URL-маршрутов в духе JAX-RS. Вам не нужно объявлять все маршруты в одном месте.
  • Типичная безопасность, в духе Скала.
  • Async, в духе Нетти.
  • Сессии могут быть сохранены в куки или кластеризованном Hazelcast.
  • Проверка jQuery интегрирована для проверки на стороне браузера и на стороне сервера. i18n использует GNU gettext, что означает, что в отличие от большинства других решений поддерживаются формы единственного и множественного числа.
  • Условный GET с использованием ETag.

Hazelcast также дает:

  • Внутрипроцессный и кластерный кеш, вам не нужны отдельные серверы кеша.
  • В процессе и кластеризованная Comet, вы можете масштабировать Comet на несколько веб-серверов.

Следуйте инструкциям для быстрого начала.

Существует новый веб-фреймворк, называемый Scala Web Pages. С сайта:

Целевая аудитория

Веб-инфраструктура Scala Pages, вероятно, понравится веб-программистам, которые имеют опыт работы с Java и хотят программировать веб-приложения на Scala. Акцент делается на ООП, а не на функциональном программировании.

Характеристики и особенности

  • Придерживается парадигмы модель-вид-контроллер
  • Текстовый шаблонизатор
  • Простой синтаксис: $variable а также <?scp-instruction?>
  • Кодирование / обнаружение контента, возможность обрабатывать международные текстовые кодировки
  • Фрагменты вместо пользовательских тегов
  • Перезапись URL

Есть также Pinky, который раньше был на bitbucket, но был переведен на github.

Кстати, github - отличное место для поиска проектов Scala, так как там много чего нужно.

Я хотел бы добавить свои собственные усилия в этот список. Вы можете узнать больше информации здесь:

бриз рамки

Он находится на ранней стадии разработки, и я все еще активно над этим работаю. Он включает в себя такие функции, как:

  • Акцент на простоте и расширяемости.
  • Интегрированный инструмент для сборки.
  • Модульная конструкция; некоторые начальные модули включают в себя поддержку сервисов scalate, email, jms, jpa, squeryl, cassandra, cron и многое другое.
  • Простые RESTful контроллеры и действия.

Любая обратная связь очень ценится.

ОБНОВЛЕНИЕ: 2011-09-078, я только что опубликовал серьезное обновление до версии 0.9.1. Больше информации на http://brzy.org/ где есть скринкаст.

И Сладкий, и Слинки кажутся бездомными около года. Сладкий Maven репозиторий sweetsoftwaredesign.com мертв, поэтому нет даже возможности загрузить зависимости.

Note: Spiffy is outdated.

< plug>

Spiffy:

  • is written in Scala
  • использует фантастическую библиотеку Akka и актеров для масштабирования
  • использует сервлет API 3.0 для асинхронной обработки запросов
  • модульный (замена компонентов прямолинейна)
  • использует DSL, чтобы сократить код там, где он вам не нужен
  • поддерживает Scalate и Freemarker для шаблонов

Spiffy - это веб-фреймворк, использующий Scala, Akka (реализация актера Scala) и API Java Servlet 3.0. Он использует асинхронный интерфейс и нацелен на обеспечение массовой параллельной и масштабируемой среды для веб-приложений. Различные компоненты Spiffy основаны на идее, что они должны быть независимыми минималистичными модулями, которые выполняют небольшие объемы работы очень быстро и передают запрос следующему компоненту в конвейере. После того, как последний компонент завершил обработку запроса, он сигнализирует контейнеру сервлетов, "завершив" запрос и отправив его обратно клиенту.

https://github.com/mardambey/spiffy

< / plug>

Вы также можете попробовать контекст. Он был разработан, чтобы быть Java-фреймворком, но я успешно использовал его со Scala также без проблем. Это основанный на компонентах фреймворк, имеющий свойства, аналогичные Lift или Tapestry.

Я наткнулся на ваш вопрос несколько недель назад, но с тех пор также узнал о Circumflex. Это хороший, минимальный фреймворк, который, следовательно, прост в освоении, а также имеет довольно хорошую документацию.

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

Другие вопросы по тегам