嵌入式设备上的Curl工具

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的公众号开通广告主,希望大家多多点一点~~