zoukankan      html  css  js  c++  java
  • Erlang的Web库和框架

    Yaws
    Yaws是一个高效处理动态页面的web服务器,因为Yaw由应用模块【appmods(application modules)】构建,所以其中的appmods可以被我们构造的API替代。
    Yaws的文档做的不错,重要的是能够植入到监督树的层次结构中(supervision,Erlang/OTP 设计原则里面的概念,简单来说,为了系统的稳定可靠,一个进程应当由另外的进程来监督和管理,这些监督进程构成了监督树)

    Mochiweb
    它应该算是在erlang的web相关的开发里面使用最多的,是个有自己独特之处的web服务器。
    文档做的一般,有个”不好“(相对作者来说)的地方就是,mochiweb的很多模块使用参数化模块的语法特性(注:也叫抽象模块,erlang的一种编 程实践或者叫做语法规则,官方不再推荐使用,我也是在mochiweb里面第一次遇到这种写法),这样做的一个好处,使得mochiweb更容易嵌入到其 他的应用中。

    Misultin
    支持websockets,结构上与Mochiweb相似
    可以去看Misultin的 wiki,有很多文档和非常棒的例子。

    Cowboy
    与mochiweb十分相似,相比之下:源码里面没有使用参数化模块的语法特性(看来作者对parameterized modules很头疼);使用单独的一个模块来处理所有的请求。
    我认为Cowboy是唯一一个完整的二进制HTTP服务器,这样做的原因是为了提高性能和降低内存使用。
    在这个项目的github上可以找到很多例子。

    httpd
    Erlang自带的,是inets应用的一部分。能满足我们大多数人的需要,重要的是,它是Erlang里唯一一个能够与WSGI和Rack-like这类中间件一起工作的库。
    不幸的是,httpd只使用一个固定的回调函数,而且文档写的也不怎么滴。如果你需要用到httpd,而且你在写httpd的模块时又遇到问题,那么你可 以到Garrett Smith开发的modlib的github上寻找帮助,modlib包装了httpd,并帮我们理清了各种各样的API,让我们知道它们究竟是干什么 的。

    SimpleBridge
    http库的适配器,SimpleBridge的目的就是“建立一个简单、标准的 Erlang HTTP 服务的接口”,这意味着你在实际操作时,如果用了SimpleBridge来包装你的web框架,你在需要做调整的时候会方便一点。
    我觉得目前来说,SimpleBridge还不是一个足够好的http库适配器(链接器)。它通过管道(pipeline)来支持Mochiweb,Inets httpd ,Yaws,Misultin。

    webmachine
    基于mochiweb建立,让我们远离的底层那些语法,有自己的“工具箱”。
    (注:下面这段话不好翻译,自己理解):
    For Basic RPC over HTTP applications, this isn't what you'd use, however, it makes lots of sense if the application is very resource-orientated. As it's come out of Basho, I'd expect it to be well written and documented.

    Nitrogen
    Nitrogen目的是建立一套功能性的用户接口,我对它处理服务端和客户端之间事件的来回发送的方式很感兴趣,介绍文档在 Introduction to Nitrogen(注:写的很给力)
    每个页面介绍一个模块,模版是可选的。使用Nitrogen很容易构建一个API。

    Zotonic
    Zotonic是一个成熟的CMS,支持websockets和Comet。方便扩展,它站点上的文档也很多。
    我能告诉你的是:Zotonic的底层虽然是由webmachine和nitrogen构建的,但是我们也可以定义自己的内部API,完全支持OAuth(注:开放式授权)

    Chicago Boss
    这个框架更接近Ruby的Rails。它的模块和大量内置的部署好的行为(hehaviour)助你的服务运行的更快。也许写自己的API有点困难,当然这取决于你要完成生么样的任务

  • 相关阅读:
    Jquery+Ajax+Bootstrap Paginator实现分页的拼接
    推荐一款在线工具-程序员的工具箱
    推荐一款在线工具-程序员的工具箱
    Jquery+Ajax+Bootstrap Paginator实现分页的拼接
    JSP 基础语法
    jsp九大内置对象及四个作用域
    jdk 版本不一致导致的错误
    java虚拟机内存模型
    java 内存简介
    B2C
  • 原文地址:https://www.cnblogs.com/luluping/p/11985763.html
Copyright © 2011-2022 走看看