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

196

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

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

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

Prikrutil
источник

Ответы:

77

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

млрд.
источник
3
Интересный. Лифт, безусловно, наиболее широко разрекламированный: любопытно, что вы с ним не знакомы.
mcherm
13
Примечание: «Я знаю об этом и не упомянуто HRJ ...» HRJ уже упомянул Лифт. Спасибо
бн.
6
у игры тоже есть версия для
скалы
1
Я вздыхаю. <rant> Step - отличное имя, зачем переходить на Scalatra? Express.js не называется Nodatra. Колба (не совсем то же самое, но близко) не называется Pythatra. </ rant>
Дейв Дженсен
1
@ djensen47 вы всегда можете развивать свои собственные;)
BAR
45

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

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

  1. Лифт
  2. Сладкий
  3. облегающий

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

HRJ
источник
35

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

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

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

Дэвид Поллак
источник
46
Дэвид, как ты узнал о Лифте? ;-)
Дерек Махар
6
@Derek Mahar Внутри работы, я верю ;-)
5
Похоже, вы связаны с лифтом. Обратите внимание, что наша политика саморекламы требует от вас раскрывать эту информацию в ответах, подобных этому.
josliber
35

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

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

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

  • Uniscala Гранит .

  • Гардель

  • Mondo

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

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

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

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

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

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

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

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

IttayD
источник
1
У «Нефильтрованного» есть хорошее слайд-шоу: ссылка
Rick-777
Я добавил каркас рамы (только что нашел его в Интернете).
Адам Гент
23

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

lidaobing
источник
2
Играть с поддержкой Scala выглядит очень перспективно.
Абхинав Саркар
8

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

Даниэль С. Собрал
источник
8

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

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

Вот презентация об этом 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

fedesilva
источник
1
Нефильтрованный это очень, очень круто. Это действительно чистый и функциональный, но не слишком сложный.
thatismatt
8

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

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

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

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

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

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

Андреас Петерссон
источник
7

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

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

Это часть Typesafe Stack .

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

JaimeJorge
источник
5

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

Джеймс Страчан
источник
Мне интересно узнать, какую IDE вы используете для разработки проектов Scalate?
Али Шакиба
1
Я использую IntelliJ для всей своей разработки
Джеймс Стрэчен
4

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

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

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

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

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

Прикрутил, я думаю мы на одной лодке. Я также приезжаю в Скала из Эрланга. Мне нравится азот поэтому я решил создать веб-фреймворк 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 для нескольких веб-серверов.

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

Нгок Дао
источник
3

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

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

Даниэль С. Собрал
источник
3

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

бриз рамки

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

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

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

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

Майкл Фортин
источник
1

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

Nowaker
источник
1

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

< штекер >

Spiffy :

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

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

https://github.com/mardambey/spiffy

< / plug >

Хишам
источник
0

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

ML
источник
0

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

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

Дейв Фогт
источник