利用可能なScalaウェブフレームワークは何ですか?[閉まっている]


195

私はScalaの学習を開始したばかりで、最初に実装するのは小さなWebアプリケーションです。私は昨年、サーバーサイドソフトウェアを実装するためにErlangを使用してきましたが、これまでにWebアプリケーションを作成したことはありません。それは素晴らしい経験になります。

Lift以外にScalaのWebフレームワークはありますか?

誤解しないでください。Liftはすばらしく見えます。フレームワークがいくつあるか知りたいので、その中から選択できます。常に選択肢があるのは良いことですが、私が見つけたのはリフトだけでした。

回答:


77

私はScalaに非常に興味がありますが、まだ使用していません。そのため、HRJの回答(Lift、Sweet、Slinky)に記載されていないことがわかっているフレームワークは次のとおりです。


3
面白い。リフトは圧倒的に広く宣伝されています。あなたがそれに慣れていないのは不思議です。
mcherm 2009

13
「...私はHRJのことを知っており、言及していません...」という注記に注意してください。HRJはすでにリフトについて言及しています。ありがとう
bn。

6
Playに
Scala

1
/私はため息。<rant> Stepは完全に良い名前ですが、なぜScalatraに変更するのですか?Express.jsはNodatraと呼ばれていません。Flask(まったく同じではないが近い)は、Pythatraと呼ばれていません。</ rant>
デイブジェンセン

1
@ djensen47自分でいつでも自由に開発できます;)
BAR

45

私が書いたブログの記事をこれについて。

要約すると、いくつかのオプションがあります:

  1. リフト
  2. 甘い
  3. スリンキー

ようやく、自分に適したものはないことがわかり、自分の小さな「フレームワーク」を開発しました。(まだオープンソースではありません)。


35

私はリフトが好きです;-)

Playは、Scala対応のWebフレームワークの2番目の選択肢です。

Wicketは私の3番目の選択肢です。


46
デビッド、リフトについてどこで知りましたか?;-)
Derek Mahar

6
@Derek Maharインサイドジョブ私は信じています;-)

5
Liftと提携しているようです。自己宣伝のポリシーでは、このような回答ではこの情報を開示する必要があることに注意してください。
josliber

35

以下はフレームワークのダンプです。実際に使用したわけではありません。

  • Coeus。Scalaの従来のMVC Webフレームワーク。

  • フィルタリングされていません。ScalaでHTTPリクエストを処理するためのツールキット。

  • ユニスカラ花崗岩

  • ガーデル

  • モンド

  • もっと。Ruby WebフレームワークSinatraのScalaポート

  • XMLのスケーリング。XML処理への柔軟なアプローチとXMLとの対話の簡略化された方法。

  • ベルト。Scalaz-HTTPの上に構築されたWebアプリケーション用のラックのようなインターフェース

  • フランク。Scalaz / Beltの上に構築されたWebアプリケーションDSL

  • MixedBits。Webサイトの構築に役立つScalaプログラミング言語のフレームワーク

  • サーカムフレックス。Scalaプログラミング言語を使用したアプリケーション開発のためのいくつかの自己完結型オープンソースプロジェクトを統合します。

  • Scala Webmachine。Webアプリケーションを構築するためのRESTベースのシステムであるScalaのBashoのWebマシンのポート

  • ボウラー。RESTful、マルチチャネル対応のScala Webフレームワーク


1
Unfilteredの優れたスライドショーはこちら:リンク
Rick-777

ボウラーフレームワークを追加しました(Webで見つけただけです)。
アダム・ゲント



8

Unfilteredは非常に興味深いhttps://github.com/unfiltered/unfilteredです。

IttayDのリストに記載されています。

ここにそれについてのプレゼンテーションがあります http://unfiltered.lessis.me/#0 とビデオ http: http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-forです。

また、ここにはより多くの情報を持つ記事がありますhttp://code.technically.us/post/998251172/holding-the-parameter


1
フィルタリングされていないことは非常にクールです。それは本当にクリーンで機能的ですが、あまり複雑ではありません。
thatismatt

8

WicketScalaにもかなりの関心があることに注意してください。Wicketは驚くほどScalaに適合します。非常に成熟したWicketプロジェクトとそのエコシステム(拡張)に加えて、Scalaの簡潔な構文と生産性の利点を活用したい場合、これはあなたのためかもしれません!

以下も参照してください。

  1. いくつかのプロサ

  2. プレゼンテーション

  3. WicketとScalaの経験

  4. Scalaクロージャーをモデルにバインドするためのグルーコードのプロジェクトを参照してアナウンス


7

演奏するはかなり甘いです。

これで生産準備が整いました。組み込まれているのは、クールなテンプレートフレームワーク、安全なソースファイルの自動リロード、構成可能なアクションシステム、akkaの素晴らしさなどです。

Typesafe Stackの一部です。

これを2つのプロジェクトで使用したので、かなりスムーズに機能し、次に新しいWebフレームワークを学習するときに検討する必要があると言えます。


5

私は、Jerseyを使用してJAX-RS (Scala、Java、またはGroovyで素晴らしいリソースBeanを作成できます)を使用してRESTul Webアプリケーションを作成する傾向があります。次に、さまざまなテンプレート言語(JADEScamlSsp(Scala Server Pages)、Mustacheなど)の1つを使用して、ビューのレンダリングにScalateを使用します。


