首页 文章

什么Scala Web框架可用? [关闭]

提问于
浏览
193

我想要实现的是一个很小的Web应用程序 . 去年我一直在使用Erlang来实现服务器端软件,但我以前从未编写过Web应用程序 . 这将是一次很棒的经历 .

除了Lift之外,还有Scala的Web框架吗?

不要误会我的意思,Lift看起来很棒 . 我只是想知道有多少框架,以便我可以在它们之间进行选择 . 选择总是一件好事,但我发现的唯一一件事是Lift .

18 回答

  • 76

    我喜欢Lift ;-)

    Play是我对Scala友好的Web框架的第二选择 .

    Wicket是我的第三选择 .

  • 44

    Sweet和Slinky似乎都是大约一年没有造成的 . Sweet Maven repo sweetsoftwaredesign.com已经死了,所以甚至没有办法下载依赖项 .

  • 1

    我写了一篇关于这个的blog post .

    总而言之,一些选项是:

    我终于发现没有一个适合我,并开发了我自己的小“框架” . (它还不是开源的) .

  • 33

    我想将自己的努力添加到此列表中 . 您可以在此处找到更多信息:

    brzy framework

    它处于早期开发阶段,我仍在积极地开展这项工作 . 它包括以下功能:

    • 注重简单性和可扩展性 .

    • 集成构建工具 .

    • 模块化设计;一些初始模块包括对scalate,email,jms,jpa,squeryl,cassandra,cron服务等的支持 .

    • 简单的RESTful控制器和操作 .

    任何和所有反馈都非常感谢 .

    更新:2011-09-078,我刚刚发布了0.9.1版本的重大更新 . 有关http://brzy.org的更多信息,其中包括截屏视频 .

  • 8

    Note: Spiffy is outdated.

    <插头>

    Spiffy

    • 是用Scala编写的

    • 使用梦幻般的Akka图书馆和演员进行扩展

    • 使用servlet API 3.0进行异步请求处理

    • 是模块化的(替换组件是直接的)

    • 使用DSL来减少您不想要的代码

    • 支持Scalate和Freemarker进行模板化

    Spiffy是一个使用Scala,Akka(Scala actor实现)和Java Servlet 3.0 API的Web框架 . 它利用异步接口,旨在为Web应用程序提供大规模并行和可伸缩的环境 . Spiffy的各种组件都基于这样一种想法,即它们需要是独立的简约模块,能够非常快速地完成少量工作,并将请求移交给管道中的下一个组件 . 完成最后一个组件处理请求后,它通过“完成”请求并将其发送回客户端来向servlet容器发出信号 .

    https://github.com/mardambey/spiffy

    </插头>

  • 0

    试试Play Framework,它也支持Scala .

  • 0

    有一个新的Web框架,名为Scala Web Pages . 从网站:

    目标受众

    Scala Pages Web框架可能会吸引来自Java背景并希望在Scala中编写Web应用程序的Web程序员 . 重点是OOP而不是函数式编程 .

    特点和特点

    • 遵守模型 - 视图 - 控制器范例

    • 基于文本的模板引擎

    • 简单语法: $variable<?scp-instruction?>

    • 编码/内容检测,能够处理国际文本编码

    • 片段而不是自定义标签

    • URL重写

  • 3

    我对Scala非常感兴趣,但我还没有使用它,所以有了这个警告,我所知道的框架在HRJ's answer(Lift,Sweet,Slinky)中没有提到:

  • 1

    我倾向于使用Jersey使用JAX-RS(您可以在Scala,Java或Groovy中编写好的资源bean)来编写RESTul Web应用程序 . 然后我使用Scalate使用各种模板语言之一(JADEScamlSsp(Scala Server Pages),Mustache等)渲染视图 .

  • 8

    你也可以试试Context . 它被设计成一个Java框架,但我已经成功地将它与Scala一起使用也毫无困难 . 它是一个基于组件的框架,具有与Lift或Tapestry类似的属性 .

  • 4

    几个星期前我偶然发现了你的问题,但此后也了解了Circumflex . 这是一个很好的,最小的框架,因此易于学习,并且它还具有相当好的文档 .

    除了它的最小化,它还声称可以与其他库一起使用,并允许您在需要时使用自己的实现 .

  • 3

    Prikrutil,我想我们在同一条船上 . 我也是从Erlang来到Scala . 我非常喜欢Nitrogen所以我决定创建一个受其启发的Scala Web框架 .

    看看Xitrum . Its doc相当广泛 . 来自README:

    Xitrum是一个基于Netty和Hazelcast的异步和集群Scala Web框架和Web服务器:

    • 它填补了Scalatra和 . 之间的空白提升:比Scalatra更强大,比Lift更容易使用 . 您可以轻松创建RESTful API和回发 . Xitrum是控制器优先的,就像Scalatra一样,而不是像Lift这样的视图优先 .

    • 注释用于URL路由,本着JAX-RS的精神 . 您不必在一个地方声明所有路线 .

    • Typesafe,本着Scala的精神 .

    • 异步,本着Netty的精神 .

    • 会话可以存储在Cookie或群集Hazelcast中 .

    • jQuery Validation集成在浏览器端和服务器端验证中 . i18n使用GNU gettext,这意味着与大多数其他解决方案不同,支持单数和复数形式 .

    • 使用ETag的条件GET .

    Hazelcast还给出了:

    • 进程内和群集缓存,您不需要单独的缓存服务器 .

    • 进程内和集群Comet,您可以将Comet扩展到多个Web服务器 .

    按照tutorial快速启动 .

  • 7

    必须指出的是,WicketScala也有相当大的兴趣 . Wicket非常适合Scala . 如果您想利用非常成熟的Wicket项目及其生态系统(扩展)以及Scala的简洁语法和 生产环境 力优势,这个可能适合您!

    也可以看看:

  • 35
  • 23

    Play很可爱 .

    它现在已经准备好了 . 它包含:一个很酷的模板框架,安全的源文件自动重新加载,可组合的动作系统,akka awesomeness等 .

    它的一部分Typesafe Stack .

    将它用于两个项目后,我可以说它工作得很顺利,下次你想要学习新的Web框架时应该考虑一下 .

  • 8

    一个非常有趣的商业部署的Web框架是Scalatra,受到Ruby _378540的启发InfoQ article关于它 .

  • 5

    还有Pinky,曾经是bitbucket,但已转移到github .

    顺便说一句,github是一个搜索Scala项目的好地方,因为那里有很多东西 .

  • 4

    以下是框架的转储 . 这并不意味着我实际使用它们:

    • 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之上

    • MixedBits . Scala编程语言的框架,用于帮助构建网站

    • Circumflex . 使用Scala编程语言统一几个用于应用程序开发的自包含开源项目 .

    • Scala Webmachine . Basho的Web机器在Scala中的端口,这是一个基于REST的系统,用于构建Web应用程序

    • Bowler . 一个RESTful,多渠道准备好的Scala Web框架

相关问题