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

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

существуют ли веб-фреймворки для Scala, за исключением лифт?

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

18 ответов


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


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

чтобы резюмировать, некоторые из вариантов:

  1. лифт
  2. сладкий
  3. Slinky

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


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

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

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

  • Uniscala Гранит.

  • Гардель

  • Мондо

  • Amore. Порт Scala веб-фреймворка Ruby Sinatra

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

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

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

  • MixedBits. Рамки для Скала progamming язык для создания веб-сайтов

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

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

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


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

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

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


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


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


Я нахожу нефильтрованный очень интересным 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


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

Читайте также:

  1. некоторые Проща

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

  3. некоторый опыт работы с калиткой и Scala

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


играть - это очень мило.

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

часть Typesafe Stack.

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


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


есть новый веб-фреймворк, называемый Веб-Страницы Scala. С сайта:

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

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

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

  • придерживается парадигмы model-view-controller
  • текстовый template engine
  • простой синтаксис: $variable и <?scp-instruction?>
  • кодирование / обнаружение контента, способное обрабатывать международные текстовые кодировки
  • фрагменты вместо пользовательских тегов
  • переписывания URL-адресов

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

посмотри Xitrum. его doc достаточно обширен. От README:

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

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

Hazelcast также дает:

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

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


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

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


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

brzy framework

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

  • фокус на простоте и расширяемости.
  • встроенный инструмент для сборки.
  • модульное проектирование; некоторые начальные модули включают поддержку для scalate, электронной почты, jms, jpa, squeryl, Кассандры, обслуживаний cron и еще.
  • простые контроллеры RESTful и действия.

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

UPDATE: 2011-09-078, я только что опубликовал крупное обновление до версии 0.9.1. Там больше информации наhttp://brzy.org который включает скринкаст.


Как сладкие, так и облегающие, кажется, unmaintanted около года. РЕПО Sweet Maven sweetsoftwaredesign.com мертв, поэтому нет даже способа загрузить зависимости.


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

вилки>

Spiffy:

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

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

https://github.com/mardambey/spiffy

/plug>


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


я наткнулся на ваш вопрос несколько недель назад, но с тех пор узнали о Circumflex. Это хорошая, минимальная структура, которая поэтому проста в освоении, и у нее есть довольно хорошая документация.

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