嵌入式裝置上的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(一個免費的嵌入式系統)。
嵌入式裝置上的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的公眾號開通廣告主,希望大家多多點一點~~