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

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

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

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


person Prikrutil    schedule 28.09.2009    source источник


Ответы (18)


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

person Community    schedule 28.09.2009
comment
Интересный. Лифт, безусловно, является наиболее широко разрекламированным: любопытно, что вы не были знакомы с ним. - person mcherm; 28.09.2009
comment
Обратите внимание на заявление ... Я знаю об этом и не упоминал HRJ ... HRJ уже упомянул Лифт. Спасибо - person bn.; 29.09.2009
comment
Шаг — это весело. Хотя источник более сложный, чем должен быть имхо. - person Michael; 29.09.2009
comment
Шаг теперь называется Scalatra. - person fratrik; 22.01.2011
comment
У play тоже есть scala-версия - person islon; 10.10.2011
comment
/я вздыхаю. ‹rant›Step — отличное имя, зачем менять на Scalatra? Express.js не называется Nodatra. Колба (не совсем то же самое, но близко) не называется Пифатра. ‹/разглагольствование› - person Dave Jensen; 17.05.2013
comment
@djensen47 ты всегда свободен в разработке своего собственного ;) - person BAR; 13.12.2014
comment
Современная веб-инфраструктура Scala: Play (на Akka HTTP), Scalatra (Akka Actors) и Finatra. reddit.com/r/scala/comments/743zjv/web_framework - person Charlie 木匠; 27.03.2018

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

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

  1. Лифт
  2. Сладкий
  3. Слинки

В конце концов я обнаружил, что ни один из них мне не подходит, и разработал свой собственный небольшой «каркас». (Это еще не открытый исходный код).

person HRJ    schedule 28.09.2009

Лифт нравится ;-)

Play — мой второй выбор среди веб-фреймворков, совместимых со Scala.

Wicket - мой третий выбор.

person David Pollak    schedule 18.06.2010
comment
Дэвид, как вы узнали о Лифт? ;-) - person Derek Mahar; 18.06.2010
comment
@Derek Mahar Внутренняя работа, я верю ;-) - person ; 19.12.2010
comment
Похоже, вы связаны с Лифт. Обратите внимание, что наша политика саморекламы требует, чтобы вы раскрывали эту информацию в ответах, подобных этому. - person josliber♦; 09.01.2016

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

  • Coeus. Традиционная веб-инфраструктура MVC для Scala.

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

  • Гранит Унискала.

  • Гардель

  • Mondo

  • Любовь. Scala-порт веб-фреймворка Ruby Sinatra.

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

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

  • Фрэнк. Веб-приложение DSL, созданное на основе Scalaz/Belt

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

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

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

  • Боулер. RESTful, многоканальная готовая веб-инфраструктура Scala

person IttayD    schedule 07.10.2010
comment
Нефильтрованное имеет хорошее слайд-шоу здесь: ссылка - person Rick-777; 22.06.2011
comment
Я добавил фреймворк для боулера (только что нашел его в Интернете). - person Adam Gent; 12.08.2011

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

person lidaobing    schedule 13.06.2010
comment
Игра с поддержкой Scala выглядит очень многообещающе. - person Abhinav Sarkar; 13.06.2010

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

person Daniel C. Sobral    schedule 07.10.2010

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

Он упоминается в списке IttayD.

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

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

person fedesilva    schedule 08.10.2010
comment
Нефильтрованное очень и очень крутое. Это действительно чисто и функционально, но не слишком сложно. - person thatismatt; 10.12.2010

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

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

  1. Некоторая проза

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

  3. Некоторый опыт работы с Калитка и Скала

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

person Andreas Petersson    schedule 28.09.2009

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

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

Это часть стека Typesafe.

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

person JaimeJorge    schedule 22.09.2011

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

person James Strachan    schedule 08.10.2010
comment
Мне интересно узнать, какую IDE вы используете для разработки проектов Scalate? - person Ali Shakiba; 08.02.2013
comment
Я использую IntelliJ для всех своих разработок - person James Strachan; 31.07.2013

Существует новая веб-инфраструктура, которая называется веб-страницы Scala. С сайта:

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

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

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

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

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

Взгляните на Xitrum. Его документ довольно обширен. Из README:

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

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

Hazelcast также дает:

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

Следуйте руководству, чтобы быстро начать работу.

person Ngoc Dao    schedule 22.09.2011

Также есть Pinky, который раньше был на битбакете, но был перенесен на github.

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

person Daniel C. Sobral    schedule 28.09.2009

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

фреймворк brzy

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

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

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

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

person Michael Fortin    schedule 28.10.2010

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

person Nowaker    schedule 19.12.2010

Примечание. Spiffy устарел.

подключить>

Элегантно:

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

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

https://github.com/mardambey/spiffy

/разъем>

person Hisham    schedule 27.03.2011

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

person M.L.    schedule 09.04.2011

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

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

person Dave Vogt    schedule 10.07.2011