cURLing

cURL up on the couch and check out this cool open-source tool!

The world of open source—that is, where all the code is made publicly, freely, available—software is a funny one. A lot of open source projects are tiny things that no one ever really hears about other than a handful of people who need it. Some of them grow to be giant communities that last for decades and have taken on a life of their own, like the Linux operating system.

But sometimes you have pieces of software that aren’t household names and yet are incredibly important to so many of the things you use every day! In this article, we’re going to talk about one of those: cURL!

cURL—which stands for “client for URLs”—is a tool that does one thing and does it well: it lets you send data to and receive data from other computers across the internet based on their URL. I’m being slightly careful in how I’m saying this because while, yes, that mostly means the web it doesn’t exclusively mean websites. You can actually use cURL with a bunch of different ways to talk to computers across the internet, also called protocols.

cURL is both a program you can use on the command line, as we’ll show some examples of in a bit, but it’s also a library you can use with essentially any programming language to transfer data across the internet.

cURL was originally the work of just a single person—Daniel Stenberg—nearly thirty years ago but now is supported by a team of programmers and is used by, well, almost everyone. Seriously. Loading music to play on your phone with Spotify? cURL! Your Playstation downloading files? cURL! Your phones use cURL. Your tv uses cURL. Your router uses cURL. Steam uses cURL. Cars use cURL. It’s everywhere and it’s just an open source project started by one programmer.
I think that’s actually really cool! You have a piece of software that does its job well and now, over time, a ton of our technology has come to rely on it. Kinda the perfect open source success story!

Now, while talking about all that is fun I’d be remiss if I didn’t show you some fun things you can do with cURL at home. For this part, I’m going to be assuming that you have access to a command line: cURL works on Windows 10, Linux, and Mac OSX, and is generally pre-installed on any of those operating systems.

So from your favored command line try typing the following:

curl cheat.sh

and you should see something like

this is a little command line interface that lets you access a bunch of documentation about learning how to code just using cURL!

For example, you could type something like

curl cheat.sh/python/:learn

and you’ll get a big Python tutorial right in your terminal. You can do it with a bunch of languages including C, Ruby, Haskell, and Lua.

But another really fun thing you can do with cURL is store, share, and retrieve small files with this service: https://0x0.st/

The website version describes how to use it but the fun part is that you can, from the command line, put files on this server and they’ll stay there anywhere from a month to a year depending on how big they are: the smaller the file, the longer it’s allowed to live on the server. So you can’t use this for storing things permanently, but you can use it to do something like share pictures with friends!

Basically, anything that’s a simple (or even not so simple) website you can interact with via cURL.
The real point, though, that I want you to take away from this is that it’s possible, even in your spare time, to write software that does one thing so well that it becomes important to almost everyone on the planet!

Learn More

What is cURL?

https://en.wikipedia.org/wiki/CURL

Everything Curl

https://everything.curl.dev/

How does Curl Relate to APIs?

https://developer.ibm.com/articles/what-is-curl-command/

Curl Command Exercise

https://linuxize.com/post/curl-command-examples/

Daniel Stenberg

https://en.wikipedia.org/wiki/Daniel_Stenberg

Author

  • Clarissa Littler

    Clarissa has worked in mathematics, physics, and computer science research but spends much of her time now trying to make computer science education accessible to a broader audience.

Also In The August 2022 Issue

Looking for free computing resources for your classroom? Check out Computing at School!

From bulletproof vests to stronger tires, Kevlar is a really versatile material!

Time to learn how humans have kept track of time over the centuries

Check out how programmers are competing to make an even simpler Wordle!

Your dreams of having a robotic friend may be closer than you think!

Leave your mark on the world wide web with your own website!

Discover the true origins of the great poop emoji!

— Donald Knuth

Collection of the Learn More links from all of the August 2022 stories, in one place.

Interesting stories about computer science, software programming, and technology from August 2022.

Interested but not ready to subscribe? Sign-up for our free monthly email newsletter with curated site content and a new issue email announcement that we send every two months.

No, thanks!