Skip to content
/ curl Public
forked from curl/curl

πŸ“¦ Prebuilt libcurl.a, curl.exe, libcurl.so, etc.

License

Notifications You must be signed in to change notification settings

jcbhmr/curl

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cURL prebuilt

πŸ“¦ Prebuilt libcurl.a, curl.exe, libcurl.so, etc.
πŸ”€ Forked from curl/curl

TODO: Add screenshot of "Assets" dropdown in releases tab once I make the first release

GitHub releases (this project) | Official cURL website | Official cURL GitHub

🏭 Builds everything using GitHub Actions
🚚 Nicely distributed in prebuilt .tar.gz or .zip bundles
πŸ“„ No source code patches; it's all CI

Installation

πŸ›‘ Use the official cURL download page to find, download, and install cURL for your platform.

Windows

Windows already provides a curl.exe. You can download libcurl using Vcpkg or another C/C++ dependency manager.

vcpkg install curl
Ubuntu

curl is already installed. You can install libcurl using apt:

sudo apt install libcurl4
macOS

Both curl and libcurl are already installed.

You can get cURL (library and binary) builds built by this project from the GitHub releases tab. These are unofficial.

Usage

Windows Linux macOS C

This project intends to provide binaries that can be used and integrated with other software where you don't want to have to compile cURL on a user's computer. Bindings to high-level scripting-like languages are a good example where a user doesn't want to wait for cURL to configure & build.

Here's some relevant URLs that you might use in your code to fetch (or store) the build artifacts:

https://github.com/jcbhmr/curl/releases/download/curl-8_8_0/curl-aarch64-apple-darwin.tar.gz
https://github.com/jcbhmr/curl/releases/download/curl-8_8_0/curl-x86_64-apple-darwin.tar.gz
https://github.com/jcbhmr/curl/releases/download/curl-8_8_0/curl-x86_64-unknown-linux-gnu.tar.gz
https://github.com/jcbhmr/curl/releases/download/curl-8_8_0/curl-x86_64-pc-windows-msvc.zip

β„Ή This project tries to stay up-to-date with the latest curl/curl release and also mirrors the release tag convention of curl-X_Y_Z tags.

You are encouraged to pin to a particular version and then update periodically.

There's also nightly builds if you're interested. I don't recommend using them but I wanted to highlight how cool😎 the nightly.link service is for this kind of thing! 🀩

https://nightly.link/jcbhmr/curl/workflows/cmake-build/master/curl-aarch64-apple-darwin.zip
https://nightly.link/jcbhmr/curl/workflows/cmake-build/master/curl-x86_64-apple-darwin.zip
https://nightly.link/jcbhmr/curl/workflows/cmake-build/master/curl-x86_64-unknown-linux-gnu.zip
https://nightly.link/jcbhmr/curl/workflows/cmake-build/master/curl-x86_64-pc-windows-msvc.zip

The .zip and .tar.gz archives are what was cmake --install-ed. The layout is mostly the same across platforms.

.
β”œβ”€β”€ bin/
β”‚   β”œβ”€β”€ curl
β”‚   β”œβ”€β”€ curl-config
β”‚   β”œβ”€β”€ mk-ca-bundle.pl
β”œβ”€β”€ include/
β”‚   └── curl/
β”‚       β”œβ”€β”€ curl.h
β”‚       β”œβ”€β”€ curlver.h
β”‚       β”œβ”€β”€ easy.h
β”‚       β”œβ”€β”€ header.h
β”‚       └── ...
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ cmake/
β”‚   β”‚   └── CURL/
β”‚   β”‚       β”œβ”€β”€ CURLConfig.cmake
β”‚   β”‚       β”œβ”€β”€ CURLConfigVersion.cmake
β”‚   β”‚       β”œβ”€β”€ CURLTargets.cmake
β”‚   β”‚       └── CURLTargets-relwithdebinfo.cmake
β”‚   β”œβ”€β”€ pkgconfig/
β”‚   β”‚   └── libcurl.pc
β”‚   β”œβ”€β”€ libcurl.a
β”‚   β”œβ”€β”€ libcurl.so
β”‚   β”œβ”€β”€ libcurl.so.4
β”‚   └── libcurl.so.4.8.0
└── share/
    └── man/
        β”œβ”€β”€ man1/
        β”‚   β”œβ”€β”€ curl.1
        β”‚   β”œβ”€β”€ curl-config.1
        β”‚   └── mk-ca-bundle.1
        └── man3/
            β”œβ”€β”€ curl_easy_cleanup.3
            β”œβ”€β”€ curl_easy_dubhandle.3
            β”œβ”€β”€ curl_easy_escape.3
            β”œβ”€β”€ curl_easy_getinfo.3
            └── ...

Note that everything is in the root folder of the archive! That means if you do unzip it will extract to .. There's not an extra inner folder. TODO: Is this the right way? What's the prevailing convention?

Development

LLVM Wasmer CMake Zig

This is a πŸ”€fork of the curl/curl project. I don't know if the cURL project wants to host prebuilt binaries. πŸ€·β€β™€οΈ The goal is to have a small patch of (hopefully) just .github/workflows/*.yml files to build each new cURL version and publish some sweet precompiled binaries and libraries for any platform that is in demand. Want to add another OS/arch combo? Open an issue or a Pull Request! ❀️

Todos:

  • Try to cross-compile everything using zig cc
  • Use zig cc or a native ARM runner to compile an AArch64 Linux version of cURL
  • Obtain precompiled (or compile them ourselves) versions of OpenSSL and others for cosmocc builds
  • Obtain precompiled versions of OpenSSL and zlib for WASIX builds

The best way to test changes right now is to open a Pull Request and see if the build workflow succeeds.

To create a release:

  1. Merge in the upstream release tag that corresponds to the release you want to make. Each release of this repository should correspond with a release from curl/curl. curl/curl already nicely configures and sets all the version magic everywhere so we can just take advantage of that.
  2. Manually update the few spots where jcbhmr/curl versions are hardcoded. These are: the readme list of release URLs, the readme zip/tarball folder structure.
  3. Manually run the gh release create workflow in the Actions tab. Choose draft: true first.
  4. Wait and make sure that CI creates the draft release.
  5. Manually check that things look good and work with all the draft release artifacts.
  6. Publish the release! πŸš€

curl logo

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how.

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Git

To download the latest source from the Git server, do this:

git clone https://github.com/curl/curl.git

(you will get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public.

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska HΓΆgskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! πŸ™ Become a backer.

Sponsors

Support this project by becoming a sponsor.

Releases

No releases published

Packages

No packages published

Languages

  • C 75.5%
  • Perl 8.3%
  • M4 5.2%
  • Python 3.6%
  • DIGITAL Command Language 2.2%
  • CMake 1.8%
  • Other 3.4%