Welche Scala-Webframeworks sind verfügbar? [geschlossen]


195

Ich habe gerade angefangen, Scala zu lernen, und das erste, was ich implementieren werde, ist eine winzige Webanwendung. Ich habe Erlang im letzten Jahr verwendet, um serverseitige Software zu implementieren, aber ich habe noch nie zuvor Webanwendungen geschrieben. Es wird eine großartige Erfahrung.

Gibt es Web-Frameworks für Scala außer Lift ?

Versteh mich nicht falsch, Lift sieht toll aus. Ich möchte nur wissen, wie viele Frameworks es gibt, damit ich dann zwischen ihnen wählen kann. Es ist immer gut, eine Wahl zu haben, aber ich fand nur Lift.

Antworten:


77

Ich interessiere mich sehr für Scala, aber ich habe es noch nicht verwendet. Mit dieser Einschränkung werden die mir bekannten Frameworks in der Antwort von HRJ (Lift, Sweet, Slinky) nicht erwähnt :


3
Interessant. Lift ist bei weitem am bekanntesten: Es ist merkwürdig, dass Sie damit nicht vertraut waren.
Mcherm

13
Hinweis Aussage "... mir ist bekannt und wird von HRJ nicht erwähnt ..." HRJ erwähnte bereits Lift. Danke
bn.

6
Spiel hat auch eine Scala-Version
Islon

1
Ich seufze. <rant> Step ist ein sehr guter Name. Warum zu Scalatra wechseln? Express.js heißt nicht Nodatra. Flasche (nicht ganz gleich, aber nah) heißt nicht Pythatra. </ rant>
Dave Jensen

1
@ djensen47 Sie sind immer frei, Ihre eigenen zu entwickeln;)
BAR

45

Ich habe einen Blog-Beitrag darüber geschrieben.

Zusammenfassend sind einige der Optionen:

  1. Aufzug
  2. Süss
  3. Aufreizend

Ich fand schließlich heraus, dass keiner für mich geeignet war und entwickelte mein eigenes kleines "Framework". (Es ist noch nicht Open Source).


35

Ich mag Lift ;-)

Play ist meine zweite Wahl für Scala-freundliche Web-Frameworks.

Wicket ist meine dritte Wahl.


46
David, wie hast du von Lift erfahren? ;-)
Derek Mahar

6
@Derek Mahar Inside Job glaube ich

5
Es scheint, dass Sie mit Lift verbunden sind. Bitte beachten Sie, dass Sie gemäß unserer Richtlinie zur Eigenwerbung diese Informationen in Antworten wie dieser offenlegen müssen.
Josliber

35

Es folgt ein Dump von Frameworks. Das heißt nicht, dass ich sie tatsächlich benutzt habe:

  • Coeus . Ein traditionelles MVC-Webframework für Scala.

  • Ungefiltert . Ein Toolkit zur Bearbeitung von HTTP-Anfragen in Scala.

  • Uniscala Granit .

  • Gardel

  • Mondo

  • Amore . Ein Scala-Port des Ruby-Webframeworks Sinatra

  • Skaliert XML . Flexibler Ansatz für die XML-Verarbeitung und eine vereinfachte Art der Interaktion mit XML.

  • Gürtel . Eine Rack-ähnliche Oberfläche für Webanwendungen, die auf Scalaz-HTTP basiert

  • Frank . Webanwendung DSL basiert auf Scalaz / Belt

  • MixedBits . Ein Framework für die Scala-Programmiersprache zum Erstellen von Websites

  • Circumflex . Vereinigt mehrere eigenständige Open Source-Projekte für die Anwendungsentwicklung mit der Programmiersprache Scala.

  • Scala Webmachine . Port of Bashos Webmaschine in Scala, ein REST-basiertes System zum Erstellen von Webanwendungen

  • Bowler . Ein RESTful, Multi-Channel-fähiges Scala-Webframework


1
Unfiltered hat eine gute Diashow hier: Link
Rick-777

Ich habe bowlerframework hinzugefügt (habe es gerade im Web gefunden).
Adam Gent



8

Ich finde Unfiltered sehr interessant https://github.com/unfiltered/unfiltered .

