¿Qué frameworks web Scala están disponibles? [cerrado]

195

Acabo de comenzar a aprender Scala, y lo primero que voy a implementar es una pequeña aplicación web. He estado usando Erlang durante el último año para implementar software del lado del servidor, pero nunca antes había escrito aplicaciones web. Será una gran experiencia

¿Existen marcos web para Scala, excepto para Lift ?

No me malinterpretes, Lift se ve increíble. Solo quiero saber cuántos marcos hay para poder elegir entre ellos. Siempre es bueno tener una opción, pero lo único que encontré fue Lift.

Prikrutil
fuente

Respuestas:

77

Estoy muy interesado en Scala, pero aún no lo he usado, así que con esa advertencia, los marcos que conozco que no se mencionan en la respuesta de HRJ (Lift, Sweet, Slinky) son:

bn.
fuente
3
Interesante. Lift es, con mucho, el más publicitado: es curioso que no esté familiarizado con él.
mcherm
13
Tenga en cuenta la declaración "... Estoy al tanto y no fue mencionado por HRJ ..." HRJ ya mencionó Lift. Gracias
BN.
66
play también tiene una versión scala
islon
1
/ yo suspira. <rant> Step es un nombre perfectamente bueno, ¿por qué cambiar a Scalatra? Express.js no se llama Nodatra. El matraz (no exactamente igual pero cercano) no se llama Pythatra. </rant>
Dave Jensen
1
@ djensen47 siempre eres libre de desarrollar el tuyo;)
BAR
45

Escribí una publicación de blog sobre esto.

Para resumir, algunas de las opciones son:

  1. Ascensor
  2. Dulce
  3. Seductor

Finalmente descubrí que ninguno era adecuado para mí y desarrollé mi propio "marco". (Todavía no es de código abierto).

HRJ
fuente
35

Me gusta levantar ;-)

Jugar es mi segunda opción para marcos web amigables con Scala.

Wicket es mi tercera opción.

David Pollak
fuente
46
David, ¿cómo te enteraste de Lift? ;-)
Derek Mahar
66
@Derek Mahar Inside trabajo, creo ;-)
55
Parece que estás afiliado a Lift. Tenga en cuenta que nuestra política de autopromoción requiere que divulgue esta información en respuestas como esta.
josliber
35

A continuación se muestra un volcado de marcos. No significa que realmente los use:

  • Ceo . Un marco web MVC tradicional para Scala.

  • Sin filtrar . Un kit de herramientas para atender solicitudes HTTP en Scala.

  • Granito Uniscala .

  • Gardel

  • Mondo

  • Amore . Un puerto Scala del framework web Ruby Sinatra

  • Escalas XML . Enfoque flexible para el manejo de XML y una forma simplificada de interactuar con XML.

  • Cinturón . Una interfaz tipo Rack para aplicaciones web creadas sobre Scalaz-HTTP

  • Frank . Aplicación web DSL construida sobre Scalaz / Belt

  • MixedBits . Un marco para el lenguaje de programación Scala para ayudar a construir sitios web

  • Circunflex . Une varios proyectos de código abierto autónomos para el desarrollo de aplicaciones utilizando el lenguaje de programación Scala.

  • Scala Webmachine . Webmachine del puerto de Basho en Scala, un sistema basado en REST para construir aplicaciones web

  • Jugador de bolos . Un marco web Scala RESTful, listo para múltiples canales

IttayD
fuente
1
Unfiltered tiene una buena presentación de diapositivas aquí: enlace
Rick-777
Agregué bowlerframework (lo encontré en la web).
Adam Gent
23

Prueba Play Framework , que también es compatible con Scala.

lidaobing
fuente
2
Jugar con el soporte de Scala parece muy prometedor.
Abhinav Sarkar
8

Encuentro Unfiltered muy interesante https://github.com/unfiltered/unfiltered .

Se menciona en la lista de IttayD.

Aquí hay una presentación al respecto http://unfiltered.lessis.me/#0 y el video http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for

También aquí hay un artículo con más información http://code.technically.us/post/998251172/holding-the-parameter

fedesilva
fuente
1
Sin filtro es muy, muy genial. Es realmente limpio y funcional pero no demasiado complejo.
thatismatt
8

Cabe señalar que también hay un considerable interés en Wicket y Scala . Wicket se adapta a Scala sorprendentemente bien. Si desea aprovechar el proyecto Wicket muy maduro y su ecosistema (extensiones) más la sintaxis concisa y la ventaja de productividad de Scala, ¡este puede ser para usted!

Ver también:

  1. Alguna prosa

  2. Presentación

  3. Alguna experiencia con Wicket y Scala

  4. Anuncios con referencia al proyecto para el código de pegamento para unir los cierres Scala a los modelos

Andreas Petersson
fuente
7

Jugar es muy dulce.

Ahora está listo para producción. Incorpora: un marco de plantilla genial, recarga automática de archivos de origen en caja fuerte, un sistema de acción composable, akka awesomeness, etc.

Es parte de la pila Typesafe .

Después de haberlo utilizado para dos proyectos, puedo decir que funciona bastante bien y debería ser algo a tener en cuenta la próxima vez que busque aprender nuevos marcos web.

JaimeJorge
fuente
5

Tiendo a usar JAX-RS usando Jersey (puede escribir buenos recursos de beans en Scala, Java o Groovy) para escribir aplicaciones web RESTul. Luego uso Scalate para la prestación de las vistas utilizando uno de los diversos lenguajes de plantillas ( JADE , Scaml , Ssp (Páginas Scala Server), bigote , etc.).

James Strachan
fuente
¿Me interesa saber qué IDE utiliza para desarrollar proyectos de Scalate?
Ali Shakiba
1
Uso IntelliJ para todo mi desarrollo
James Strachan
4

Hay un nuevo marco web, llamado Scala Web Pages . Desde el sitio:

Público objetivo

Es probable que el marco web de Scala Pages sea atractivo para los programadores web que provienen de un entorno Java y desean programar aplicaciones web en Scala. El énfasis está en OOP en lugar de la programación funcional.

Características y características

  • Se adhiere al paradigma modelo-vista-controlador
  • Motor de plantillas basado en texto
  • Sintaxis simple: $variabley<?scp-instruction?>
  • Codificación / detección de contenido, capaz de manejar codificaciones de texto internacionales
  • Fragmentos en lugar de etiquetas personalizadas
  • Reescritura de URL
Daniel C. Sobral
fuente
4

Prikrutil, creo que estamos en el mismo barco. También vengo a Scala desde Erlang. Me gusta el nitrógeno mucho el así que decidí crear un marco web Scala inspirado en él.

Echa un vistazo a Xitrum . Su documento es bastante extenso. De README:

Xitrum es un framework web y servidor web Scala agrupados y asíncronos sobre Netty y Hazelcast:

  • Llena la brecha entre Scalatra y Lift: más potente que Scalatra y más fácil de usar que Lift. Puede crear fácilmente API RESTful y devoluciones de datos. Xitrum es el primer controlador como Scalatra, no el primero en ver como Lift.
  • La anotación se utiliza para rutas URL, en el espíritu de JAX-RS. No tiene que declarar todas las rutas en un solo lugar.
  • Typesafe, en el espíritu de Scala.
  • Async, en el espíritu de Netty.
  • Las sesiones se pueden almacenar en cookies o en Hazelcast agrupado.
  • jQuery Validation está integrado para la validación del lado del navegador y del lado del servidor. i18n usando GNU gettext, lo que significa que, a diferencia de la mayoría de las otras soluciones, se admiten tanto formas singulares como plurales.
  • GET condicional usando ETag.

Hazelcast también da:

  • Caché en proceso y en clúster, no necesita servidores de caché separados.
  • Comet en proceso y en clúster, puede escalar Comet a múltiples servidores web.

Sigue el tutorial para comenzar rápidamente.

Ngoc Dao
fuente
3

También está Pinky, que solía estar en bitbucket pero fue transferido a github .

Por cierto, github es un gran lugar para buscar proyectos de Scala, ya que hay muchos puestos allí.

Daniel C. Sobral
fuente
3

Me gustaría agregar mis propios esfuerzos a esta lista. Puedes encontrar mas información aquí:

marco brzy

Está en desarrollo temprano y todavía estoy trabajando en ello agresivamente. Incluye características como:

  • Un enfoque en la simplicidad y la extensibilidad.
  • Herramienta de construcción integrada.
  • Diseño modular; algunos módulos iniciales incluyen soporte para scalate, correo electrónico, jms, jpa, squeryl, cassandra, servicios cron y más.
  • Controladores y acciones RESTful simples.

Cualquiera y todos los comentarios son muy apreciados.

ACTUALIZACIÓN: 2011-09-078, acabo de publicar una actualización importante a la versión 0.9.1. Hay más información en http://brzy.org que incluye un screencast.

Michael Fortin
fuente
1

Tanto Sweet como Slinky parecen estar sin mantenimiento durante aproximadamente un año. El repositorio de Sweet Maven sweetsoftwaredesign.com está muerto, por lo que ni siquiera hay forma de descargar dependencias.

Nowaker
fuente
1

Nota: Spiffy está desactualizado.

< enchufe >

Spiffy :

  • está escrito en Scala
  • usa la fantástica biblioteca y actores de Akka para escalar
  • utiliza la API 3.0 de servlet para el manejo de solicitudes asíncronas
  • es modular (el reemplazo de componentes es sencillo)
  • usa DSL para reducir el código donde no lo quieres
  • admite Scalate y Freemarker para plantillas

Spiffy es un marco web que usa Scala, Akka (una implementación de actor de Scala) y la API Java Servlet 3.0. Utiliza la interfaz asíncrona y tiene como objetivo proporcionar un entorno masivamente paralelo y escalable para aplicaciones web. Los diversos componentes de Spiffy se basan en la idea de que necesitan ser módulos minimalistas independientes que hagan pequeñas cantidades de trabajo muy rápidamente y transfieran la solicitud al siguiente componente en la tubería. Después de que el último componente haya terminado de procesar la solicitud, señala el contenedor del servlet "completando" la solicitud y enviándola de vuelta al cliente.

https://github.com/mardambey/spiffy

< / plug >

Hisham
fuente
0

También puedes probar Context . Fue diseñado para ser un framework Java pero lo he usado con éxito con Scala también sin dificultades. Es un marco basado en componentes y tiene propiedades similares a Lift o Tapestry.

ML
fuente
0

Hace unas semanas me topé con tu pregunta, pero desde entonces también aprendí sobre Circumflex . Este es un marco agradable y mínimo que, por lo tanto, es fácil de aprender y también tiene bastante buena documentación disponible.

Además de ser minimalista, también afirma que funciona bien con otras bibliotecas y le permite usar su propia implementación de las cosas cuando lo necesita.

Dave Vogt
fuente