Product of the Week: wolfSSL tiny-cURL

June 29, 2021


Product of the Week: wolfSSL tiny-cURL

Need client-side data transfer via popular Internet protocols like HTTP and HTTPS, but in an embedded-scale package that will work with 32-bit processor architectures and use less than100 KB of memory? You’ve come to the right place.

wolfSSL’s tiny-curl is a version of the open-source cURL (or libcurl) command-line tool and client-side library that’s installed in billions of systems worldwide to initiate secure data transfers over a variety of protocols. The main differences between the two: wolfSSL’s tiny-curl is available under dual-licensing and is focused on running HTTPS GET requests in less than 100 KB of RAM.

That makes tiny-curl roughly 25 percent the size of standard curl running on a Debian Linux/x86 stack.

As a result, wolfSSL’s tiny-curl is a great fit for RTOS environments, and the library supports FreeRTOS and other embedded operating systems while maintaining support for the libcurl API to help retain its platform compatibility and agnosticism. 

For enhanced data protection and security, the library can be built with the wolfSSL SSL/TLS library or wolfCrypt FIPS 140-2/3 crypto library to assist in compliance with regulations like GDPR, HIPAA, and PCI DSS.

wolfSSL tinycURL in Action

In order for tiny-curl to work with a range of small Arm, MIPS, RISC, and other small microcontrollers and microprocessors, the engineering team at wolfSSL (which includes original cURL author Daniel Stenberg) had to sacrifice some of the features of standard cURL. 

For instance, tiny-curl only operates over HTTP(S), and removes support for cookies, date parsing, HTTP authentication, shuffled DNS support, and so on. However, because all of these features have been disabled individually, it’s easy to re-enable them if the desired functionality is required for a specific build.

Nevertheless, these reductions don’t limit wolfSSL’s tiny-curl in terms of usability, as it can be leveraged for tasks that range from intermittently checking a server’s HTTP/SSH processes to securely downloading files.

Subscription support packages are also available from wolfSSL to integrate the tiny-curl with applications like SAAS platforms, SSH agents, websockets, and others, as well as a range of commercial and open-source operating environments.

Getting Started with wolfSSL tiny-curl

While this version of tiny-curl only supports HTTP and HTTPS protocols out of the box, wolfSSL offers a cURL implementation that works with other Internet protocols like MQTT, FTP, IMAP, POP, RTSP, and so on. wolfSSL’s engineering team is also available to design custom builds.

To get started with tinycURL, you can download the latest version, version 0.9, from the company’s downloads page under various licenses, GPLv3 or commercial. After downloading the library, you can get started by watching the tinyCURL explainer webinar below or checking out the resources further down.