linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux基础建设 >

谷歌想实现自己的curl,为什么?

时间:2019-06-26  来源:未知  作者:admin666

cURL 创始人 Daniel Stenberg 发文指出谷歌正在实现自己的 curl。

cURL 是一个网络数据传输项目,通常说 cURL 是指 curl 命令行工具,它支持 DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、Telnet 与 TFTP 等协议,而 curl 的底层使用的是 libcurl 库,libcurl 与 curl 组成了 cURL 项目。

Chromium bug 团队近日表示他们将基于 Chromium 网络栈 Cronet 实现一个名为 libcrurl 的库,用来提供部分 libcurl API。对于 Daniel 来说,谷歌很可能是要实现一个他们自己的 curl,所以后边可能出现一个基于 libcrurl 的“crurl”。

至于为什么要这么做,Chromium bug 团队表示,使用 Cronet 实现 libcurl 将允许开发人员使用 Chrome 网络栈的实用程序,而无需学习新的接口及其相应的工作流。理想情况下,这将增加 Cronet 的可用性,并通过第一方或第三方应用全面改进 Cronet 的采用。

Daniel 觉得谷歌这样的逻辑是有道理的:“理想情况下,Google 最终解决此问题的团队会发现并修复我们的代码和 API 中的问题,这可以改进 curl,同时也可以使更多用户了解 libcurl 与其 API。而如果工程师最终实现了一个比 libcurl 更好的库,并且使用相同的 API,那么开发者就可以直接选择他们认为更好的库。”

然而问题是,Daniel 认为这项工作并不简单,首先是 libcurl API 已经开发了近 20 年,它的许多功能、选项和微妙的行为可能无法轻易地直接模仿;另一方面,Cronet 与 libcurl 的工作方式完全不同,因此需要投入足够多的人力与时间来将 libcurl API 整合到 Cronet 上。

“我认为引入 API 不成熟的实现会给开发者带来困扰,因为他们很难理解它是个什么 API 以及与 libcurl 的区别”,像前边说的,Daniel 认为如果没有投入很大的工作量,那 libcrurl 不可能提供兼容 libcurl 的 API,而这种分裂将导致文档问题,甚至连基本的项目名都可能混淆,因为“libcrurl”/“crurl”与原本的“libcurl”/“curl”太像了,使用者可能误认为它们只是拼写错误。

虽然说理解谷歌的做法,并且也知道他们有权利这么去做,但是 Daniel 文章最后还是发出了疑问:curl 支持完整的 API,提供完全向后兼容性,同时在大量不同的平台和架构上可以相同的方式工作,并且免费,还经过多年实战考验,那么在这种情况下,开发者有什么理由要去使用另一个翻版的呢?

有意思的是,Daniel 的这篇博客评论中有人将谷歌的这一动作与微软备受诟病的“拥抱、扩展再毁灭”策略联系了起来。

友情链接
  • Mozilla发布Firefox 67.0.4,修复沙箱逃逸漏洞
  • 蚂蚁金服正式成为CNCF云原生计算基金会黄金会员
  • Firefox 68将采用Microsoft BITS安装更新
  • OpenSSH增加对存储在RAM中的私钥的保护
  • 谷歌想实现自己的curl,为什么?
  • Raspberry Pi 4发布:更快的CPU、更大的内存
  • Firefox的UA将移除CPU架构信息
  • Ubuntu放弃支持32位应用程序实属乌龙,Steam会否重回Ubuntu怀抱
  • Qt 5.13稳定版发布:引入glTF 2.0、改进Wayland以及支持Lottie动
  • 红帽企业Linux 7现已内置Redis 5最新版
  • Slack进入微软内部禁用服务清单,GitHub也在其列?
  • 安全的全新编程语言V发布首个可用版本
  • Windows Terminal已上架,快尝鲜
  • 阿里巴巴微服务开源生态报告No.1
  • 面世两年,Google地球将支持所有基于Chromium的浏览器
  • 推进企业容器化持续创新,Rancher ECIC千人盛典完美收官
  • CentOS 8.0最新构建状态公布,或于数周后发布
  • Debian移植RISC
  • 微软拆分操作系统的计划初现雏形
  • Oracle发布基于VS Code的开发者工具,轻松使用Oracle数据库
  • Ubuntu 19.10停止支持32位的x86架构
  • 微软为Windows Terminal推出全新logo
  • 联想ThinkPad P系列笔记本预装Ubuntu系统
  • 微软发布适用于Win7/8的Microsoft Edge预览版
  • 启智平台发布联邦学习开源数据协作项目OpenI纵横
  • 经过六个多月的延迟,微软终于推出Hyper
  • ZFS On Linux 0.8.1 发布,Python可移植性工作
  • DragonFly BSD 5.6.0 发布,HAMMER2状态良好
  • Linux Kernel 5.2
  • CentOS 8.0 看起来还需要几周的时间
  • 百度网盘Linux版正式发布
  • PCIe 6.0宣布:带宽翻倍 狂飙至256GB/s
  • PHP 7.4 Alpha 发布,FFI扩展,预加载Opcache以获得更好的性能
  • Canonical将在未来的Ubuntu版本中放弃对32位架构的支持
  • Scala 2.13 发布,改进的编译器性能
  • 微软的GitHub收购了Pull Panda,并且使所有订阅完全免费
  • Windows Subsystem for Linux 2 (WSL 2)现在适用于Windows 10用
  • Debian 10 “Buster”的RISC
  • MariaDB宣布发布MariaDB Enterprise Server 10.4
  • DXVK 1.2.2 发布,带来微小的CPU开销优化
  • DragonFlyBSD 5.6 RC1 发布,VM优化,默认为HAMMER2
  • PrimeNG 8.0.0 发布,支持Angular 8,FocusTrap等
  • GIMP 2.10.12 发布,一些有用的改进
  • 清华大学Anaconda 镜像服务即将恢复
  • Debian GNU/Linux 10 “Buster” 操作系统将于2019年7月6日发布
  • 时时彩论坛
  • 五星体育斯诺克
  • 北单比分直播
  • 河北11选5走势图
  • 福建体彩36选7开奖结果
  • 九龙图库下载