{"id":14990037,"url":"https://github.com/jcmais/curl-for-windows","last_synced_at":"2025-07-02T06:35:30.881Z","repository":{"id":17175813,"uuid":"19943114","full_name":"JCMais/curl-for-windows","owner":"JCMais","description":"An unofficial mirror of the curl library with support for static linking on Windows.","archived":false,"fork":false,"pushed_at":"2022-11-08T00:33:36.000Z","size":41237,"stargazers_count":15,"open_issues_count":0,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-19T10:28:48.459Z","etag":null,"topics":["curl","gyp","libcurl","library","windows"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JCMais.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-19T13:36:45.000Z","updated_at":"2024-11-27T10:15:38.000Z","dependencies_parsed_at":"2023-01-11T20:26:02.540Z","dependency_job_id":null,"html_url":"https://github.com/JCMais/curl-for-windows","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/JCMais/curl-for-windows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCMais%2Fcurl-for-windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCMais%2Fcurl-for-windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCMais%2Fcurl-for-windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCMais%2Fcurl-for-windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JCMais","download_url":"https://codeload.github.com/JCMais/curl-for-windows/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCMais%2Fcurl-for-windows/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263087964,"owners_count":23411970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curl","gyp","libcurl","library","windows"],"created_at":"2024-09-24T14:19:22.125Z","updated_at":"2025-07-02T06:35:30.829Z","avatar_url":"https://github.com/JCMais.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Curl for windows\n\nCurl is a command line tool for transferring data specified with URL\nsyntax. Find out how to use curl by reading the curl.1 man page or the\nMANUAL document. Find out how to install Curl by reading the INSTALL\ndocument.\n\nlibcurl is the library curl is using to do its job. It is readily\navailable to be used by your software.\n\n# About\n\nThis is repo is mostly being used by the Node.js native addon [`node-libcurl`](https://github.com/JCMais/node-libcurl)\n\nThis was originally a fork of the project https://github.com/peters/curl-for-windows\n\nThis repository is a collection of dependencies that curl need to build successfully.\nEach submodule tries to track the latest known git release tag. When not using a git submodule\nfor the dependency, the direct source code was added to this repository, this is the case for\n`nghttp2`, `openssl`, and `cares`, for these, their .gyp files were retrieved from the Node.js\nsource code.\n\n**Both x86 and x64 builds are supported.**\n\n# libcurl dependencies\n\n- [Openssl](https://github.com/openssl/openssl)\n- [Libssh2](http://libssh2.org)\n- [nghttp2](https://nghttp2.org/)\n- [Zlib](http://zlib.net)\n- [cares](https://c-ares.haxx.se/)\n- [brotli](https://github.com/google/brotli)\n\n# Prerequisites\n\n* [Python 2.7](python.org)\n* [Visual Studio](https://visualstudio.microsoft.com/pt-br/vs/community/)\n* [NASM](https://www.nasm.us/) (Required to use ASM version of openssl)\n\n# Obtaining prerequisites \n\t\n    $ git clone https://github.com/JCMais/curl-for-windows.git\n    $ git submodule update --init --recursive\n      \n# Configuration options\n    \n    $ python configure.py --help\n\n```\nUsage: configure.py [options]\n\nOptions:\n  -h, --help            show this help message and exit\n  --toolchain=TOOLCHAIN\n                        msvs toolchain to build for. [default: auto]\n  --target-arch=TARGET_ARCH\n                        CPU architecture to build for. [default: x86]\n```\n\n# Generate project files\n\n    $ python configure.py \n\nOpen respective **curl.sln** found in **out** folder ;)\n\n# Simple curl example\n\nIf you are new to curl you can checkout the example project\nfound in curl.sln or you can view additional the **[examples](https://github.com/bagder/curl/tree/master/docs/examples)**\nin the official curl repository.\n\n# Linking with libcurl (without gyp)\n\n- Add preprocessor flag \n  - CURL_STATICLIB\n \n- Add include directory\n\t- path/to/curl/include\n\n- Add additional library search directory\n\t- path/to/out/Debug|Release/obj\n\t\n- Link with the following libraries\n  - libcurl.lib\n  - openssl.lib\n  - libssh2.lib\n  - brotli.lib\n  - cares.lib\n  - zlib.lib\n  - wsock32.lib\n  - wldap32.lib\n  - ws2_32.lib\n\nThe following libraries are available here, but not being used (yet):\n- nghttp3\n- ngtcp2\n  \nBy now you should have sweet, statically linked, CURL! ;)\n\n# Contributing\n\n## Upgrading libcurl\n\n1. Download the zip archive from the latest tag from the curl official repo https://github.com/curl/curl\n2. Compare the contents of the extracted sources with the ones at the curl folder on this repo. (I recommend bcompare for that or any other tool that can compare folder contents)\n3. Make necessary changes to the curl.gyp file.\n   \u003e For example, if a lib/src file was removed/added on the new version, it must be \n   \u003e removed/added on the curl.gyp file at the specific target\n4. After changes are made, cd into the `curl` directory and run:\n    ```shell\n    $ git fetch origin\n    $ git checkout \u003ccurl-tag-version\u003e\n    ```\n\n## Upgrading libssh2\n\nSame than libcurl\n\n# Upgrading nghttp2\n\nnghttp2 is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/nghttp2\n\nAt the time of writing this, the upgrade process was as easy as:\n1. copy the folder over.\n2. on `nghttp2/nghttp2.gyp`:\n   1. Comment:\n      ```\n          'msvs_settings': {\n            'VCCLCompilerTool': {\n              'CompileAs': '1'\n            },\n          },\n      ```\n3. done.\n\n## Upgrading OpenSSL\n\nOpenSSL is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/openssl\n\nAt the time of writing this, the upgrade process was as easy as:\n1. copy the folder over.\n2. Replace `\u003c(PRODUCT_DIR_ABS)/` with `\u003c(PRODUCT_DIR)/`.\n3. done.\n\n## Upgrading c-ares\n\nc-ares is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/cares\n\nAt the time of writing this, the upgrade process was as easy as:\n1. copy the folder over.\n2. done.\n\n## Upgrading brotli\n\nbrotli is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/brotli\n\nAt the time of writing this, the upgrade process was as easy as:\n1. copy the folder over.\n2. done.\n\n## Upgrading nghttp3\n\nnghttp3 is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/nghttp3\n\nAt the time of writing this, the upgrade process was as easy as:\n1. copy the folder over.\n2. done.\n\n\n## Upgrading ngtcp2\n\nngtcp2 is based on Node.js version: https://github.com/nodejs/node/tree/v17.x/deps/ngtcp2\n\nAt the time of writing this, the upgrade process was as easy as:\n1. copy the folder over.\n2. done.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcmais%2Fcurl-for-windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcmais%2Fcurl-for-windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcmais%2Fcurl-for-windows/lists"}