The key tool for data transfers continues to evolve
The project cURL, one of the most widely used command-line tools and libraries for data transfer over networks, has released version 8.12. This new release is notable for the definitive removal of the Hyper backend, which was based on Rust, along with several security, compatibility, and system optimization improvements.
Hyper was an experimental implementation aimed at enhancing security in memory management, but its limited adoption and lack of interest from developers have led to its retirement. Daniel Stenberg, creator and lead maintainer of cURL, explained that maintaining unsupported and unwanted code only complicates software development and maintenance.
What is cURL and why is it so important?
cURL (Client URL) is an open-source software tool that allows data transfer using various protocols, such as HTTP, HTTPS, FTP, SCP, SFTP, LDAP, and many others. Its versatility and reliability have made cURL a standard in the world of web development, automation, and system administration.
First released in 1998, cURL has continually evolved to meet the needs of the modern digital ecosystem. It is used in a wide variety of settings, from integration with APIsAPI stands for “Application Programming Interface” REST, to automating file downloads and uploads, interacting with remote servers, and diagnosing network connections.
Moreover, cURL is not limited to command-line use; its associated library, libcurl, is widely utilized in the development of applications and services that require communication with servers over the Internet. Major companies like Google, Facebook, Microsoft, and Amazon have integrated cURL into their systems to facilitate cloud data management and secure information transfer.
New features in cURL 8.12
Version 8.12 includes multiple enhancements, including:
- Removal of the Hyper backend, a Rust implementation that never gained traction due to a lack of demand.
- Improved compatibility with OpenSSL, allowing for the use of keys and certificates from a PKCS#11 provider.
- Support for exporting and importing SSL sessions through the new ssls-export function.
- Optimized QUIC support, with the ability to use 0RTT in GnuTLS via CURLSSLOPT_EARLYDATA.
- Improvements in the build system, including updates to autotools and CMake to enhance efficiency and compatibility with various platforms.
- Security and stability fixes, addressing issues in cookie management, integer handling vulnerabilities, and errors in HTTPS connections.
The decision to remove Hyper
Hyper was introduced with the goal of improving cURL’s security by leveraging Rust’s advantages in memory management. However, over the years, its usage remained extremely limited and failed to attract the attention of the developer community.
Stenberg has argued that “maintaining features that do not have a solid user base or active support only adds unnecessary complexity to the code,” which is why removing Hyper will allow for a focus on other, more in-demand improvements.
Availability and download
Version 8.12 of cURL is now available for download on the official project site. Developers and system administrators can access the full list of changes and enhancements at https://curl.se/ch/8.12.0.html.
This release reinforces cURL’s role as an essential tool in the world of development and system administration, continuing to evolve to meet current challenges in data transfer and network security.