Quali sono i framework web di Scala disponibili?

Ho appena iniziato ad imparare Scala, e la prima cosa che realizzerò è una piccola applicazione web. Ho usato Erlang per l’ultimo anno per implementare software lato server, ma non ho mai scritto applicazioni web prima. Sarà una grande esperienza.

Ci sono web framework per Scala eccetto Lift ?

Non fraintendermi, Lift sembra fantastico. Voglio solo sapere quanti quadri ci sono in modo da poter scegliere tra di loro. È sempre un bene avere una scelta, ma l’unica cosa che ho trovato è stata Lift.

Sono molto interessato a Scala, ma non l’ho ancora usato, quindi con questo avvertimento, le strutture di cui sono a conoscenza che non sono menzionate nella risposta di HRJ (Lift, Sweet, Slinky) sono:

  • Scalatra , in precedenza Step (su GitHub )
  • Gioca 2 (su GitHub )
  • Pinky

Ho scritto un post sul blog su questo.

Per riassumere, alcune delle opzioni sono:

  1. Sollevamento
  2. Dolce
  3. furtivo

Alla fine ho scoperto che nessuno era adatto a me e ha sviluppato il mio piccolo “quadro”. (Non è ancora open-source).

Di seguito è una discarica di quadri. Non significa che li abbia effettivamente usati:

  • Coeus . Un framework web MVC tradizionale per Scala.

  • Non filtrato . Un toolkit per la manutenzione delle richieste HTTP in Scala.

  • Granito Uniscala .

  • Gardel

  • Mondo

  • Amore Porta Scala del framework web Ruby Sinatra

  • Scaglie XML . Approccio flessibile alla gestione XML e un modo semplificato di interagire con XML.

  • Cintura Un’interfaccia simile a rack per le applicazioni Web create su Scalaz-HTTP

  • Frank . DSL per applicazioni Web basato su Scalaz / Belt

  • MixedBits . Un framework per il linguaggio di programmazione di Scala per aiutare a build siti web

  • Circumflex . Unisce diversi progetti open source autonomi per lo sviluppo di applicazioni utilizzando il linguaggio di programmazione Scala.

  • Scala Webmachine . La webmachine di Port of Basho in Scala, un sistema basato su REST per la realizzazione di applicazioni web

  • Bowler . Un framework web Scala pronto per il multicanale RESTful

Mi piace Lift 😉

Play è la mia seconda scelta per i framework web di Scala.

Wicket è la mia terza scelta.

Prova Play Framework , che supporta anche Scala.

Una struttura web molto interessante con distribuzione commerciale è Scalatra , ispirata a Sinatra di Ruby. Ecco un articolo InfoQ a riguardo.

Trovo Unfiltered molto interessante https://github.com/unfiltered/unfiltered .

È menzionato nella lista di IttayD.

Ecco una presentazione su di esso http://unfiltered.lessis.me/#0 e il video http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for

Anche qui c’è un articolo con maggiori informazioni http://code.technically.us/post/998251172/holding-the-parameter

Va notato che vi è anche un notevole interesse per Wicket e Scala . Wicket si adatta bene alla Scala. Se vuoi approfittare del progetto Wicket molto maturo e del suo ecosistema (estensioni) oltre alla concisa syntax e al vantaggio di produttività di Scala, questo potrebbe essere per te!

Guarda anche:

  1. Qualche prosa

  2. Presentazione

  3. Qualche esperienza con Wicket e Scala

  4. Annunci in riferimento al progetto per il codice della colla per bind le chiusure Scala ai modelli

Il gioco è piuttosto dolce.

Ora è pronto per la produzione. Incorpora: una struttura di template interessante, il ricaricamento automatico dei file sorgente in sicurezza, un sistema di azioni componibili, akka awesomeness, ecc.

Fa parte della pila Typesafe .

Avendolo usato per due progetti, posso dire che funziona abbastanza bene e dovrebbe essere qualcosa da considerare la prossima volta che stai cercando di imparare nuovi framework web.

Tendo ad usare JAX-RS usando Jersey (puoi scrivere dei bean di risorse in Scala, Java o Groovy) per scrivere applicazioni web RESTul. Quindi uso Scalate per il rendering delle viste usando uno dei vari linguaggi template ( JADE , Scaml , Ssp (Scala Server Pages), Moustache , ecc.).

C’è un nuovo framework web, chiamato Scala Web Pages . Dal sito:

Destinatari

È probabile che il framework web di Scala Pages piaccia ai programmatori web che provengono da uno sfondo Java e desiderano programmare applicazioni Web in Scala. L’enfasi è su OOP piuttosto che sulla programmazione funzionale.