Es wird in der Liste von IttayD erwähnt.

Hier ist eine Präsentation darüber http://unfiltered.lessis.me/#0 und das Video http://code.technically.us/post/942531598/doug-tangren-present-the-unfiltered-toolkit-for

Auch hier gibt es einen Artikel mit mehr Infos http://code.technically.us/post/998251172/holding-the-parameter


1
Ungefiltert ist sehr, sehr cool. Es ist sehr sauber und funktional, aber nicht zu komplex.
Thatismatt

8

Es ist anzumerken, dass auch ein erhebliches Interesse an Wicket und Scala besteht . Wicket passt überraschend gut zu Scala. Wenn Sie das sehr ausgereifte Wicket-Projekt und sein Ökosystem (Erweiterungen) sowie den prägnanten Syntax- und Produktivitätsvorteil von Scala nutzen möchten, ist dieses möglicherweise das Richtige für Sie!

Siehe auch:

  1. Einige Prosa

  2. Präsentation

  3. Einige Erfahrungen mit Wicket und Scala

  4. Ankündigungen mit Bezug auf das Projekt für den Klebercode zum Binden von Scala-Verschlüssen an Modelle


7

Das Spiel ist ziemlich süß.

Es ist jetzt produktionsbereit. Es beinhaltet: ein cooles Template-Framework, automatisches Neuladen von Quelldateien auf Safe, ein zusammensetzbares Aktionssystem, Akka-Attraktivität usw.

Es ist Teil des Typesafe Stack .

Nachdem ich es für zwei Projekte verwendet habe, kann ich sagen, dass es ziemlich reibungslos funktioniert und es etwas sein sollte, das Sie beim nächsten Mal berücksichtigen sollten, wenn Sie neue Web-Frameworks erlernen möchten.


5

Ich neige dazu, JAX-RS mit Jersey zu verwenden (Sie können nette Ressourcen-Beans in Scala, Java oder Groovy schreiben), um RESTul-Webanwendungen zu schreiben. Dann verwende ich Scalate zum Rendern der Ansichten mit einer der verschiedenen Vorlagensprachen ( JADE , Scaml , Ssp (Scala Server Pages), Moustache usw.).


Ich bin interessiert zu wissen, mit welcher IDE Sie Scalate-Projekte entwickeln.
Ali Shakiba

1
Ich benutze IntelliJ für meine gesamte Entwicklung
James Strachan

4

Es gibt ein neues Webframework namens Scala Web Pages . Von der Website:

Zielgruppe

Das Scala Pages-Webframework spricht wahrscheinlich Webprogrammierer an, die über einen Java-Hintergrund verfügen und Webanwendungen in Scala programmieren möchten. Der Schwerpunkt liegt eher auf OOP als auf funktionaler Programmierung.

Eigenschaften und Merkmale

  • Befolgen Sie das Modell-Ansicht-Controller-Paradigma
  • Textbasierte Vorlagen-Engine
  • Einfache Syntax: $variableund<?scp-instruction?>
  • Codierung / Inhaltserkennung, die internationale Textcodierungen verarbeiten kann
  • Snippets anstelle von benutzerdefinierten Tags
  • URL-Umschreibung

4

Prikrutil, ich denke wir sitzen auf demselben Boot. Ich komme auch aus Erlang zur Scala. Ich mag Stickstoff sehr, deshalb habe ich beschlossen, ein davon inspiriertes Scala-Webframework zu erstellen.

Schauen Sie sich Xitrum an . Das Dokument ist ziemlich umfangreich. Aus der README:

Xitrum ist ein asynchrones und geclustertes Scala-Webframework und ein Webserver über Netty und Hazelcast:

  • Es füllt die Lücke zwischen Scalatra und Lift: leistungsstärker als Scalatra und einfacher zu bedienen als Lift. Sie können problemlos sowohl RESTful-APIs als auch Postbacks erstellen. Xitrum ist Controller-First wie Scalatra, nicht View-First wie Lift.
  • Annotation wird im Sinne von JAX-RS für URL-Routen verwendet. Sie müssen nicht alle Routen an einem Ort deklarieren.
  • Typesafe im Geiste von Scala.
  • Async im Geiste von Netty.
  • Sitzungen können in Cookies oder Hazelcast-Clustern gespeichert werden.
  • Die jQuery-Validierung ist für die browser- und serverseitige Validierung integriert. i18n mit GNU gettext, was bedeutet, dass im Gegensatz zu den meisten anderen Lösungen sowohl Singular- als auch Pluralformen unterstützt werden.
  • Bedingtes GET mit ETag.

