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


196

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

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

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

Ответы:


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. облегающий

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


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


1
У «Нефильтрованного» есть хорошее слайд-шоу: ссылка
Rick-777

Я добавил каркас рамы (только что нашел его в Интернете).
Адам Гент



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


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

8

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

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

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

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

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

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


7

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

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

Это часть Typesafe Stack .

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


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 мертв, поэтому нет даже возможности загрузить зависимости.


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.


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.