35

嵌入式设备上的Curl工具

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzAwOTU4NzM5Ng%3D%3D&%3Bmid=2455770727&%3Bidx=1&%3Bsn=fadeaa9751ee3ea06807745d51ad7817&%3Butm_source=tuicool&%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Curl工具和libcurl可能是世界上最流行和最广泛使用的HTTP客户端软件包了,已经有超过60亿的安装量了。

Curl的优势在于支持非常多的协议和功能,但为此也付出了很大的代价,就是这个包太庞大了。

为了满足特定场景下的使用,Curl官方发布了一个新的Curl工具,而且是最小化的,叫做 tiny-curl。

tiny-curl的 第一个目标 就是控制大小。tiny-curl 基于wolfSSL TLS库(一个轻量,支持嵌入式设备的 TLS 实现,我关注了他们的官方博客,非常的活跃),在32位系统上,整个大小控制在100K(包括wolfSSL TLS库)。

如果是一个完整版的Linux系统,可能根本不在乎Curl的大小,tiny-curl 的潜在用户更多是小型Linux系统,基于此,官方基于嵌入式 RTOS 系统进行测试,采用的是 FreeRTOS(一个免费的嵌入式系统)。

总结来说,一个基于 FreeRTOS,且只支持 HTTPS 的 libcurl 仅仅100K。

嵌入式设备上的libcurl库基于 libcurl API,这个API的开发和维护是重中之重,当然 libcurl API 也已经千锤百炼了,能够运行在很多平台上。

tiny-curl 的 第二个目标 就是尽可能干净的打PATCH,PATCH也会合并到libcurl代码树中,尽量不影响主要代码。

tiny-curl小巧的核心原因就是很多功能没有提供,比如仅仅支持HTTPS协议,没有cookie支持,没有multi-part支持,当然也可以重新编译,以便提供想要的一些功能。

目前可以在wolfssl官网下载tiny-curl(0.9版本),基于curl 7.64.1版本。 下一篇我会分享如何安装使用

大家常用的 curl 是基于 MIT 许可证,tiny-curl 采用 GPLv3,主要原因在于它还是一个实验性的工程,对于 Curl 来说,这是一个非常好的尝试。

今天微信允许关注数大于500的公众号开通广告主,希望大家多多点一点~~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK