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


Acabo de empezar 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 he escrito aplicaciones web antes. Será una gran experiencia.

¿Hay web-frameworks para Scala excepto para Lift?

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

Author: Peter Mortensen, 2009-09-28

18 answers

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

 76
Author: bn.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-29 17:19:37

Escribí una entrada de blog sobre esto.

Para resumir, algunas de las opciones son:

  1. Lift
  2. Dulce
  3. Slinky

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

 44
Author: HRJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-03 04:34:25

Lo siguiente es un volcado de frameworks. Esto no significa que realmente los usé:

  • Coeus. Un framework web MVC tradicional para Scala.

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

  • Uniscala Granite .

  • Gardel

  • Mondo

  • Amore. Un port 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 construida 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

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

  • Scala Webmachine. Port of Basho's webmachine in Scala, a REST-based system for building web applications

  • Bowler. Un framework web Scala listo para múltiples canales y restful

 35
Author: IttayD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-15 19:19:47

Me gusta Levantar; -)

Play es mi segunda opción para frameworks web compatibles con Scala.

Wicket es mi tercera opción.

 33
Author: David Pollak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-18 05:52:47

Intenta Reproducir Framework, que también soporta Scala.

 23
Author: lidaobing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-02 10:44:42

Un framework web muy interesante con despliegue comercial es Scalatra, inspirado en Sinatra de Ruby. Aquí hay un artículo de InfoQ al respecto.

 8
Author: Daniel C. Sobral,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-07 14:30:19

Me parece muy interesante sin filtrar 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

 8
Author: fedesilva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-08 13:21:33

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

Véase también:

  1. Algunas prosa

  2. Presentación

  3. Algo de 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

 8
Author: Andreas Petersson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-02 10:43:42

Play es bastante dulce.

Ahora está listo para la producción. Incorpora: un marco de plantilla genial,recarga automática de archivos fuente en safe, un sistema de acción componible, akka awesomeness, etc.

Es parte de la pila segura de tipos .

Habiéndolo utilizado para dos proyectos, puedo decir que funciona bastante bien y debería ser algo a considerar la próxima vez que busque aprender nuevos marcos web.

 7
Author: JaimeJorge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-18 00:18:36

Tiendo a usar JAX-RS usando Jersey (puedes escribir nice resource beans en Scala, Java o Groovy) para escribir aplicaciones web RESTul. Luego utilizo Escalar para representar las vistas usando uno de los varios lenguajes de plantillas ( JADE, Scaml, Ssp (Páginas del servidor Scala), Bigote, etc.).

 5
Author: James Strachan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-15 19:25:08

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

Público destinatario

Es probable que el marco web de Scala Pages atraiga a los programadores web que provienen de un entorno Java y desean programar aplicaciones web en Scala. El énfasis está en la 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: $variable y <?scp-instruction?>
  • Codificación/detección de contenido, capaz de manejar codificaciones de texto internacionales
  • Fragmentos de código en lugar de etiquetas personalizadas
  • Reescritura de URL
 4
Author: Daniel C. Sobral,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-12 05:27:28

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

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

Xitrum es un framework web Scala asincrónico y clusterizado y servidor web sobre Netty y Hazelcast:

  • Llena el espacio entre Scalatra y Lift: más potente que Scalatra y más fácil de usar que Ascensor. Puede crear fácilmente API RESTful y postbacks. Xitrum es controlador-primero como Scalatra, no vista-primero como Ascensor.
  • La anotación se usa para rutas URL, en el espíritu de JAX-RS. No tienes 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 Hazelcast agrupadas.
  • La validación de jQuery está integrada para el lado del navegador y el lado del servidor validación. 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.
  • OBTENER condicional usando ETag.

Hazelcast también da:

  • En el proceso y la caché en clúster, no necesita servidores de caché separados.
  • Comet en proceso y agrupado, puede escalar Comet a varios servidores web.

Siga el tutorial para un inicio rápido.

 4
Author: Ngoc Dao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-15 16:06:47

También está Pinky, que solía estar en bitbucket pero se transfirió a github.

Por cierto, github es un gran lugar para buscar proyectos de Scala, ya que hay mucho que se está poniendo allí.

 3
Author: Daniel C. Sobral,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-28 18:28:47

Me gustaría añadir mis propios esfuerzos a esta lista. Puede encontrar más información aquí:

Brzy framework

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 compilació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.
  • Simple Descanso controladores y acciones.

Todos y cada uno de 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.

 3
Author: Michael Fortin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-08 13:29:05

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

 1
Author: Nowaker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-19 16:09:21

Nota: Spiffy está desactualizado.

Plug >

[2]: {[3]]}

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

Spiffy es una web framework usando Scala, Akka (una implementación de Scala actor), y la API Java Servlet 3.0. Hace uso de la interfaz asincrónica 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 deben ser módulos minimalistas independientes que hagan pequeñas cantidades de trabajo muy rápidamente y entreguen la solicitud al siguiente componente en la tubería. Después de que el último componente haya terminado de procesar la solicitud, señaliza el contenedor servlet "completando" la solicitud y enviándola de vuelta al cliente.

Https://github.com/mardambey/spiffy

/plug >

 1
Author: Hisham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-30 16:31:37

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

 0
Author: M.L.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-09 13:38:51

He tropezado con su pregunta hace unas semanas, pero desde entonces también aprendí acerca de 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 su minimal-ness, también afirma funcionar bien con otras bibliotecas y le permite usar su propia implementación de cosas cuando lo necesite.

 0
Author: Dave Vogt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-10 16:59:08