web-dev-qa-db-ja.com

どのScala web-frameworksが利用可能ですか?

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

Lift を除くScalaのWebフレームワークはありますか?

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

195
Prikrutil

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

77
bn.

これについて ブログ投稿 を書きました。

要約すると、いくつかのオプションは次のとおりです。

  1. リフト
  2. スイート
  3. Slinky

私は最終的に私にふさわしくないものを見つけ、私自身の小さな「フレームワーク」を開発しました。 (まだオープンソースではありません)。

44
HRJ

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

Playは、Scalaに優しいWebフレームワークの2番目の選択肢です。

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

35
David Pollak

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

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

  • フィルタリングなし 。 ScalaでHTTPリクエストを処理するためのツールキット。

  • ユニスカラ花崗岩

  • ガーデン

  • モンド

  • アモーレ 。 Scala WebフレームワークSinatraのRubyポート

  • XMLのスケール 。 XML処理への柔軟なアプローチと、XMLとのやり取りの簡素化された方法。

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

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

  • MixedBits 。 Webサイトの構築を支援するScalaプログラミング言語のフレームワーク

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

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

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

35
IttayD

Play Framework を試してください。これもScalaをサポートしています。

23
lidaobing

Unfilteredは非常に興味深いと思います https://github.com/unfiltered/unfiltered

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

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

また、こちらに詳細情報の記事があります http://code.technically.us/post/998251172/holding-the-parameter

8
fedesilva

商用展開での非常に興味深いWebフレームワークの1つは、RubyのSinatraに触発された Scalatra です。 InfoQの記事 についてです。

8

Wicket および Scala にも大きな関心があることに注意する必要があります。 WicketはScalaに驚くほどよく適合します。非常に成熟したWicketプロジェクトとそのエコシステム(拡張機能)に加えて、Scalaの簡潔な構文と生産性の利点を活用したい場合は、これが最適です。

こちらもご覧ください:

  1. いくつかのプロサ

  2. プレゼンテーション

  3. WicketとScalaのいくつかの経験

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

8

Play はとても甘い。

現在、生産準備完了です。クールなテンプレートフレームワーク、安全にソースファイルを自動的に再読み込み、構成可能なアクションシステム、akkaの素晴らしさなど。

Typesafe Stack の一部。

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

7
JaimeJorge

Jersey (ScalaでNiceリソースBean、JavaまたはGroovyで記述できます)を使用してJAX-RSを使用してRESTul Webアプリケーションを記述する傾向があります。次に、さまざまなテンプレート言語のいずれかを使用してビューをレンダリングするために Scalate を使用します( JADEScamlSsp (Scala Server Pages)、 口ひげ など)。

5
James Strachan

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

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

Xitrumは非同期でクラスター化されたScala Webフレームワークであり、NettyとHazelcastの上にある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サーバーに拡張できます。

tutorial に従ってクイックスタートを行います。

4
Ngoc Dao

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

対象者

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

特徴と特徴

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

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

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

3

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

brzyフレームワーク

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

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

すべてのフィードバックは大歓迎です。

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

3
Michael Fortin

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

1
Nowaker

注:Spiffyは時代遅れです。

<プラグ>

Spiffy

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

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

https://github.com/mardambey/spiffy

</ plug>

1
Hisham

私は数週間前にあなたの質問につまずいたが、それ以来 Circumflex についても学んだ。これはニースの最小限のフレームワークであり、したがって簡単に習得でき、かなり優れたドキュメントも利用できます。

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

0
Dave Vogt

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

0
M.L.