什么Scalanetworking框架可用?
我刚刚开始学习Scala,我要实现的第一件事是一个小的Web应用程序。 我去年一直在使用Erlang来实现服务器端软件,但是我从来没有写过Web应用程序。 这将是一个伟大的经验。
除了Lift之外,Scala还有Web框架吗?
不要误解我,Lift看起来真棒。 我只是想知道有多less框架,以便我可以在它们之间进行select。 有一个select总是一件好事,但我唯一发现的是Lift。
我对Scala非常感兴趣,但是我还没有使用它,所以我注意到,在HRJ的答案 (Lift,Sweet,Slinky)中没有提到我所知道的框架:
- Scalatra ,之前的步骤(在GitHub上 )
- 玩2 (在GitHub上 )
- 粉红
我写了一篇关于这个的博客文章 。
总而言之,一些选项是:
- 电梯
- 甜
- 苗条
我终于发现没有一个适合我,并且开发了我自己的小框架。 (这还不是开源的)。
以下是框架的转储。 这并不意味着我实际上使用了它们:
-
Coeus 。 一个传统的Scala MVC Web框架。
-
未经过滤 。 一个用于在Scala中处理HTTP请求的工具包。
-
Uniscala花岗岩 。
-
加德尔
-
盟
-
爱茉莉 。 Ruby Web框架Sinatra的一个Scala端口
-
缩放XML 。 灵活的XML处理方法以及与XML交互的简化方法。
-
皮带 。 在Scalaz-HTTP之上构build的用于Web应用程序的机架式界面
-
弗兰克 。 Web应用程序DSL构build在Scalaz / Belt之上
-
MixedBits 。 Scala编程语言框架,帮助构build网站
-
Circumflex 。 使用Scala编程语言将多个自包含的开源项目整合到应用程序开发中。
-
斯卡拉Webmachine 。 在Scala中,Basho的webmachine是一个基于REST的系统,用于构buildWeb应用程序
-
保龄球 。 一个RESTful,多渠道就绪的Scala Web框架
我喜欢电梯;-)
Play是我对Scala友好的Web框架的第二select。
检票口是我的第三select。
尝试Play Framework ,也支持Scala。
一个非常有趣的商业部署Web框架是Scalatra ,灵感来自Ruby的Sinatra。 这里有一个关于它的InfoQ文章 。
我发现Unfiltered非常有趣https://github.com/unfiltered/unfiltered 。
在IttayD的名单中提到。
这里也有一篇文章,更多信息http://code.technically.us/post/998251172/holding-the-parameter
必须指出的是,对Wicket和Scala也有相当的兴趣。 Wicket很适合Scala。 如果您想利用非常成熟的Wicket项目及其生态系统(扩展)以及Scala的简洁语法和生产力优势,那么这个项目可能适合您!
也可以看看:
-
一些prosa
-
介绍
-
一些Wicket和Scala的经验
-
参考项目的粘贴代码将Scalaclosures到模型的声明
玩很漂亮。
现在正在准备生产。 它包含:一个很酷的模板框架,在安全的情况下自动重新加载源文件,一个可组合的动作系统,akka超棒的等等。
它是Typesafe Stack的一部分。
在两个项目中使用它,我可以说它工作得很顺利,下一次你要学习新的Web框架时应该考虑一下。
我倾向于使用使用Jersey的 JAX-RS(您可以在Scala,Java或Groovy中编写好的资源bean)来编写RESTul Web应用程序。 然后,我使用Scalate来使用各种模板语言之一( JADE , Scaml , Ssp (Scala Server Pages), 小胡子等)呈现视图。
有一个新的Web框架,称为Scala网页 。 来自网站:
目标听众
Scala Pages web框架可能会吸引来自Java背景的networking程序员,并希望在Scala中编写Web应用程序。 重点是OOP而不是函数式编程。
特点和特点
- 坚持模型 – 视图 – 控制器范例
- 基于文本的模板引擎
- 简单的语法:
$variable
和<?scp-instruction?>
- 编码/内容检测,能够处理国际文本编码
- 片段而不是自定义标签
- URL重写
Prikrutil,我想我们是在同一条船上。 我也来自Erlang的Scala。 我很喜欢氮气,所以我决定创build一个Scala Web框架。
看看Xitrum 。 它的文档相当广泛。 从自述文件:
Xitrum是Netty和Hazelcast之上的asynchronous和集群Scala Web框架和Web服务器:
- 它填补了Scalatra和Lift之间的空白:比Scalatra更强大,比Lift更容易使用。 您可以轻松创build两个RESTful API和回发。 Xitrum首先是像Scalatra这样的控制器,而不是像Lift这样的第一个视图。
- 本着JAX-RS的精神,注释用于URL路由。 你不必在一个地方申报所有路线。
- types安全,本着Scala的精神。
- asynchronous,在Netty的精神。
- 会话可以存储在Cookie或群集Hazelcast中。
- jQueryvalidation集成在浏览器端和服务器端validation。 i18n使用GNU gettext,这意味着与大多数其他解决scheme不同,支持单数和复数forms。
- 使用ETag进行条件GET。
Hazelcast也给:
- 进程内和集群caching,您不需要单独的caching服务器。
- 进程中和群集彗星,你可以扩展彗星到多个Web服务器。
按照教程快速启动。
也有Pinky,曾经是bitbucket,但被转移到github 。
顺便说一下,github是searchScala项目的好地方,因为这里有很多东西。
我想把我自己的努力join这个清单。 你可以在这里find更多的信息:
brzy框架
这是在早期的发展,我仍然在积极努力。 它包括以下function:
- 关注简单性和可扩展性。
- 集成的构build工具。
- 模块化devise; 一些初始模块包括对scalate,电子邮件,jms,jpa,squeryl,cassandra,cron服务等的支持。
- 简单的RESTful控制器和操作。
任何和所有的反馈非常感谢。
更新:2011-09-078,我刚刚发布了0.9.1版本的重大更新。 http://brzy.org上有更多信息,其中包括截屏。;
Sweet和Slinky似乎一年都没有受到伤害。 甜Maven回购sweetsoftwaredesign.com已经死了,所以甚至没有办法下载依赖。
注意:Spiffy已经过时了。
< plug >
漂亮 :
- 写在斯卡拉
- 使用梦幻般的阿卡图书馆和演员规模
- 使用servlet API 3.0进行asynchronous请求处理
- 是模块化的(更换部件是直接的)
- 使用DSL来减less你不想要的代码
- 支持Scalate和Freemarker模板
Spiffy是一个使用Scala,Akka(一个Scala actor实现)和Java Servlet 3.0 API的Web框架。 它利用asynchronous接口,旨在为Web应用程序提供一个大规模并行和可扩展的环境。 Spiffy的各种组件都基于这样的想法:它们需要是独立的简约模块,能够非常快速地完成less量工作,并将请求交给stream水线中的下一个组件。 在最后一个组件完成处理请求之后,它通过“完成”请求并发送回客户端来通知servlet容器。
https://github.com/mardambey/spiffy
< / plug >
你也可以尝试上下文 。 它被devise成一个Java框架,但我已经成功地用它与Scala也没有困难。 它是一个基于组件的框架,具有与Lift或Tapestry相似的属性。
我已经在几个星期前偶然发现了你的问题,但是从那以后也学到了有关Circumflex的知识 。 这是一个很好的,最小的框架,因此很容易学习,它也有很好的文档。
除此之外,它还声称与其他库很好地协作,并允许您在需要时使用自己的实现。