curl / tiny-curl
curl is a computer software project providing a library for transferring data using various protocols. These protocols include (but are not limited to) FTP, FTPS, HTTP, HTTPS, and more. This version of the cURL library is nearly identical to the original library, except for a major difference: it is available for dual-licensing like many of the other wolfSSL products. Additionally, wolfSSL provides commercial curl support as well as support for wolfCrypt FIPS and FIPS ready.
curl is ideal for secure data transfer. It allows enterprise customers to securely transfer critical business information between users, locations and partners in compliance with data security regulations such as HIPAA, PCI DSS and the EU’s GDPR.
For resource constrained and embedded users, wolfSSL has created tiny-curl! Read more below!
cURL Subscription Packages
cURL subscription packages, provided by wolfSSL, make it easier than ever to use cURL, libcurl, and tiny-curl in non-traditional, embedded, or challenging environments. Packages provide integration with security technologies and applications, and make available special features not available in mainline cURL.
Subscription packages will include support for:
- Non-mainstream Operating Systems
- OS/390, VAX, HP/UX, AIX, etc.
- Embedded and RTOS Environments
- ThreadX, VxWorks, embedded Linux, Yocto Linux, OpenEmbedded, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, QNX, MontaVista, NonStop, TRON/ITRON/µITRON, Micrium µC/OS-III, FreeRTOS, SafeRTOS, NXP/Freescale MQX, Nucleus, TinyOS, HP/UX, AIX, ARC MQX, TI-RTOS, uTasker, embOS, INtime, Mbed, uT-Kernel, RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY, Keil RTX, TOPPERS, PetaLinux, Apache Mynewt, PikeOS, Deos
- Security and Application Integrations
- SAAS Integration (Salesforce.com, etc)
- cURL FIPS 140-2 / 140-3
- SSH Agent
- Kerberos (krb5) and GSS-API
- Two-Factor Authentication (2FA) / Duo Security / Okta
- Integration with Security Dongles / WebAuthn
- HSM and TPM Integration
- OpenSSL Engine Support
- websockets / WebTransport
Pricing and Subscription Package Details
Subscription package plan details can be found on the wolfSSL Support Package page.
Please contact wolfSSL with any questions, or for more details about cURL support or subscription packages.
cURL Windows FIPS 140-2 / 140-3
Ask us about our cURL for Windows with FIPS 140-2 / 140-3 support!
In addition to the curl library being licensed and having support provided by wolfSSL, there is a new library that is also licensed and supported by wolfSSL - the tiny-curl library!
tiny-curl is a version of curl that is capable of performing HTTPS and fits within 100K (including the wolfSSL library) on a typical 32 bit architecture. It is approximately one-quarter of the size of the typical curl build on Debian-based Linux with an x86-64 architecture.
The latest version of tiny-curl can be found on the wolfSSL downloads page.
The wolfSSL embedded SSL/TLS library supports a long list of OS and RTOS implementations, including:
Win32/64, Linux, Mac OS X, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, Yocto Linux, OpenEmbedded, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii and Gamecube through DevKitPro, QNX, MontaVista, NonStop, TRON/ITRON/µITRON, Micrium µC/OS-III, FreeRTOS, SafeRTOS, NXP/Freescale MQX, Nucleus, TinyOS, HP/UX, AIX, ARC MQX, TI-RTOS, uTasker, embOS, INtime, Mbed, uT-Kernel, RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY, Keil RTX, TOPPERS, PetaLinux, Apache Mynewt, PikeOS, Deos
cURL can be used in multiple different ways depending on the desired end result. If the user wants to have a task that repetitively checks the status of a server's HTTP/SSH processes, it can be used to intermittently check responses. If the user wants to securely download .zip files through a proxy, it has the ability to do this as well. For more information on using cURL with your project, please contact firstname.lastname@example.org.
If assistance is needed with setting up or using the curl/tinycurl libraries, more information on the support offered by wolfSSL can be found on the wolfSSL support page.
cURL supports many different protocols, including:
MQTT, DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,
POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP
Tutorials and Webinars
Video tutorials on curl and libcurl by Daniel Stenberg can be found on YouTube: https://www.youtube.com/channel/UCD5eL38hFtSLiVFP9cCUJEA
Additionally, wolfSSL occasionally hosts curl webinars. watch our blog for updates!
- xCurl November 30, 2023 Daniel Stenberg
- “you have hacked into my devices” November 26, 2023 Daniel Stenberg
- URL parser performance November 21, 2023 Daniel Stenberg
- curl on 100 operating systems November 14, 2023 Daniel Stenberg
- Another Google Open Source Peer Bonus November 10, 2023 Daniel Stenberg
- curl coasters November 3, 2023 Daniel Stenberg
- mastering libcurl November 1, 2023 Daniel Stenberg
- curl from start to end October 24, 2023 Daniel Stenberg
- 3,000 contributors October 13, 2023 Daniel Stenberg
- How I made a heap overflow in curl October 11, 2023 Daniel Stenberg
Brief History of curl
Below is an excerpt of curl's history, starting with how the curl project came to be.
Towards the end of 1996, Daniel Stenberg was spending time writing an IRC bot for an Amiga related channel on EFnet. He then came up with the idea to make currency-exchange calculations available to Internet Relay Chat (IRC) users. All the necessary data were published on the Web; he just needed to automate their retrieval.
Daniel simply adopted an existing command-line open-source tool, httpget, that Brazilian Rafael Sagula had written and recently released version 0.1 of. After a few minor adjustments, it did just what he needed.
The complete curl history anthology can be found here: https://curl.haxx.se/docs/history.html