Scalateプロジェクトの開発にどのIDEを使用しているのか知りたいです。
Ali Shakiba、2013

1
私はすべての開発にIntelliJを使用しています
James Strachan 2013

4

Scala Web Pagesと呼ばれる新しいWebフレームワークがあります。サイトから:

対象読者

Scala Pages Webフレームワークは、Javaのバックグラウンドを持ち、ScalaでWebアプリケーションをプログラミングしたいWebプログラマーにとって魅力的です。関数型プログラミングではなくOOPに重点が置かれています。

特徴と特徴

  • モデル-ビュー-コントローラーパラダイムを遵守
  • テキストベースのテンプレートエンジン
  • 単純な構文:$variableおよび<?scp-instruction?>
  • エンコーディング/コンテンツ検出、国際的なテキストエンコーディングを処理可能
  • カスタムタグの代わりのスニペット
  • URL書き換え

4

Prikrutil、私たちは同じ船に乗っていると思います。ErlangからScalaにも来ています。窒素が好きがので、それに触発されたScalaウェブフレームワークを作成することにしました。

見てくださいXitrumをそのドキュメントは非常に広範囲です。READMEから:

Xitrumは、NettyとHazelcastの上にある非同期のクラスター化されたScala WebフレームワークとWebサーバーです。

  • ScalatraとLiftの間のギャップを埋めます。Scalatraよりも強力で、Liftよりも使いやすくなっています。RESTful APIとポストバックの両方を簡単に作成できます。XitrumはScalatraのようにコントローラーファーストであり、Liftのようにビューファーストではありません。
  • アノテーションは、JAX-RSの精神に則って、URLルートに使用されます。すべてのルートを1つの場所で宣言する必要はありません。
  • タイプセーフ、Scalaの精神。
  • 非同期、Nettyの精神。
  • セッションはCookieまたはクラスター化されたHazelcastに保存できます。
  • jQuery Validationは、ブラウザー側とサーバー側の検証のために統合されています。他のほとんどのソリューションとは異なり、単数形と複数形の両方がサポートされることを意味するGNU gettextを使用するi18n。
  • ETagを使用した条件付きGET。

Hazelcastは以下も提供します:

  • インプロセスおよびクラスター化されたキャッシュでは、個別のキャッシュサーバーは必要ありません。
  • インプロセスおよびクラスター化されたCometでは、Cometを複数のWebサーバーにスケーリングできます。

クイックスタートのチュートリアルに従ってください


3

ピンキーもあります。これは以前はbitbucketにありましたが、githubに転送されましたます。

ちなみに、githubはScalaプロジェクトを検索するのに最適な場所です。


3

このリストに自分の努力を加えたいと思います。詳細については、こちらをご覧ください。

brzyフレームワーク

それは初期の開発段階にあり、私はまだ積極的に取り組んでいます。次のような機能が含まれています。

  • シンプルさと拡張性に焦点を当てています。
  • 統合ビルドツール。
  • モジュール設計; 一部の初期モジュールには、scalate、email、jms、jpa、squeryl、cassandra、cronサービスなどのサポートが含まれています。
  • シンプルなRESTfulコントローラとアクション。

どんなフィードバックでも大歓迎です。

更新:2011-09-078、バージョン0.9.1へのメジャーアップデートを投稿しました。スクリーンキャストを含む詳細情報はhttp://brzy.orgにあります。


1

SweetとSlinkyはどちらも約1年間メンテナンスされていないようです。Sweet Mavenリポジトリのsweetsoftwaredesign.comは死んでいるため、依存関係をダウンロードする方法さえありません。


1

注:Spiffyは古くなっています。

< プラグ >

Spiffy

  • Scalaで書かれている
  • 素晴らしいAkkaライブラリとアクターを使用してスケーリングします
  • 非同期リクエスト処理にサーブレットAPI 3.0を使用します
  • モジュール式(コンポーネントの交換は簡単です)
  • DSLを使用して、不要なコードを削減する
  • テンプレート用にScalateとFreemarkerをサポート

Spiffyは、Scala、Akka(Scalaアクター実装)、およびJavaサーブレット3.0 APIを使用するWebフレームワークです。非同期インターフェイスを利用し、Webアプリケーションに大規模な並列性とスケーラブルな環境を提供することを目的としています。Spiffyのさまざまなコンポーネントはすべて、少量の作業を非常に迅速に実行し、リクエストをパイプラインの次のコンポーネントに渡す独立した最小限のモジュールである必要があるという考えに基づいています。最後のコンポーネントが要求の処理を完了すると、要求を「完了」してクライアントに送り返すことにより、サーブレットコンテナーに信号を送ります。

https://github.com/mardambey/spiffy

< /プラグ >


0

Contextを試すこともできます。Javaフレームワークとして設計されましたが、Scalaでも問題なく使用できました。コンポーネントベースのフレームワークで、リフトやタペストリーと同様のプロパティがあります。


0

私は数週間前にあなたの質問に出くわしましたが、それ以来サーカムフレックスについても学びました。これは素晴らしい、最小限のフレームワークなので、簡単に学ぶことができます。また、かなり良いドキュメントも利用できます。

それは最小限のものであるだけでなく、他のライブラリともうまく機能すると主張し、必要なときに独自の実装を使用できるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.