Hazelcast gibt auch:

  • In-Process- und Clustered-Cache benötigen Sie keine separaten Cache-Server.
  • In-Process und Clustered Comet können Sie Comet auf mehrere Webserver skalieren.

Folgen Sie dem Tutorial für einen schnellen Start.



3

Ich möchte meine eigenen Bemühungen zu dieser Liste hinzufügen. Weitere Informationen finden Sie hier:

brzy Rahmen

Es befindet sich in der frühen Entwicklung und ich arbeite immer noch aggressiv daran. Es enthält Funktionen wie:

  • Ein Fokus auf Einfachheit und Erweiterbarkeit.
  • Integriertes Build-Tool.
  • Modulares Design; Einige anfängliche Module enthalten Unterstützung für Scalate-, E-Mail-, JMS-, JPA-, Squeryl-, Cassandra-, Cron-Dienste und mehr.
  • Einfache RESTful Controller und Aktionen.

Jedes Feedback wird sehr geschätzt.

UPDATE: 2011-09-078, ich habe gerade ein großes Update auf Version 0.9.1 veröffentlicht. Weitere Informationen finden Sie unter http://brzy.org , einschließlich eines Screencasts.


1

Sowohl Sweet als auch Slinky scheinen seit etwa einem Jahr nicht mehr gewartet zu werden. Sweet Maven Repo sweetsoftwaredesign.com ist tot, es gibt also keine Möglichkeit, Abhängigkeiten herunterzuladen.


1

Hinweis: Spiffy ist veraltet.

< stecker >

Spiffy :

  • ist in Scala geschrieben
  • nutzt die fantastische Akka-Bibliothek und Schauspieler zur Skalierung
  • verwendet die Servlet-API 3.0 für die asynchrone Anforderungsbearbeitung
  • ist modular (das Ersetzen von Komponenten ist unkompliziert)
  • Verwendet DSLs, um Code dort zu reduzieren, wo Sie ihn nicht möchten
  • unterstützt Scalate und Freemarker beim Templating

Spiffy ist ein Webframework, das Scala, Akka (eine Scala-Actor-Implementierung) und die Java Servlet 3.0-API verwendet. Es nutzt die asynchrone Schnittstelle und zielt darauf ab, eine massiv parallele und skalierbare Umgebung für Webanwendungen bereitzustellen. Die verschiedenen Komponenten von Spiffy basieren alle auf der Idee, dass es sich um unabhängige minimalistische Module handeln muss, die sehr schnell kleine Arbeiten ausführen und die Anforderung an die nächste Komponente in der Pipeline weiterleiten. Nachdem die letzte Komponente die Anforderung verarbeitet hat, signalisiert sie dem Servlet-Container, indem sie die Anforderung "abschließt" und an den Client zurücksendet.

https://github.com/mardambey/spiffy

< / plug >


0

Sie können auch Context ausprobieren . Es wurde als Java-Framework konzipiert, aber ich habe es auch ohne Schwierigkeiten erfolgreich mit Scala verwendet. Es ist ein komponentenbasiertes Framework und hat ähnliche Eigenschaften wie Lift oder Tapestry.


0

Ich bin vor ein paar Wochen auf Ihre Frage gestoßen, habe aber seitdem auch etwas über Circumflex erfahren . Dies ist ein schönes, minimales Framework, das daher leicht zu erlernen ist und über eine ziemlich gute Dokumentation verfügt.

Neben seiner Minimalität soll es auch gut mit anderen Bibliotheken zusammenarbeiten und es Ihnen ermöglichen, Ihre eigene Implementierung von Dingen zu verwenden, wenn Sie sie benötigen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.