{"id":21715146,"url":"https://github.com/clark800/hget","last_synced_at":"2026-02-14T00:09:35.319Z","repository":{"id":47178945,"uuid":"350126713","full_name":"clark800/hget","owner":"clark800","description":"minimalist http/https client utility (curl/wget alternative)","archived":false,"fork":false,"pushed_at":"2024-12-22T02:53:33.000Z","size":173,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T13:38:36.398Z","etag":null,"topics":["c","command-line","downloader","minimalist"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clark800.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-21T21:42:43.000Z","updated_at":"2024-12-22T02:53:36.000Z","dependencies_parsed_at":"2024-10-28T03:29:19.477Z","dependency_job_id":"317df850-57ae-45fd-9cbd-a14a1f1ded0d","html_url":"https://github.com/clark800/hget","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fhget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fhget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fhget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clark800%2Fhget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clark800","download_url":"https://codeload.github.com/clark800/hget/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618731,"owners_count":21134287,"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":["c","command-line","downloader","minimalist"],"created_at":"2024-11-26T00:41:22.760Z","updated_at":"2026-02-14T00:09:30.294Z","avatar_url":"https://github.com/clark800.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\nhget is a minimalist HTTP/HTTPS client and download utility written in C\nwith only one optional dependency for TLS.\n\nhget is designed to provide 99% of the value-weighted utility of curl in\n\u003c1% as much code.\n\n#### Size\n* About 850 lines of code (0.6% the size of curl at ~134,000 lines)\n\n#### Features\n* Progress bar\n* 3xx redirects by default\n* Resuming partial downloads\n* Download only if newer\n* Compressed responses\n* Basic authentication\n* HTTP/HTTPS proxy\n* HTTP/HTTPS tunnel (including TLS in TLS)\n* Upload file\n* Set body, method, headers\n* Custom CA certificates\n* Client certificates\n\n#### Portability\n* Should be portable to any POSIX-like system that has either\n  fopencookie (Linux) or funopen (BSD).\n\n# Usage\n\n    Usage: hget [options] \u003curl\u003e\n    Options:\n      -o \u003cpath\u003e       write output to the specified file or directory\n      -n \u003cpath\u003e       only download if server file is newer than local file\n      -r              resume partial download\n      -q              disable progress bar\n      -s              suppress all error messages after usage checks\n      -t \u003curl\u003e        use HTTP/HTTPS tunnel\n      -p \u003curl\u003e        use HTTP/HTTPS proxy (insecure for https)\n      -w \u003cseconds\u003e    wait time for connection timeout\n      -e              output entire response (include response header)\n      -d              output direct response (disable redirects)\n      -l              lax mode (output response regardless of response status)\n      -x              output exact response (equivalent to -e -d -l)\n      -m \u003cmethod\u003e     set the http request method\n      -h \u003cheader\u003e     add a header to the request (may be repeated)\n      -j              add content-type header for json\n      -a \u003cuser:pass\u003e  add http basic authentication header\n      -b \u003cbody\u003e       set the body of the request\n      -u \u003cpath\u003e       upload file as request body\n      -z              request a gzip compressed response and output gzip file\n      -f              force https connection even if it is insecure\n      -c \u003cpath\u003e       use the specified CA cert file or directory\n      -i \u003cpath\u003e       set the client identity certificate\n      -k \u003cpath\u003e       set the client private key\n      -v              show verbose output\n\nTo download a file to the current directory, use `hget -o. \u003curl\u003e`.\n\nTo show a progress bar, install a progress bar utility like\n[bar](https://github.com/clark800/bar) and set the `PROGRESS` environment\nvariable to the name of the utility.\n\nTo use a CA certificate directory, make sure each certificate in the directory\nis in a separate file (not bundled) and run `c_rehash` on the direcory. Note\nthat CA directories are not supported in bearssl builds.\n\n# Building\n\nRun `./make` to build without https support.\n\nRun `./make bearssl` or `./make libressl` to build with https support.\n\nBuilding with `bearssl` requires both [bearssl](https://bearssl.org/)\nand [libtls-bearssl](https://github.com/michaelforney/libtls-bearssl).\nBuilding with `libressl` requires [libressl](http://www.libressl.org/).\n\nTo build with the `musl-gcc` wrapper, use e.g. `env CC=musl-gcc ./make`.\n\n\n# Return codes\n\n* 0 - OK (2xx or 3xx)\n* 1 - not found or gone (404 or 410)\n* 2 - request error (4xx, except 404 or 410)\n* 3 - server error or unexpected status (5xx, 1xx)\n* 4 - too many redirects\n* 5 - proxy error\n* 6 - protocol error\n* 7 - timeout error\n* 8 - system or network error\n* 9 - usage error\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclark800%2Fhget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclark800%2Fhget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclark800%2Fhget/lists"}