Які веб-рамки Scala доступні? [зачинено]


196

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

Чи існують веб-рамки для Scala, крім Lift ?

Не зрозумійте мене неправильно, Ліфт виглядає приголомшливо. Мені просто хочеться знати, скільки є таких фреймворків, щоб потім я міг вибрати між ними. Завжди добре мати вибір, але я єдине, що знайшов - це Ліфт.

Відповіді:


77

Мене дуже цікавить Скала, але я її ще не використовував, тому з цим застереженням, про які я знаю рамки, про які не йдеться у відповіді HRJ (Lift, Sweet, Slinky):


3
Цікаво. Підйомник на сьогоднішній день є найбільш широко розрекламованим: цікаво, що ви з ним не були знайомі.
mcherm

13
Зауважте, заява "... Я знаю і не згадую HRJ ..." HRJ вже згадував Ліфт. Спасибі
бн.

6
гра має і версію scala
islon

1
/ мене зітхає. <rant> Step - це ідеально добре ім'я, навіщо змінюватись на Scalatra? Express.js не називається Nodatra. Колба (не зовсім однакова, але близька) не називається Pythatra. </rant>
Дейв Дженсен

1
@ djensen47 ваш завжди вільний розвивати свій власний;)
BAR


35

Мені подобається ліфт ;-)

Гра - це мій другий вибір для зручних для Scala веб-рамок.

Хвіртка - мій третій вибір.


46
Девіде, як ти чув про Ліфт? ;-)
Дерек Махар

6
@Derek Mahar Внутрішня робота я вірю ;-)

5
Здається, ви пов’язані з Lift. Зверніть увагу, що наша політика самореклами вимагає, щоб ви розкривали цю інформацію у таких відповідях.
josliber

35

Далі йде звалище каркасів. Це не означає, що я їх фактично використовував:

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

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

  • Уніскальний граніт .

  • Гардель

  • Мондо

  • Аморе . Порт Scala веб-рамки Ruby Сінатра

  • Ваги XML . Гнучкий підхід до обробки XML та спрощений спосіб взаємодії з XML.

  • Пояс . Стійковий інтерфейс для веб-додатків, побудований на основі Scalaz-HTTP

  • Френк . Веб-додаток DSL, побудований поверх Scalaz / Belt

  • Змішані біти . Структура для розмовної мови Scala для створення веб-сайтів

  • Circumflex . Об’єднує декілька автономних проектів з відкритим кодом для розробки додатків за допомогою мови програмування Scala.

  • Вебмашина Scala . Порт веб-машини Башо в Scala, система, заснована на REST, для створення веб-додатків

  • Боулер . ВІДПОВІДНА, багатоканальна веб-рамка Scala


1
У Unfiltered є хороший слайд-шоу тут: посилання
Rick-777

Я додав bowlerframework (щойно знайшов його в Інтернеті).
Адам Гент



8

Я вважаю Unfiltered дуже цікавим https://github.com/unfiltered/unfiltered .

Він згадується у списку IttayD.

Ось презентація про це http://unfiltered.lessis.me/#0 та відео http://code.technically.us/post/942531598/doug-tangren-present-the-unfiltered-toolkit-for

Також тут є стаття з додатковою інформацією http://code.technically.us/post/998251172/holding-the-parameter


1
Нефільтроване дуже-дуже круто. Це дійсно чисто і функціонально, але не надто складно.
thatismatt

8

Слід зазначити, що також існує значний інтерес до Вікет та Скали . Хвіртка дивовижно підходить Скалі. Якщо ви хочете скористатися дуже зрілим проектом Wicket та його екосистемою (розширеннями), а також стислим синтаксисом та перевагою продуктивності Scala, цей може бути для вас!

Дивитися також:

  1. Якась проза

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

  3. Певний досвід роботи з Віккетом та Скалою

  4. Оголошення з посиланням на проект, що стосується коду клею, який пов'язує кришки Scala з моделями


7

Гра досить мила.

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

Її частина Typesafe Стек .

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


5

Я схильний використовувати JAX-RS за допомогою Джерсі (ви можете писати гарні боби ресурсів у Scala, Java або Groovy) для написання веб-додатків RESTul. Потім я використовую Scalate для візуалізації представлень за допомогою однієї з різних мов шаблонів ( JADE , Scaml , Ssp (сторінки серверів Scala), вуса тощо).


Мені цікаво дізнатися, який IDE ви використовуєте для розробки проектів Scalate?
Алі Шакіба

1
Я використовую IntelliJ для всього свого розвитку
Джеймс Страчан

4

Існує нова веб-рамка, яка називається Scala Web Pages . З сайту:

Цільова аудиторія

Веб-рамка Scala Pages, ймовірно, сподобається веб-програмістам, які походять з фону Java та хочуть програмувати веб-додатки в Scala. Акцент робиться на OOP, а не на функціональному програмуванні.

Характеристика та особливості

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

4

Прикрутіл, я думаю, що ми на одному човні. Я також приїжджаю до Скали з Ерланг. Азот мені дуже подобається, тому я вирішив створити натхненну ним веб-структуру Scala.

Погляньте на Xitrum . Документ його досить великий. Від README:

Xitrum - це асинхронний та кластеризований веб-фреймворк Scala та веб-сервер на версії Netty та Hazelcast:

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

Hazelcast також дає:

  • Під час обробки та кластерного кешу вам не потрібні окремі кешові сервери.
  • В процесі та кластеризованій Comet ви можете масштабувати Comet на декількох веб-серверах.

Дотримуйтесь інструкції для швидкого початку.


3

Є також Pinky, який раніше був на bitbucket, але перейшов до github .

До речі, github - це чудове місце для пошуку проектів Scala, оскільки там багато що робиться.


3

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

brzy фреймворк

Це ще в ранньому розвитку, і я все ще працюю над цим агресивно. Він включає такі функції, як:

  • Акцент на простоті та розширюваності.
  • Інтегрований інструмент побудови.
  • Модульний дизайн; деякі початкові модулі включають підтримку масштабування, електронної пошти, jms, jpa, скверилу, кассандри, послуги cron тощо.
  • Прості контролери та дії RESTful.

Будь-який відгук дуже цінується.

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


1

І Sweet, і Slinky здаються невміленими близько року. Sweet Maven repo sweetsoftwaredesign.com мертвий, тому навіть не існує можливості завантажувати залежності.


1

Примітка: Spiffy застарів.

< вилка >

Spiffy :

  • написано в Scala
  • використовує фантастичну бібліотеку Akka та акторів для масштабування
  • використовує сервлет API 3.0 для асинхронної обробки запитів
  • є модульним (заміна компонентів прямо вперед)
  • використовує DSL для скорочення коду там, де ви цього не хочете
  • підтримує масштабування та Freemarker для створення шаблонів

Spiffy - це веб-рамка, що використовує Scala, Akka (реалізація актора Scala) та API Java Servlet 3.0. Він використовує інтерфейс async і має на меті забезпечити масово паралельне та масштабоване середовище для веб-додатків. Всі компоненти Spiffy базуються на ідеї, що вони повинні бути незалежними мінімалістичними модулями, які виконують невеликі обсяги роботи дуже швидко і передають запит наступному компоненту в конвеєрі. Після завершення останнього компонента обробкою запиту він передає контейнер сервлетів, "заповнюючи" запит і відсилаючи його назад клієнту.

https://github.com/mardambey/spiffy

< / plug >


0

Ви також можете спробувати Context . Він був розроблений як Java-каркас, але я успішно використовував його разом із Scala без проблем. Він є основою для компонентів і має подібні властивості, як ліфт або гобелен.


0

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.