当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

fast-http

HTTP 协议解析库
授权协议 MIT
开发语言 Lisp
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 不详
投 递 者 商燕七
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

fast-http 是 Common Lisp 语言实现的快速 HTTP 请求和响应的协议解析库,大部分移植自 C 语言版本的 http-parser.

fast-http 的性能比较:

 

Parsing an HTTP request header 100000 times.

NOTE: Deleted PicoHTTPParser because the benchmark was wrong. It's 3.7 times faster than fast-http. Amazing.

详情请看 Benchmark

使用方法:

(let* ((http (make-http-request))
       (parser (make-parser http
                            :header-callback (lambda (headers)
                                               (my-app:got-headers!!! headers))
                            :body-callback (lambda (bytes)
                                             (my-app:got-body-piece bytes)))))
  (loop for http-data = (my-app:get-http-data-from-request-i-sent-out-earlier) do
    (multiple-value-bind (http headers-finished-p body-finished-p)
        (funcall parser http-data)
      (when body-finished-p
        (my-app:close-http-stream))
      ...)))
  • git提交常见错误1: $ git push origin develop To github.azc.ext.hp.com:xun-chen/uservice.git ! [rejected] develop -> develop (non-fast-forward) error: failed to push some refs to 'github.azc.ext.hp

  •    最近在做谷粒商城项目,ren-ren-fast vue重复安装好多次,终于成功启动,下面简单说下怎么解决: 1.安装python3以上,官网下载,会自动配环境变量,这样saas安装不会报错。 2.建议使用 node.js 10.x 版本    先把 node_modules 全部删除,然后再 npm install chromedriver --chromedriver_cdnurl=htt

  • 问题: 在git push时无法推送到远端仓库,出现下面的信息 $ git push origin master To https://github.com/USERNAME/REPOSITORY.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to ‘https://gith

  •  ! [rejected] dev -> dev (non-fast-forward) dev 为我的目标分支;根据自己需求修改  git fetch origin dev //获取远程dev分支的修改 git merge origin dev // 合并远程dev分支 git pull origin dev // 更新本地的代码 如果以上行不通试下以下命令 git push -u origin

  • git push origin master,出现错误信息 git push origin master To https://gitee.com/XXXXX.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://gitee.com/XXXXX.git' hi

  • 解决办法: 参考 添加git pull origin master --allow-unrelated-histories //把远程仓库和本地同步,消除差异 而后重新git add, git commit, git push

  • 问题描述 系统环境:Ubuntu16.04 硬件:双目相机intel D435i,机载电脑intel NUC 最终目标是实现视觉惯性导航的无人机自主飞行。 之前已经使用d435i跑通了vins-mono,跑通了fast-planner,但是在fast-planner打开的rviz窗口中,显示不到相机采集到的实际地图环境。 前期过程参考了 从零实现vins-mono+fast-planner+M10

  • Sift算法 Sift算法即尺度不变特征变换(Scale-invariant feature transform,SIFT)。可以在作者主页上找到其原文及代码----https://www.cs.ubc.ca/~lowe/keypoints/ 【1】David G. Lowe, “Distinctive image features from scale-invariant keypoints,”

  • git push 出错 ! [rejected] dev -> dev (non-fast-forward) 今天下午在公司 git 服务器上 push 代码的时候, 报错 ! [rejected] dev -> dev (non-fast-forward) 不清楚原因,查了相关资料,在这做下记录。 # 获取远程 dev 分支的修改 git fetch origin dev # 合并远程 dev

  • 项目场景: 解决使用人人开源,搭建前端环境问题(renren-fast-vue) 问题描述: 在npm install安装的过程中会发生一些问题,如node-sass安装失败、chromedriver安装失败等问题,通过查阅资料,最终得到解决发如下: 解决方案: 1、使用管理员方式打开PowerShell 2、使用 npm install命令安装(会报错chromedriver安装失败) 3、输入

 相关资料
  • 本文根据 SOFAChannel#13 直播分享整理,主题:云原生网络代理 MOSN 多协议机制解析。 本文根据 SOFAChannel#13 直播分享整理,主题:云原生网络代理 MOSN 多协议机制解析,查看视频回顾。 作者:无钩,目前主要从事蚂蚁集团网络代理相关的研发工作,也是 MOSN 的 Committer。 今天我要和大家分享的是《云原生网络代理 MOSN 多协议机制解析》,并介绍对应的

  • 本文主要是对 MOSN 多协议机制解析,并介绍对应的私有协议快速接入实践案例以及对 MOSN 实现多协议低成本接入的设计进行解读。 我们将按以下顺序进行介绍: 多协议机制产生的背景与实践痛点; 常见的协议扩展思路初探; SOFABolt 协议接入实践; MOSN 多协议机制设计解读; 后续规划及展望; 其中第三点「接入实践」是今天分享的重点,希望能给大家就「如何在 MOSN 中快速扩展私有协议接入

  • 在阅读这个相当长的问题之前,我提出了一个bughttps://github.com/GoogleCloudPlatform/python-docs-samples/issues/1103. 原型包和名称解析的留档状态 您可以使用其他定义。通过导入原始文件。导入另一个。在proto的定义中,您可以在文件的顶部添加一条import语句。 我的依赖于annotations.proto将HTTP/JSON

  • 物联网核心在人、机、云之间的信息互联,因此智能设备、云端、手机端会通过各种协议进行数据的交换,包括网络、蓝牙、USB、 ZigBee 等种种通信协议,实现万物互联的效果,因此在物联网安全分析中,对其中的通信协议的分析是关键的一环,本节将对常见的通信协议进行分析。

  • 我编写了一个服务器(Go)-客户端(Java)程序,并使用protobuf进行通信。定义一个proto文件并在服务器和客户端之间共享。在服务器端: 将共享的proto文件编译为go by Protoc 按proto.marshal序列化对象 将其发送给对其服务提出请求的客户端 在客户端: 通过protoc将共享的proto文件编译成Java 通过HTTP传输获取字节 将字节反序列化为对象。 这里有

  • rpcx 的 请求(request)和响应(response)使用相同的数据结构。 一个消息由下面的项组成: Header: 4 字节 Message ID: 8 字节 total size: 4 字节, 不包含header和它本身, uint32类型 servicePath值的长度: 4 字节, uint32类型 servicePath的值: UTF-8 字符串 serviceMethod值的长

  • 本文向大家介绍深入解析Swift语言中的协议,包括了深入解析Swift语言中的协议的使用技巧和注意事项,需要的朋友参考一下 协议为方法,属性和其他要求的功能提供了一个蓝本。它只是描述了方法或属性的骨架,而不是实现。方法和属性实现还可以通过定义类,函数和枚举完成。协议的一致性是指方法或属性满足协议的要求。 语法 协议也遵循类似类,结构和枚举的语法: 协议在类,结构或枚举类型命名声明。单个和多个协议的

  • 在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学。 IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息。 黄色区域 (同名区域) 我们看到,三个黄色区域跨越了IPv4和IPv6。Version(4位)用来表明IP协议