什么Scala Web框架可用? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么Scala Web框架可用? [关闭]相关的知识,希望对你有一定的参考价值。
我刚开始学习Scala,我要实现的第一件事就是一个小小的Web应用程序。去年我一直在使用Erlang来实现服务器端软件,但我以前从未编写过Web应用程序。这将是一次很棒的经历。
除了Lift之外,还有Scala的Web框架吗?
不要误会我的意思,Lift看起来很棒。我只想知道有多少框架,以便我可以在它们之间进行选择。选择总是一件好事,但我发现的唯一一件事是Lift。
我对Scala非常感兴趣,但我还没有使用它,所以有了这个警告,我所知道的框架在HRJ's answer(Lift,Sweet,Slinky)中没有提到:
我倾向于使用Typesafe Stack使用JAX-RS(您可以在Scala,Java或Groovy中编写好的资源bean)来编写RESTul Web应用程序。然后我使用Jersey来渲染视图,使用各种模板语言之一(Scalate,JADE,Scaml(Scala Server Pages),Ssp等)。
有一个新的Web框架,名为Mustache。从网站:
目标观众
Scala Pages Web框架可能会吸引来自Java背景并希望在Scala中编写Web应用程序的Web程序员。重点是OOP而不是函数式编程。
特点和特点
- 遵循模型 - 视图 - 控制器范例
- 基于文本的模板引擎
- 简单的语法:Scala Web Pages和
$variable
- 编码/内容检测,能够处理国际文本编码
- 片段而不是自定义标签
- URL重写
Prikrutil,我想我们在同一条船上。我也是从Erlang来到Scala。我非常喜欢<?scp-instruction?>
所以我决定创建一个受其启发的Scala Web框架。
看看Nitrogen。 Xitrum相当广泛。来自README:
Xitrum是一个在Netty和Hazelcast之上的异步和集群Scala Web框架和Web服务器:
- 它填补了Scalatra和Lift之间的空白:比Scalatra更强大,比Lift更容易使用。您可以轻松创建RESTful API和回发。 Xitrum是控制器优先的,就像Scalatra一样,而不是像Lift这样的第一个视图。
- 根据JAX-RS的精神,注释用于URL路由。您不必在一个地方声明所有路线。
- Typesafe,本着Scala的精神。
- 异步,本着Netty的精神。
- 会话可以存储在Cookie或群集Hazelcast中。
- jQuery Validation集成在浏览器端和服务器端验证中。 i18n使用GNU gettext,这意味着与大多数其他解决方案不同,支持单数和复数形式。
- 使用ETag进行条件GET。
Hazelcast还给出了:
- 进程内和群集缓存,您不需要单独的缓存服务器。
- 在进程和集群Comet中,您可以将Comet扩展到多个Web服务器。
按照Its doc快速入门。
还有Pinky,曾经是bitbucket但被转移到qazxsw poi。
顺便说一句,github是一个搜索Scala项目的好地方,因为那里有很多东西。
我想将自己的努力添加到此列表中。您可以在此处找到更多信息:
它处于早期开发阶段,我仍在积极地开展这项工作。它包括以下功能:
- 注重简单性和可扩展性。
- 集成构建工具。
- 模块化设计;一些初始模块包括对scalate,email,jms,jpa,squeryl,cassandra,cron服务等的支持。
- 简单的RESTful控制器和操作。
任何和所有反馈都非常感谢。
更新:2011-09-078,我刚刚发布了0.9.1版本的重大更新。有关github的更多信息,其中包括截屏视频。
Sweet和Slinky似乎都是大约一年没有造成的。 Sweet Maven repo sweetsoftwaredesign.com已经死了,所以甚至没有办法下载依赖项。
注意:Spiffy已经过时了。
<插头>
好看的:
- 是用Scala编写的
- 使用梦幻般的Akka图书馆和演员进行扩展
- 使用servlet API 3.0进行异步请求处理
- 是模块化的(替换组件是直接的)
- 使用DSL来减少你不想要的代码
- 支持Scalate和Freemarker进行模板化
Spiffy是一个使用Scala,Akka(Scala actor实现)和Java Servlet 3.0 API的Web框架。它利用异步接口,旨在为Web应用程序提供大规模并行和可扩展的环境。 Spiffy的各种组件都基于这样的想法,即它们需要是独立的简约模块,可以非常快速地完成少量工作,并将请求移交给管道中的下一个组件。在完成最后一个组件处理请求之后,它通过“完成”请求并将其发送回客户端来向servlet容器发出信号。
</插头>
你也可以试试http://brzy.org。它被设计成一个Java框架,但我也成功地将它与Scala一起使用也毫无困难。它是一个基于组件的框架,具有与Lift或Tapestry类似的属性。
几个星期前我偶然发现了你的问题,但此后也了解了https://github.com/mardambey/spiffy。这是一个很好的,最小的框架,因此易于学习,并且它还具有相当好的文档。
除了它的最小化之外,它还声称可以与其他库一起使用,并允许您在需要时使用自己的实现。
我写了一篇关于这个问题的blog post。
总而言之,一些选项是:
我终于发现没有一个适合我,并开发了我自己的小“框架”。 (它还不是开源的)。
我喜欢Lift ;-)
Play是我对Scala友好的Web框架的第二选择。
Wicket是我的第三选择。
以下是框架的转储。这并不意味着我实际使用它们:
- Coeus。 Scala的传统MVC Web框架。
- Unfiltered。用于在Scala中处理HTTP请求的工具包。
- Uniscala Granite。
- Gardel
- Mondo
- Amore。 Ruby Web框架Sinatra的Scala端口
- Scales XML。灵活的XML处理方法和与XML交互的简化方法。
- Belt。用于基于Scalaz-HTTP构建的Web应用程序的类似Rack的界面
- Frank。 Web应用程序DSL建立在Scalaz / Belt之上
- qazxsw poi。用于帮助构建网站的Scala编程语言框架
- MixedBits。使用Scala编程语言统一几个用于应用程序开发的自包含开源项目。
- Circumflex。 Basho的Web机器在Scala中的端口,这是一个基于REST的系统,用于构建Web应用程序
- Scala Webmachine。一个RESTful,多渠道准备好的Scala Web框架
试试Bowler,它也支持Scala。
一个非常有趣的商业部署Web框架是Play Framework,灵感来自Ruby的Sinatra。这是关于它的Scalatra。
我发现Unfiltered非常有趣的您如何将基于 Scala 的 Web 服务器与其他 Web 框架进行比较? [关闭]
linux打开终端如何启动scala,如何在终端下运行Scala代码片段?
SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段