Caratteristiche e caratteristiche

  • Aderisce al paradigma model-view-controller
  • Motore di template basato su testo
  • Sintassi semplice: $variable e
  • Codifica / rilevamento del contenuto, in grado di gestire codifiche di testo internazionali
  • Snippet anziché tag personalizzati
  • Riscrittura dell’URL

Prikrutil, penso che siamo sulla stessa barca. Vengo anche a Scala da Erlang. Mi piace molto l’ azoto, quindi ho deciso di creare un framework web alla Scala ispirato ad esso.

Dai un’occhiata a Xitrum . Il suo doc è piuttosto esteso. Da README:

Xitrum è un framework Web e server Web Scala asincrona e in cluster su Netty e Hazelcast:

  • Riempie lo spazio tra Scalatra e Lift: più potente di Scalatra e più facile da usare rispetto a Lift. È ansible creare facilmente API e postback RESTful. Xitrum è controller-first come Scalatra, non view-first come Lift.
  • L’annotazione viene utilizzata per le rotte URL, nello spirito di JAX-RS. Non è necessario dichiarare tutte le rotte in un unico luogo.
  • Typesafe, nello spirito di Scala.
  • Async, nello spirito di Netty.
  • Le sessioni possono essere memorizzate in cookie o in Hazelcast in cluster.
  • jQuery Validation è integrato per la convalida lato browser e lato server. i18n usando GNU gettext, il che significa che a differenza della maggior parte delle altre soluzioni, sono supportate sia forms singolari che plurali.
  • GET condizionale usando ETag.

Hazelcast offre anche:

  • In-process e cache in cluster, non sono necessari server cache separati.
  • In-process e cluster Comet, è ansible ridimensionare Comet su più server Web.

Segui il tutorial per un rapido avvio.

C’è anche Pinky, che era su bitbucket ma è stato trasferito su github .

A proposito, github è un ottimo posto per cercare progetti Scala, dato che c’è molto da mettere lì.

Mi piacerebbe aggiungere i miei sforzi a questa lista. Puoi trovare maggiori informazioni qui:

quadro accogliente

È in fase di sviluppo iniziale e ci sto ancora lavorando in modo aggressivo. Include funzionalità come:

  • Un focus sulla semplicità e l’estensibilità.
  • Strumento di costruzione integrato.
  • Design modulare; alcuni moduli iniziali includono il supporto per servizi scalati, email, jms, jpa, squeryl, cassandra, cron e altro.
  • Semplice controller e azioni RESTful.

Qualsiasi feedback è molto apprezzato.

AGGIORNAMENTO: 2011-09-078, ho appena pubblicato un aggiornamento importante alla versione 0.9.1. C’è più informazioni su http://brzy.org che include uno screencast.

Sia Sweet che Slinky sembrano non curati da circa un anno. Sweet Maven repo sweetsoftwaredesign.com è morto quindi non c’è nemmeno modo di scaricare le dipendenze.

Nota: Spiffy è obsoleto.

< plug >

Spiffy :

  • è scritto in Scala
  • usa la fantastica libreria e gli attori di Akka su scala
  • utilizza l’API 3.0 del servlet per la gestione asincrona delle richieste
  • è modulare (la sostituzione dei componenti è diretta)
  • usa i DSL per ridurre il codice dove non lo vuoi
  • supporta Scalate e Freemarker per il template

Spiffy è una struttura web che utilizza Scala, Akka (un’implementazione di attore Scala) e l’API Java Servlet 3.0. Fa uso dell’interfaccia async e mira a fornire un ambiente estremamente parallelo e scalabile per le applicazioni web. I vari componenti di Spiffy sono tutti basati sull’idea che devono essere moduli minimalisti indipendenti che eseguono piccole quantità di lavoro molto rapidamente e passano la richiesta al prossimo componente della pipeline. Dopo che l’ultimo componente ha terminato l’elaborazione della richiesta, segnala il contenitore servlet “completando” la richiesta e inviandola al client.

https://github.com/mardambey/spiffy

< / plug >

Potresti provare anche Context . È stato progettato per essere un framework Java, ma l’ho usato con successo anche con Scala senza difficoltà. È una struttura basata su componenti e ha proprietà simili a Lift o Tapestry.

Sono incappato nella tua domanda alcune settimane fa, ma da allora ho anche imparato a conoscere Circumflex . Questo è un framework piacevole e minimale, quindi facile da apprendere, e ha anche una buona documentazione disponibile.

Oltre alla sua minimalità, sostiene anche di funzionare bene con altre librerie e consente di utilizzare la propria implementazione di cose quando ne hai bisogno.