{"id":13641477,"url":"https://github.com/juancarlospaco/faster-than-requests","last_synced_at":"2025-05-14T05:10:42.950Z","repository":{"id":39965558,"uuid":"157295949","full_name":"juancarlospaco/faster-than-requests","owner":"juancarlospaco","description":"Faster requests on Python 3","archived":false,"fork":false,"pushed_at":"2025-05-10T19:27:23.000Z","size":21342,"stargazers_count":1118,"open_issues_count":0,"forks_count":91,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-05-10T20:19:24.544Z","etag":null,"topics":["curl","cython","download-file","faster-than-requests","high-performance","http-requests","ndjson","open-data","python","python-library","python-requests","python3","requests-toolbelt","requests3","scrapy","speed","urllib","urllib3","web-scraper","web-scraping"],"latest_commit_sha":null,"homepage":"https://gist.github.com/juancarlospaco/37da34ed13a609663f55f4466c4dbc3e","language":"Nim","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/juancarlospaco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null},"funding":{"custom":["https://gist.github.com/juancarlospaco/37da34ed13a609663f55f4466c4dbc3e"]}},"created_at":"2018-11-13T00:23:32.000Z","updated_at":"2025-05-10T19:27:26.000Z","dependencies_parsed_at":"2024-02-03T12:24:17.163Z","dependency_job_id":"8d9bdc7d-d819-4e77-a5f0-e77664e7d13b","html_url":"https://github.com/juancarlospaco/faster-than-requests","commit_stats":{"total_commits":1166,"total_committers":417,"mean_commits":"2.7961630695443644","dds":0.5866209262435678,"last_synced_commit":"e4d4dd561b0a5d116485da3db44d27ff98f6061c"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juancarlospaco%2Ffaster-than-requests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juancarlospaco%2Ffaster-than-requests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juancarlospaco%2Ffaster-than-requests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juancarlospaco%2Ffaster-than-requests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juancarlospaco","download_url":"https://codeload.github.com/juancarlospaco/faster-than-requests/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076850,"owners_count":22010611,"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","cython","download-file","faster-than-requests","high-performance","http-requests","ndjson","open-data","python","python-library","python-requests","python3","requests-toolbelt","requests3","scrapy","speed","urllib","urllib3","web-scraper","web-scraping"],"created_at":"2024-08-02T01:01:21.071Z","updated_at":"2025-05-14T05:10:42.930Z","avatar_url":"https://github.com/juancarlospaco.png","language":"Nim","funding_links":["https://gist.github.com/juancarlospaco/37da34ed13a609663f55f4466c4dbc3e"],"categories":["Nim"],"sub_categories":[],"readme":"\u003cmeta name='keywords' content='python, requests, faster, speed, benchmark, pycurl, wget, urllib, rapido, velocidad, optimizacion, cython, pypy, urllib3, urllib2, urllib4, urllib5, urllib6, urllib7, urllib8, urllib9, pywget, cpython, http, httpclient, curl, libcurl, ssl, docker, json, ndjson, https, rapido, veloz, performance, critical, compiled, module, modulo, loc, minimalismo, minimalism, simple, small, tiny, argentina, spanish, compare, mejora, scraper, scrapy, data science, open data, open api'\u003e\n\n\n# Faster-than-Requests\n\n[![screenshot](https://source.unsplash.com/eH_ftJYhaTY/800x402 \"Please Star this repo on GitHub!\")](https://youtu.be/QiKwnlyhKrk?t=5)\n\n![screenshot](https://raw.githubusercontent.com/juancarlospaco/faster-than-requests/master/img/temp.png \"Please Star this repo on GitHub!\")\n\n![](https://img.shields.io/github/languages/top/juancarlospaco/faster-than-requests?style=for-the-badge)\n![](https://img.shields.io/github/stars/juancarlospaco/faster-than-requests?style=for-the-badge \"Star faster-than-requests on GitHub!\")\n![](https://img.shields.io/maintenance/yes/2022?style=for-the-badge)\n![](https://img.shields.io/github/languages/code-size/juancarlospaco/faster-than-requests?style=for-the-badge)\n![](https://img.shields.io/github/issues-raw/juancarlospaco/faster-than-requests?style=for-the-badge \"Bugs\")\n![](https://img.shields.io/github/issues-pr-raw/juancarlospaco/faster-than-requests?style=for-the-badge \"PRs\")\n![](https://img.shields.io/github/last-commit/juancarlospaco/faster-than-requests?style=for-the-badge \"Commits\")\n\n\u003cimg src=\"http://feeds.feedburner.com/RecentCommitsToFaster-than-requestsmaster.1.gif\" title=\"Recent Commits to Faster Than Requests\" width=\"99%\" height=\"75px\"\u003e\n\n| Library                       | Speed    | Files | LOC  | Dependencies          | Developers | WebSockets                    | Multi-Threaded Web Scraper Built-in |\n|-------------------------------|----------|-------|------|-----------------------|------------|-------------------------------|-------------------------------------|\n| PyWGET                        | `152.39` | 1     | 338  | Wget                  | \u003e17        | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| Requests                      | `15.58`  | \u003e20   | 2558 | \u003e=7                   | \u003e527       | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| Requests (cached object)      |  `5.50`  | \u003e20   | 2558 | \u003e=7                   | \u003e527       | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| Urllib                        |  `4.00`  | ???   | 1200 | 0 (std lib)           | ???        | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| Urllib3                       |  `3.55`  | \u003e40   | 5242 | 0 (No SSL), \u003e=5 (SSL) | \u003e188       | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| PyCurl                        |  `0.75`  | \u003e15   | 5932 | Curl, LibCurl         | \u003e50        | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| PyCurl (no SSL)               |  `0.68`  | \u003e15   | 5932 | Curl, LibCurl         | \u003e50        | :negative_squared_cross_mark: | :negative_squared_cross_mark:       |\n| Faster_than_requests          |  `0.40`  | 1     | 999  | 0                     | 1          | :heavy_check_mark:            | :heavy_check_mark: 7, [One-Liner](https://github.com/juancarlospaco/faster-than-requests/blob/master/examples/multithread_web_scraper.py#L2) |\n\n\u003cdetails\u003e\n\n- Lines Of Code counted using [CLOC](https://github.com/AlDanial/cloc).\n- Direct dependencies of the package when ready to run.\n- Benchmarks run on Docker from Dockerfile on this repo.\n- Developers counted from the Contributors list of Git.\n- Speed is IRL time to complete 10000 HTTP local requests.\n- Stats as of year 2020.\n- x86_64 64Bit AMD, SSD, Arch Linux.\n\n\u003c/details\u003e\n\n\n# Use\n\n```python\nimport faster_than_requests as requests\n\nrequests.get(\"http://httpbin.org/get\")                                      # GET\nrequests.post(\"http://httpbin.org/post\", \"Some Data Here\")                  # POST\nrequests.download(\"http://example.com/foo.jpg\", \"out.jpg\")                  # Download a file\nrequests.scraper([\"http://foo.io\", \"http://bar.io\"], threads=True)          # Multi-Threaded Web Scraper\nrequests.scraper5([\"http://foo.io\"], sqlite_file_path=\"database.db\")        # URL-to-SQLite Web Scraper\nrequests.scraper6([\"http://python.org\"], [\"(www|http:|https:)+[^\\s]+[\\w]\"]) # Regex-powered Web Scraper\nrequests.scraper7(\"http://python.org\", \"body \u003e div.someclass a#someid\"])    # CSS Selector Web Scraper\nrequests.websocket_send(\"ws://echo.websocket.org\", \"data here\")             # WebSockets Binary/Text\n```\n\n\n# Table Of Contents\n\n|                         |                             |                               |                           |\n|:-----------------------:|:---------------------------:|:-----------------------------:|:-------------------------:|\n| [**get()**](#get)       | [**post()**](#post)         | [**put()**](#put)             | [**head()**](#head)       |\n| [**patch()**](#patch)   | [**delete()**](#delete)     | [download()](#download)       | [download2()](#download2) |\n| [scraper()](#scraper)   | [scraper2()](#scraper2)     | [scraper3()](#scraper3)       | [scraper4()](#scraper4)   |\n| [scraper5()](#scraper5) | [scraper6()](#scraper6)     | [scraper7()](#scraper7)       | [get2str()](#get2str)     |\n| [get2str2()](#get2str2) |                             | [get2dict()](#get2dict)       | [get2json()](#get2json)   |\n| [post2str()](#post2str) | [post2dict()](#post2dict)   | [post2json()](#post2json)     | [post2list()](#post2list) |\n| [download3()](#download3) | [tuples2json()](#tuples2json) | [set_headers()](#set_headers) | [multipartdata2str()](#multipartdata2str) |\n| [datauri()](#datauri)   | [urlparse()](#urlparse)     | [urlencode()](#urlencode)     | [urldecode()](#urldecode) |\n| [encodequery()](#encodequery) | [encodexml()](#encodexml) | [debugs()](#debugs)       | [minifyhtml()](#minifyhtml) |\n| [How to set DEBUG mode](#how-to-set-debug-mode) | [websocket_send()](#websocket_send) | [websocket_ping()](#websocket_ping) | |\n| [How to Install](#install) | [How to Windows](#windows) | [FAQ](#faq) | [Get Help](https://github.com/juancarlospaco/faster-than-requests/issues/new/choose) |\n| [PyPI](https://pypi.org/project/faster-than-requests) | [GitHub Actions / CI](https://github.com/juancarlospaco/faster-than-requests/actions?query=workflow%3APYTHON) | [Examples](https://github.com/juancarlospaco/faster-than-requests/tree/master/examples) | [Sponsors](#sponsors) |\n\n\n# get()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP GET and returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://dev.to`.\n- `user_agent` User Agent, string type, optional, should not be empty string.\n- `max_redirects` Maximum Redirects, int type, optional, defaults to `9`, example `5`, example `1`.\n- `proxy_url` Proxy URL, string type, optional, if is `\"\"` then NO Proxy is used, defaults to `\"\"`, example `172.15.256.1:666`.\n- `proxy_auth` Proxy Auth, string type, optional, if `proxy_url` is `\"\"` then is ignored, defaults to `\"\"`.\n- `timeout` Timeout, int type, optional, Milliseconds precision, defaults to `-1`, example `9999`, example `666`.\n- `http_headers` HTTP Headers, List of Tuples type, optional, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.get(\"http://example.com\")\n```\n\n**Returns:**\nResponse, `list` type, values of the list are string type,\nvalues of the list can be empty string, the lenght of the list is always 7 items,\nthe values are like `[body, type, status, version, url, length, headers]`,\nyou can use `to_json()` to get JSON or `to_dict()` to get a dict or `to_tuples()` to get a tuples.\n\n\n**See Also:**\n[get2str()](https://github.com/juancarlospaco/faster-than-requests#get2str) and [get2str2()](https://github.com/juancarlospaco/faster-than-requests#get2str2)\n\n\u003c/details\u003e\n\n\n\n# post()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP POST and returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://dev.to`.\n- `body` the Body data, string type, required, can be empty string. To Post Files use this too.\n- `multipart_data` MultiPart data, optional, list of tupes type, must not be empty list, example `[(\"key\", \"value\")]`.\n- `user_agent` User Agent, string type, optional, should not be empty string.\n- `max_redirects` Maximum Redirects, int type, optional, defaults to `9`, example `5`, example `1`.\n- `proxy_url` Proxy URL, string type, optional, if is `\"\"` then NO Proxy is used, defaults to `\"\"`, example `172.15.256.1:666`.\n- `proxy_auth` Proxy Auth, string type, optional, if `proxy_url` is `\"\"` then is ignored, defaults to `\"\"`.\n- `timeout` Timeout, int type, optional, Milliseconds precision, defaults to `-1`, example `9999`, example `666`.\n- `http_headers` HTTP Headers, List of Tuples type, optional, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.post(\"http://httpbin.org/post\", \"Some Data Here\")\n```\n\n**Returns:**\nResponse, `list` type, values of the list are string type,\nvalues of the list can be empty string, the lenght of the list is always 7 items,\nthe values are like `[body, type, status, version, url, length, headers]`,\nyou can use `to_json()` to get JSON or `to_dict()` to get a dict or `to_tuples()` to get a tuples.\n\n\n\u003c/details\u003e\n\n\n\n# put()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP PUT and returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://nim-lang.org`.\n- `body` the Body data, string type, required, can be empty string.\n- `user_agent` User Agent, string type, optional, should not be empty string.\n- `max_redirects` Maximum Redirects, int type, optional, defaults to `9`, example `5`, example `1`.\n- `proxy_url` Proxy URL, string type, optional, if is `\"\"` then NO Proxy is used, defaults to `\"\"`, example `172.15.256.1:666`.\n- `proxy_auth` Proxy Auth, string type, optional, if `proxy_url` is `\"\"` then is ignored, defaults to `\"\"`.\n- `timeout` Timeout, int type, optional, Milliseconds precision, defaults to `-1`, example `9999`, example `666`.\n- `http_headers` HTTP Headers, List of Tuples type, optional, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.put(\"http://httpbin.org/post\", \"Some Data Here\")\n```\n\n**Returns:**\nResponse, `list` type, values of the list are string type,\nvalues of the list can be empty string, the lenght of the list is always 7 items,\nthe values are like `[body, type, status, version, url, length, headers]`,\nyou can use `to_json()` to get JSON or `to_dict()` to get a dict or `to_tuples()` to get a tuples.\n\n\n\u003c/details\u003e\n\n\n\n# delete()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP DELETE and returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://nim-lang.org`.\n- `user_agent` User Agent, string type, optional, should not be empty string.\n- `max_redirects` Maximum Redirects, int type, optional, defaults to `9`, example `5`, example `1`.\n- `proxy_url` Proxy URL, string type, optional, if is `\"\"` then NO Proxy is used, defaults to `\"\"`, example `172.15.256.1:666`.\n- `proxy_auth` Proxy Auth, string type, optional, if `proxy_url` is `\"\"` then is ignored, defaults to `\"\"`.\n- `timeout` Timeout, int type, optional, Milliseconds precision, defaults to `-1`, example `9999`, example `666`.\n- `http_headers` HTTP Headers, List of Tuples type, optional, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.delete(\"http://example.com/api/something\")\n```\n\n**Returns:**\nResponse, `list` type, values of the list are string type,\nvalues of the list can be empty string, the lenght of the list is always 7 items,\nthe values are like `[body, type, status, version, url, length, headers]`,\nyou can use `to_json()` to get JSON or `to_dict()` to get a dict or `to_tuples()` to get a tuples.\n\n\n\u003c/details\u003e\n\n\n\n# patch()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP PATCH and returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://archlinux.org`.\n- `body` the Body data, string type, required, can be empty string.\n- `user_agent` User Agent, string type, optional, should not be empty string.\n- `max_redirects` Maximum Redirects, int type, optional, defaults to `9`, example `5`, example `1`.\n- `proxy_url` Proxy URL, string type, optional, if is `\"\"` then NO Proxy is used, defaults to `\"\"`, example `172.15.256.1:666`.\n- `proxy_auth` Proxy Auth, string type, optional, if `proxy_url` is `\"\"` then is ignored, defaults to `\"\"`.\n- `timeout` Timeout, int type, optional, Milliseconds precision, defaults to `-1`, example `9999`, example `666`.\n- `http_headers` HTTP Headers, List of Tuples type, optional, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.patch(\"http://example.com\", \"My Body Data Here\")\n```\n\n**Returns:**\nResponse, `list` type, values of the list are string type,\nvalues of the list can be empty string, the lenght of the list is always 7 items,\nthe values are like `[body, type, status, version, url, length, headers]`,\nyou can use `to_json()` to get JSON or `to_dict()` to get a dict or `to_tuples()` to get a tuples.\n\n\n\u003c/details\u003e\n\n\n# head()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP HEAD and returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://nim-lang.org`.\n- `user_agent` User Agent, string type, optional, should not be empty string.\n- `max_redirects` Maximum Redirects, int type, optional, defaults to `9`, example `5`, example `1`.\n- `proxy_url` Proxy URL, string type, optional, if is `\"\"` then NO Proxy is used, defaults to `\"\"`, example `172.15.256.1:666`.\n- `proxy_auth` Proxy Auth, string type, optional, if `proxy_url` is `\"\"` then is ignored, defaults to `\"\"`.\n- `timeout` Timeout, int type, optional, Milliseconds precision, defaults to `-1`, example `9999`, example `666`.\n- `http_headers` HTTP Headers, List of Tuples type, optional, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.head(\"http://example.com/api/something\")\n```\n\n**Returns:**\nResponse, `list` type, values of the list are string type,\nvalues of the list can be empty string, the lenght of the list is always 7 items,\nthe values are like `[body, type, status, version, url, length, headers]`,\nyou can use `to_json()` to get JSON or `to_dict()` to get a dict or `to_tuples()` to get a tuples.\n\n\n\u003c/details\u003e\n\n\n# to_dict()\n\u003cdetails\u003e\n\n**Description:** Convert the response to dict.\n\n**Arguments:**\n- `ftr_response` Response from any of the functions that return a response.\n\n**Returns:** Response, `dict` type.\n\n\u003c/details\u003e\n\n\n# to_json()\n\u003cdetails\u003e\n\n**Description:** Convert the response to Pretty-Printed JSON.\n\n**Arguments:**\n- `ftr_response` Response from any of the functions that return a response.\n\n**Returns:** Response, Pretty-Printed JSON.\n\n\u003c/details\u003e\n\n\n# to_tuples()\n\u003cdetails\u003e\n\n**Description:** Convert the response to a list of tuples.\n\n**Arguments:**\n- `ftr_response` Response from any of the functions that return a response.\n\n**Returns:** Response, list of tuples.\n\n\u003c/details\u003e\n\n\n# Extras: Go beyond requests\n\n## scraper()\n\u003cdetails\u003e\n\n**Description:**\nMulti-Threaded Ready-Made URL-Deduplicating Web Scraper from a list of URLs.\n\n![](misc/multithread-scraper.png)\n\nAll arguments are optional, it only needs the URL to get to work.\nScraper is designed to be like a 2-Step Web Scraper, that makes a first pass collecting all URL Links and then a second pass actually fetching those URLs.\nRequests are processed asynchronously. This means that it doesn’t need to wait for a request to be finished to be processed.\n\n**Arguments:**\n- `list_of_urls` List of URLs, URL must be string type, required, must not be empty list, example `[\"http://example.io\"]`.\n- `html_tag` HTML Tag to parse, string type, optional, defaults to `\"a\"` being Links, example `\"h1\"`.\n- `case_insensitive` Case Insensitive, `True` for Case Insensitive, boolean type, optional, defaults to `True`, example `True`.\n- `deduplicate_urls` Deduplicate `list_of_urls` removing repeated URLs, boolean type, optional, defaults to `False`, example `False`.\n- `threads` Passing `threads = True` uses Multi-Threading, `threads = False` will Not use Multi-Threading, boolean type, optional, omitting it will Not use Multi-Threading.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper([\"https://nim-lang.org\", \"http://example.com\"], threads=True)\n```\n\n**Returns:** Scraped Webs.\n\n\u003c/details\u003e\n\n\n\n## scraper2()\n\u003cdetails\u003e\n\n**Description:**\nMulti-Tag Ready-Made URL-Deduplicating Web Scraper from a list of URLs.\nAll arguments are optional, it only needs the URL to get to work.\nScraper is designed to be like a 2-Step Web Scraper, that makes a first pass collecting all URL Links and then a second pass actually fetching those URLs.\nRequests are processed asynchronously. This means that it doesn’t need to wait for a request to be finished to be processed.\nYou can think of this scraper as a parallel evolution of the original scraper.\n\n**Arguments:**\n- `list_of_urls` List of URLs, URL must be string type, required, must not be empty list, example `[\"http://example.io\"]`.\n- `list_of_tags` List of HTML Tags to parse, List type, optional, defaults to `[\"a\"]` being Links, example `[\"h1\", \"h2\"]`.\n- `case_insensitive` Case Insensitive, `True` for Case Insensitive, boolean type, optional, defaults to `True`, example `True`.\n- `deduplicate_urls` Deduplicate `list_of_urls` removing repeated URLs, boolean type, optional, defaults to `False`, example `False`.\n- `verbose` Verbose, print to terminal console the progress, bool type, optional, defaults to `True`, example `False`.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value, example `42`.\n- `threads` Passing `threads = True` uses Multi-Threading, `threads = False` will Not use Multi-Threading, boolean type, optional, omitting it will Not use Multi-Threading.\n- `agent` User Agent, string type, optional, must not be empty string.\n- `redirects` Maximum Redirects, integer type, optional, defaults to `5`, must be positive integer.\n- `timeout` Timeout, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `-1`, must be a positive integer value, example `42`.\n- `header` HTTP Header, any HTTP Headers can be put here, list type, optional, example `[(\"key\", \"value\")]`.\n- `proxy_url` HTTPS Proxy Full URL, string type, optional, must not be empty string.\n- `proxy_auth` HTTPS Proxy Authentication, string type, optional, defaults to `\"\"`, empty string is ignored.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper2([\"https://nim-lang.org\", \"http://example.com\"], list_of_tags=[\"h1\", \"h2\"], case_insensitive=False)\n```\n\n**Returns:** Scraped Webs.\n\n\u003c/details\u003e\n\n\n## scraper3()\n\u003cdetails\u003e\n\n**Description:**\nMulti-Tag Ready-Made URL-Deduplicating Web Scraper from a list of URLs.\n\n![](misc/multitag-scraper.png)\n\nThis Scraper is designed with lots of extra options on the arguments.\nAll arguments are optional, it only needs the URL to get to work.\nScraper is designed to be like a 2-Step Web Scraper, that makes a first pass collecting all URL Links and then a second pass actually fetching those URLs.\nYou can think of this scraper as a parallel evolution of the original scraper.\n\n**Arguments:**\n- `list_of_urls` List of URLs, URL must be string type, required, must not be empty list, example `[\"http://example.io\"]`.\n- `list_of_tags` List of HTML Tags to parse, List type, optional, defaults to `[\"a\"]` being Links, example `[\"h1\", \"h2\"]`.\n- `case_insensitive` Case Insensitive, `True` for Case Insensitive, boolean type, optional, defaults to `True`, example `True`.\n- `deduplicate_urls` Deduplicate `list_of_urls` removing repeated URLs, boolean type, optional, defaults to `False`, example `False`.\n- `start_with` Match at the start of the line, similar to `str().startswith()`, string type, optional, example `\"\u003ccite \"`.\n- `ends_with` Match at the end of the line, similar to `str().endswith()`,  string type, optional, example `\"\u003c/cite\u003e\"`.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value, example `42`.\n- `line_start` Slice the line at the start by this index, integer type, optional, defaults to `0` meaning no slicing since string start at index 0, example `3` cuts off 3 letters of the line at the start.\n- `line_end` Slice the line at the end by this *reverse* index, integer type, optional, defaults to `1` meaning no slicing since string ends at reverse index 1, example `9` cuts off 9 letters of the line at the end.\n- `pre_replacements` List of tuples of strings to replace *before* parsing, replacements are in parallel, List type, optional, example `[(\"old\", \"new\"), (\"red\", \"blue\")]` will replace `\"old\"` with `\"new\"` and will replace `\"red\"` with `\"blue\"`.\n- `post_replacements` List of tuples of strings to replace *after* parsing, replacements are in parallel, List type, optional, example `[(\"old\", \"new\"), (\"red\", \"blue\")]` will replace `\"old\"` with `\"new\"` and will replace `\"red\"` with `\"blue\"`.\n- `agent` User Agent, string type, optional, must not be empty string.\n- `redirects` Maximum Redirects, integer type, optional, defaults to `5`, must be positive integer.\n- `timeout` Timeout, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `-1`, must be a positive integer value, example `42`.\n- `header` HTTP Header, any HTTP Headers can be put here, list type, optional, example `[(\"key\", \"value\")]`.\n- `proxy_url` HTTPS Proxy Full URL, string type, optional, must not be empty string.\n- `proxy_auth` HTTPS Proxy Authentication, string type, optional, defaults to `\"\"`, empty string is ignored.\n- `verbose` Verbose, print to terminal console the progress, bool type, optional, defaults to `True`, example `False`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper3([\"https://nim-lang.org\", \"http://example.com\"], list_of_tags=[\"h1\", \"h2\"], case_insensitive=False)\n```\n\n**Returns:** Scraped Webs.\n\n\u003c/details\u003e\n\n\n## scraper4()\n\u003cdetails\u003e\n\n**Description:**\nImages and Photos Ready-Made Web Scraper from a list of URLs.\n\n![](misc/photo-scraper.png)\n\nThe Images and Photos scraped from the first URL will be put into a new sub-folder named `0`,\nImages and Photos scraped from the second URL will be put into a new sub-folder named `1`, and so on.\nAll arguments are optional, it only needs the URL to get to work.\nYou can think of this scraper as a parallel evolution of the original scraper.\n\n**Arguments:**\n- `list_of_urls` List of URLs, URL must be string type, required, must not be empty list, example `[\"https://unsplash.com/s/photos/cat\", \"https://unsplash.com/s/photos/dog\"]`.\n- `case_insensitive` Case Insensitive, `True` for Case Insensitive, boolean type, optional, defaults to `True`, example `True`.\n- `deduplicate_urls` Deduplicate `list_of_urls` removing repeated URLs, boolean type, optional, defaults to `False`, example `False`.\n- `visited_urls` Do not visit same URL twice, even if redirected into, keeps track of visited URLs, bool type, optional, defaults to `True`.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value, example `42`.\n- `folder` Directory to download Images and Photos, string type, optional, defaults to current folder, must not be empty string, example `/tmp`.\n- `force_extension` Force file extension to be this file extension, string type, optional, defaults to `\".jpg\"`, must not be empty string, example `\".png\"`.\n- `https_only` Force to download images on Secure HTTPS only ignoring plain HTTP, sometimes HTTPS may redirect to HTTP, bool type, optional, defaults to `False`, example `True`.\n- `html_output` Collect all scraped Images and Photos into 1 HTML file with all elements scraped, bool type, optional, defaults to `True`, example `False`.\n- `csv_output` Collect all scraped URLs into 1 CSV file with all links scraped, bool type, optional, defaults to `True`, example `False`.\n- `verbose` Verbose, print to terminal console the progress, bool type, optional, defaults to `True`, example `False`.\n- `print_alt` print to terminal console the `alt` attribute of the Images and Photos, bool type, optional, defaults to `False`, example `True`.\n- `picture` Scrap images from the new HTML5 `\u003cpicture\u003e` tags instead of `\u003cimg\u003e` tags, `\u003cpicture\u003e` are Responsive images for several resolutions but also you get duplicated images, bool type, optional, defaults to `False`, example `True`.\n- `agent` User Agent, string type, optional, must not be empty string.\n- `redirects` Maximum Redirects, integer type, optional, defaults to `5`, must be positive integer.\n- `timeout` Timeout, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `-1`, must be a positive integer value, example `42`.\n- `header` HTTP Header, any HTTP Headers can be put here, list type, optional, example `[(\"key\", \"value\")]`.\n- `proxy_url` HTTPS Proxy Full URL, string type, optional, must not be empty string.\n- `proxy_auth` HTTPS Proxy Authentication, string type, optional, defaults to `\"\"`, empty string is ignored.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper4([\"https://unsplash.com/s/photos/cat\", \"https://unsplash.com/s/photos/dog\"])\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n## scraper5()\n\u003cdetails\u003e\n\n**Description:**\nRecursive Web Scraper to SQLite Database, you give it an URL, it gives back an SQLite.\n\n![](misc/sqlite-scraper.png)\n\nSQLite database can be visualized with any SQLite WYSIWYG, like https://sqlitebrowser.org\nIf the script gets interrupted like with CTRL+C it will try its best to keep data consistent.\nAdditionally it will create a CSV file with all the scraped URLs.\nHTTP Headers are stored as Pretty-Printed JSON.\nDate and Time are stored as Unix Timestamps.\nAll arguments are optional, it only needs the URL and SQLite file path to get to work.\nYou can think of this scraper as a parallel evolution of the original scraper.\n\n**Arguments:**\n- `list_of_urls` List of URLs, URL must be string type, required, must not be empty list, example `[\"https://unsplash.com/s/photos/cat\", \"https://unsplash.com/s/photos/dog\"]`.\n- `sqlite_file_path` Full file path to a new SQLite Database, must be `.db` file extension, string type, required, must not be empty string, example `\"scraped_data.db\"`.\n- `skip_ends_with` Skip the URL if ends with this pattern, list type, optional, must not be empty list, example `[\".jpg\", \".pdf\"]`.\n- `case_insensitive` Case Insensitive, `True` for Case Insensitive, boolean type, optional, defaults to `True`, example `True`.\n- `deduplicate_urls` Deduplicate `list_of_urls` removing repeated URLs, boolean type, optional, defaults to `False`, example `False`.\n- `visited_urls` Do not visit same URL twice, even if redirected into, keeps track of visited URLs, bool type, optional, defaults to `True`.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value, example `42`.\n- `https_only` Force to download images on Secure HTTPS only ignoring plain HTTP, sometimes HTTPS may redirect to HTTP, bool type, optional, defaults to `False`, example `True`.\n- `only200` Only commit to Database the successful scraping pages, ignore all errors, bool type, optional, example `True`.\n- `agent` User Agent, string type, optional, must not be empty string.\n- `redirects` Maximum Redirects, integer type, optional, defaults to `5`, must be positive integer.\n- `timeout` Timeout, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `-1`, must be a positive integer value, example `42`.\n- `max_loops` Maximum total Loops to do while scraping, like a global guard for infinite redirections, integer type, optional, example `999`.\n- `max_deep` Maximum total scraping Recursive Deep, like a global guard for infinite deep recursivity, integer type, optional, example `999`.\n- `header` HTTP Header, any HTTP Headers can be put here, list type, optional, example `[(\"key\", \"value\")]`.\n- `proxy_url` HTTPS Proxy Full URL, string type, optional, must not be empty string.\n- `proxy_auth` HTTPS Proxy Authentication, string type, optional, defaults to `\"\"`, empty string is ignored.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper5([\"https://example.com\"], \"scraped_data.db\")\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n## scraper6()\n\u003cdetails\u003e\n\n**Description:**\nRegex powered Web Scraper from a list of URLs.\nScrap web content using a list of Perl Compatible Regular Expressions (PCRE standard).\nYou can configure the Regular Expressions to be case insensitive or multiline or extended.\n\nThis Scraper is designed for developers that know Regular Expressions.\n[Learn Regular Expressions.](https://github.com/ziishaned/learn-regex#translations)\n\nAll arguments are optional, it only needs the URL and the Regex to get to work.\nYou can think of this scraper as a parallel evolution of the original scraper.\n\n**Regex Arguments:**\n(Arguments focused on Regular Expression parsing and matching)\n\n- `list_of_regex` List of Perl Compatible Regular Expressions (PCRE standard) to match the URL against, List type, required, example `[\"(www|http:|https:)+[^\\s]+[\\w]\"]`.\n- `case_insensitive` Case Insensitive Regular Expressions, do caseless matching, `True` for Case Insensitive, boolean type, optional, defaults to `False`, example `True`.\n- `multiline` Multi-Line Regular Expressions, `^` and `$` match newlines within data, boolean type, optional, defaults to `False`, example `True`.\n- `extended` Extended Regular Expressions, ignore all whitespaces and `#` comments, boolean type, optional, defaults to `False`, example `True`.\n- `dot` Dot `.` matches anything, including new lines, boolean type, optional, defaults to `False`, example `True`.\n- `start_with` Perl Compatible Regular Expression to match at the start of the line, similar to `str().startswith()` but with Regular Expressions, string type, optional.\n- `ends_with`  Perl Compatible Regular Expression to match at the end of the line,  similar to `str().endswith()` but with Regular Expressions, string type, optional.\n- `post_replacement_regex` Perl Compatible Regular Expressions (PCRE standard) to replace *after* parsing, string type, optional, this option works with `post_replacement_by`, this is like a Regex post-processing, this option is for experts on Regular Expressions.\n- `post_replacement_by` string **to replace by** *after* parsing, string type, optional, this option works with `post_replacement_regex`, this is like a Regex post-processing, this option is for experts on Regular Expressions.\n- `re_start` Perl Compatible Regular Expression matchs start at this index, positive integer type, optional, defaults to `0`, this option is for experts on Regular Expressions.\n\n**Arguments:**\n- `list_of_urls` List of URLs, URL must be string type, required, must not be empty list, example `[\"http://example.io\"]`.\n- `deduplicate_urls` Deduplicate `list_of_urls` removing repeated URLs, boolean type, optional, defaults to `False`, example `False`.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value, example `42`.\n- `agent` User Agent, string type, optional, must not be empty string.\n- `redirects` Maximum Redirects, integer type, optional, defaults to `5`, must be positive integer.\n- `timeout` Timeout, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `-1`, must be a positive integer value, example `42`.\n- `header` HTTP Header, any HTTP Headers can be put here, list type, optional, example `[(\"key\", \"value\")]`.\n- `proxy_url` HTTPS Proxy Full URL, string type, optional, must not be empty string.\n- `proxy_auth` HTTPS Proxy Authentication, string type, optional, defaults to `\"\"`, empty string is ignored.\n- `verbose` Verbose, print to terminal console the progress, bool type, optional, defaults to `True`, example `False`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper6([\"http://nim-lang.org\", \"http://python.org\"], [\"(www|http:|https:)+[^\\s]+[\\w]\"])\n```\n\n**Returns:** Scraped Webs.\n\n\u003c/details\u003e\n\n\n## scraper7()\n\u003cdetails\u003e\n\n![](https://raw.githubusercontent.com/juancarlospaco/faster-than-requests/master/css_selectors.png)\n\n**Description:**\nCSS Selector powered Web Scraper. Scrap web content using a CSS Selector.\nThe CSS Syntax does NOT take Regex nor Regex-like syntax nor literal tag attribute values.\n\nAll arguments are optional, it only needs the URL and CSS Selector to get to work.\nYou can think of this scraper as a parallel evolution of the original scraper.\n\n**Arguments:**\n- `url` The URL, string type, required, must not be empty string, example `\"http://python.org\"`.\n- `css_selector` CSS Selector, string type, required, must not be empty string, example `\"body nav.class ul.menu \u003e li \u003e a\"`.\n- `agent` User Agent, string type, optional, must not be empty string.\n- `redirects` Maximum Redirects, integer type, optional, defaults to `9`, must be positive integer.\n- `timeout` Timeout, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `-1`, must be a positive integer value, example `42`.\n- `header` HTTP Header, any HTTP Headers can be put here, list type, optional, example `[(\"key\", \"value\")]`.\n- `proxy_url` HTTPS Proxy Full URL, string type, optional, must not be empty string.\n- `proxy_auth` HTTPS Proxy Authentication, string type, optional, defaults to `\"\"`, empty string is ignored.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.scraper7(\"http://python.org\", \"body \u003e div.class a#someid\")\n```\n\n```python\nimport faster_than_requests as requests\nrequests.scraper7(\"https://nim-lang.org\", \"a.pure-menu-link\")\n\n[\n  '\u003ca class=\"pure-menu-link\" href=\"/blog.html\"\u003eBlog\u003c/a\u003e',\n  '\u003ca class=\"pure-menu-link\" href=\"/features.html\"\u003eFeatures\u003c/a\u003e',\n  '\u003ca class=\"pure-menu-link\" href=\"/install.html\"\u003eDownload\u003c/a\u003e',\n  '\u003ca class=\"pure-menu-link\" href=\"/learn.html\"\u003eLearn\u003c/a\u003e',\n  '\u003ca class=\"pure-menu-link\" href=\"/documentation.html\"\u003eDocumentation\u003c/a\u003e',\n  '\u003ca class=\"pure-menu-link\" href=\"https://forum.nim-lang.org\"\u003eForum\u003c/a\u003e',\n  '\u003ca class=\"pure-menu-link\" href=\"https://github.com/nim-lang/Nim\"\u003eSource\u003c/a\u003e'\n]\n```\n\nMore examples:\nhttps://github.com/juancarlospaco/faster-than-requests/blob/master/examples/web_scraper_via_css_selectors.py\n\n**Returns:** Scraped Webs.\n\n\u003c/details\u003e\n\n\n## websocket_ping()\n\u003cdetails\u003e\n\n**Description:**\nWebSocket Ping.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `\"ws://echo.websocket.org\"`.\n- `data` data to send, string type, optional, can be empty string, default is empty string, example `\"\"`.\n- `hangup` Close the Socket without sending a close packet, optional, default is `False`, not sending close packet can be faster.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.websocket_ping(\"ws://echo.websocket.org\")\n```\n\n**Returns:** Response, `string` type, can be empty string.\n\n\u003c/details\u003e\n\n\n## websocket_send()\n\u003cdetails\u003e\n\n**Description:**\nWebSocket send data, binary or text.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `\"ws://echo.websocket.org\"`.\n- `data` data to send, string type, optional, can be empty string, default is empty string, example `\"\"`.\n- `is_text` if `True` data is sent as Text else as Binary, optional, default is `False`.\n- `hangup` Close the Socket without sending a close packet, optional, default is `False`, not sending close packet can be faster.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.websocket_send(\"ws://echo.websocket.org\", \"data here\")\n```\n\n**Returns:** Response, `string` type.\n\n\u003c/details\u003e\n\n\n## get2str()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL string, makes an HTTP GET and returns a string with the response Body.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://archlinux.org`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.get2str(\"http://example.com\")\n```\n\n**Returns:** Response body, `string` type, can be empty string.\n\n\u003c/details\u003e\n\n\n\n## get2str2()\n\u003cdetails\u003e\n\n**Description:**\nTakes a list of URLs, makes 1 HTTP GET for each URL, and returns a list of strings with the response Body.\nThis makes all `GET` fully parallel, in a single Thread, in a single Process.\n\n**Arguments:**\n- `list_of_urls` A list of the remote URLs, list type, required. Objects inside the list must be string type.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.get2str2([\"http://example.com/foo\", \"http://example.com/bar\"]) # Parallel GET\n```\n\n**Returns:**\nList of response bodies, `list` type, values of the list are string type,\nvalues of the list can be empty string, can be empty list.\n\n\u003c/details\u003e\n\n\n## get2dict()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL, makes an HTTP GET, returns a dict with the response Body.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://alpinelinux.org`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.get2dict(\"http://example.com\")\n```\n\n**Returns:**\nResponse, `dict` type, values of the dict are string type,\nvalues of the dict can be empty string, but keys are always consistent.\n\n\u003c/details\u003e\n\n\n\n## get2json()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL, makes an HTTP GET, returns a Minified Computer-friendly single-line JSON with the response Body.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string, example `https://alpinelinux.org`.\n- `pretty_print` Pretty Printed JSON, optional, defaults to `False`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.get2json(\"http://example.com\", pretty_print=True)\n```\n\n**Returns:** Response Body, Pretty-Printed JSON.\n\n\u003c/details\u003e\n\n\n\n## post2str()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL, makes an HTTP POST, returns the response Body as string type.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string.\n- `body` the Body data, string type, required, can be empty string.\n- `multipart_data` MultiPart data, optional, list of tupes type, must not be empty list, example `[(\"key\", \"value\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.post2str(\"http://example.com/api/foo\", \"My Body Data Here\")\n```\n\n**Returns:** Response body, `string` type, can be empty string.\n\n\u003c/details\u003e\n\n\n\n## post2dict()\n\u003cdetails\u003e\n\n**Description:**\nTakes an URL, makes a HTTP POST on that URL, returns a dict with the response.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string.\n- `body` the Body data, string type, required, can be empty string.\n- `multipart_data` MultiPart data, optional, list of tupes type, must not be empty list, example `[(\"key\", \"value\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.post2dict(\"http://example.com/api/foo\", \"My Body Data Here\")\n```\n\n**Returns:**\nResponse, `dict` type, values of the dict are string type,\nvalues of the dict can be empty string, but keys are always consistent.\n\n\u003c/details\u003e\n\n\n\n## post2json()\n\u003cdetails\u003e\n\n**Description:**\nTakes a list of URLs, makes 1 HTTP GET for each URL, returns a list of responses.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string.\n- `body` the Body data, string type, required, can be empty string.\n- `multipart_data` MultiPart data, optional, list of tupes type, must not be empty list, example `[(\"key\", \"value\")]`.\n- `pretty_print` Pretty Printed JSON, optional, defaults to `False`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.post2json(\"http://example.com/api/foo\", \"My Body Data Here\")\n```\n\n**Returns:** Response, string type.\n\n\u003c/details\u003e\n\n\n\n## post2list()\n\u003cdetails\u003e\n\n**Description:**\nTakes a list of URLs, makes 1 HTTP POST for each URL, returns a list of responses.\n\n**Arguments:**\n- `list_of_urls` the remote URLS, list type, required, the objects inside the list must be string type.\n- `body` the Body data, string type, required, can be empty string.\n- `multipart_data` MultiPart data, optional, list of tupes type, must not be empty list, example `[(\"key\", \"value\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.post2list(\"http://example.com/api/foo\", \"My Body Data Here\")\n```\n\n**Returns:**\nList of response bodies, `list` type, values of the list are string type,\nvalues of the list can be empty string, can be empty list.\n\n\u003c/details\u003e\n\n\n\n## download()\n\u003cdetails\u003e\n\n**Description:**\nTakes a list of URLs, makes 1 HTTP GET for each URL, returns a list of responses.\n\n**Arguments:**\n- `url` the remote URL, string type, required, must not be empty string.\n- `filename` the local filename, string type, required, must not be empty string, full path recommended, can be relative path, includes file extension.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.download(\"http://example.com/api/foo\", \"my_file.ext\")\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n\n## download2()\n\u003cdetails\u003e\n\n**Description:**\nTakes a list of URLs, makes 1 HTTP GET Download for each URL of the list.\n\n**Arguments:**\n- `list_of_files` list of tuples, tuples must be 2 items long, first item is URL and second item is filename.\nThe remote URL, string type, required, must not be empty string, is the first item on the tuple.\nThe local filename, string type, required, must not be empty string, can be full path, can be relative path, must include file extension.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value.\n- `threads` Passing `threads = True` uses Multi-Threading, `threads = False` will Not use Multi-Threading, omitting it will Not use Multi-Threading.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.download2([(\"http://example.com/cat.jpg\", \"kitten.jpg\"), (\"http://example.com/dog.jpg\", \"doge.jpg\")])\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n## download3()\n\u003cdetails\u003e\n\n**Description:**\nTakes a list of URLs, makes 1 HTTP GET Download for each URL of the list.\nIt will Retry again and again in loop until the file is downloaded or `tries` is `0`, whatever happens first.\nIf all retries have failed and `tries` is `0` it will error out.\n\n**Arguments:**\n- `list_of_files` list of tuples, tuples must be 2 items long, first item is URL and second item is filename.\nThe remote URL, string type, required, must not be empty string, is the first item on the tuple.\nThe local filename, string type, required, must not be empty string, can be full path, can be relative path, must include file extension.\n- `delay` Delay between a download and the next one, MicroSeconds precision (1000 = 1 Second), integer type, optional, defaults to `0`, must be a positive integer value.\n- `tries` how many Retries to try, positive integer type, optional, defaults to `9`, must be a positive integer value.\n- `backoff` Back-Off between retries, positive integer type, optional, defaults to `2`, must be a positive integer value.\n- `jitter` Jitter applied to the Back-Off between retries (Modulo math operation), positive integer type, optional, defaults to `2`, must be a positive integer value.\n- `verbose` be Verbose, bool type, optional, defaults to `True`.\n\n**Returns:** None.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.download3(\n  [(\"http://INVALID/cat.jpg\", \"kitten.jpg\"), (\"http://INVALID/dog.jpg\", \"doge.jpg\")],\n  delay = 1, tries = 9, backoff = 2, jitter = 2, verbose = True,\n)\n```\n\nExamples of Failed download output (intended):\n\n```console\n$ python3 example_fail_all_retry.py\n\nRetry: 3 of 3\n(url: \"http://NONEXISTENT\", filename: \"a.json\")\nNo such file or directory\nAdditional info: \"Name or service not known\"\nRetrying in 64 microseconds...\nRetry: 2 of 3\n(url: \"http://NONEXISTENT\", filename: \"a.json\")\nNo such file or directory\nAdditional info: \"Name or service not known\"\nRetrying in 128 microseconds (Warning: This is the last Retry!).\nRetry: 1 of 3\n(url: \"http://NONEXISTENT\", filename: \"a.json\")\nNo such file or directory\nAdditional info: \"Name or service not known\"\nRetrying in 256 microseconds (Warning: This is the last Retry!).\nTraceback (most recent call last):\n  File \"example_fail_all_retry.py\", line 3, in \u003cmodule\u003e\n    downloader.download3()\n  ...\n\n$\n```\n\n\u003c/details\u003e\n\n\n## set_headers()\n\u003cdetails\u003e\n\n**Description:**\nSet the HTTP Headers from the arguments.\n**This is for the functions that NOT allow `http_headers` as argument.**\n\n**Arguments:**\n- `http_headers` HTTP Headers, List of Tuples type, required, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n  List of tuples, tuples must be 2 items long, must not be empty list, must not be empty tuple,\n  the first item of the tuple is the key and second item of the tuple is value,\n  keys must not be empty string, values can be empty string, both must the stripped.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.set_headers(headers = [(\"key\", \"value\")])\n```\n\n```python\nimport faster_than_requests as requests\nrequests.set_headers([(\"key0\", \"value0\"), (\"key1\", \"value1\")])\n```\n\n```python\nimport faster_than_requests as requests\nrequests.set_headers([(\"content-type\", \"text/plain\"), (\"dnt\", \"1\")])\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n## multipartdata2str()\n\u003cdetails\u003e\n\n**Description:**\nTakes MultiPart Data and returns a string representation. Converts MultipartData to 1 human readable string.\nThe human-friendly representation is not machine-friendly, so is not Serialization nor Stringification, just for humans.\nIt is faster and different than stdlib `parse_multipart`.\n\n**Arguments:**\n- `multipart_data` MultiPart data, optional, list of tupes type, must not be empty list, example `[(\"key\", \"value\")]`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.multipartdata2str([(\"key\", \"value\")])\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## datauri()\n\u003cdetails\u003e\n\n**Description:**\nTakes data and returns a [standard Base64 Data URI (RFC-2397).](https://tools.ietf.org/html/rfc2397)\nAt the time of writing Python stdlib does not have a function that returns Data URI (RFC-2397) on `base64` module.\nThis can be used as URL on HTML/CSS/JS. It is faster and different than stdlib `base64`.\n\n**Arguments:**\n- `data` Arbitrary Data, string type, required.\n- `mime` MIME Type of `data`, string type, required, example `\"text/plain\"`.\n- `encoding` Encoding, string type, required, defaults to `\"utf-8\"`, example `\"utf-8\"`, `\"utf-8\"` is recommended.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.datauri(\"Nim\", \"text/plain\")\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## urlparse()\n\u003cdetails\u003e\n\n**Description:**\nParse any URL and return parsed primitive values like\n`scheme`, `username`, `password`, `hostname`, `port`, `path`, `query`, `anchor`, `opaque`, etc.\nIt is faster and different than stdlib `urlparse`.\n\n**Arguments:**\n- `url` The URL, string type, required.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.urlparse(\"https://nim-lang.org\")\n```\n\n**Returns:** `scheme`, `username`, `password`, `hostname`, `port`, `path`, `query`, `anchor`, `opaque`, etc.\n\n\u003c/details\u003e\n\n\n## urlencode()\n\u003cdetails\u003e\n\n**Description:**\nEncodes a URL according to RFC-3986, string to string.\nIt is faster and different than stdlib `urlencode`.\n\n**Arguments:**\n- `url` The URL, string type, required.\n- `use_plus` When `use_plus` is `true`, spaces are encoded as `+` instead of `%20`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.urlparse(\"https://nim-lang.org\", use_plus = True)\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## urldecode()\n\u003cdetails\u003e\n\n**Description:**\nDecodes a URL according to RFC-3986, string to string.\nIt is faster and different than stdlib `unquote`.\n\n**Arguments:**\n- `url` The URL, string type, required.\n- `use_plus` When `use_plus` is `true`, spaces are decoded as `+` instead of `%20`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.urldecode(r\"https%3A%2F%2Fnim-lang.org\", use_plus = False)\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## encodequery()\n\u003cdetails\u003e\n\n**Description:**\nEncode a URL according to RFC-3986, string to string.\nIt is faster and different than stdlib `quote_plus`.\n\n**Arguments:**\n- `query` List of Tuples, required, example `[(\"key\", \"value\")]`, example `[(\"DNT\", \"1\")]`.\n- `omit_eq` If the value is an empty string then the `=\"\"` is omitted, unless `omit_eq` is `false`.\n- `use_plus` When `use_plus` is `true`, spaces are decoded as `+` instead of `%20`.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.encodequery([(\"key\", \"value\")], use_plus = True, omit_eq = True)\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## encodexml()\n\u003cdetails\u003e\n\n**Description:**\nConvert the characters `\u0026`, `\u003c`, `\u003e`, `\"` in a string to an HTML-safe string, output is Valid XML.\nUse this if you need to display text that might contain such characters in HTML, SVG or XML.\nIt is faster and different than stdlib `html.escape`.\n\n**Arguments:**\n- `s` Arbitrary string, required.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.encodexml(\"\u003ch1\u003eHello World\u003c/h1\u003e\")\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## minifyhtml()\n\u003cdetails\u003e\n\n**Description:**\nFast HTML and SVG Minifier. Not Obfuscator.\n\n**Arguments:**\n- `html` HTML string, required.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.minifyhtml(\"\u003ch1\u003eHello\u003c/h1\u003e          \u003ch1\u003eWorld\u003c/h1\u003e\")\n```\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## gen_auth_header()\n\u003cdetails\u003e\n\n**Description:**\nHelper for HTTP Authentication headers.\n\nReturns 1 string kinda like \"Basic base64(username):base64(username)\",\nso it can be used like `[ (\"Authorization\": gen_auth_header(\"username\", \"password\") ) ]`.\nSee https://github.com/juancarlospaco/faster-than-requests/issues/168#issuecomment-858999317\n\n**Arguments:**\n- `username` Username string, must not be empty string, required.\n- `password` Password string, must not be empty string, required.\n\n**Returns:** string.\n\n\u003c/details\u003e\n\n\n## debugs\n\u003cdetails\u003e\n**Description:**\nDebug the internal Configuration of the library, takes no arguments, returns nothing,\nprints the pretty-printed human-friendly multi-line JSON Configuration to standard output terminal.\n\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.debugs()\n```\n\n**Arguments:** None.\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n## optimizeGC()\n\u003cdetails\u003e\n\n**Description:**\nThis module uses compile-time deterministic memory management GC (kinda like Rust, but for Python).\nPython at run-time makes a pause, runs a Garbage Collector, and resumes again after the pause.\n\n`gctricks.optimizeGC` allows you to omit the Python GC pauses at run-time temporarily on a context manager block,\nthis is the proper way to use this module for Benchmarks!, this is optional but recommended,\nwe did not invent this, this is inspired from work from Instagram Engineering team and battle tested by them:\n\n- https://instagram-engineering.com/dismissing-python-garbage-collection-at-instagram-4dca40b29172\n\nThis is NOT a function, it is a context manager, it takes no arguments and wont return.\n\nThis calls `init_client()` at start and `close_client()` at end automatically.\n\nExamples:\n\n```python\nfrom gctricks import optmizeGC\n\nwith optmizeGC:\n  # All your HTTP code here. Chill the GC. Calls init_client() and close_client() automatically.\n\n# GC run-time pauses enabled again.\n```\n\n\u003c/details\u003e\n\n\n## init_client()\n\u003cdetails\u003e\n\n**Description:**\nInstantiate the HTTP Client object, for deferred initialization, call it before the start of all HTTP operations.\n\n`get()`, `post()`, `put()`, `patch()`, `delete()`, `head()` do NOT need this, because they auto-init,\nthis exist for performance reasons to defer the initialization and was requested by the community.\n\nThis is optional but recommended.\n\nRead `optimizeGC` documentation before using.\n\n**Arguments:** None.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\nrequests.init_client()\n# All your HTTP code here.\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n## close_client()\n\u003cdetails\u003e\n\n**Description:**\nTear down the HTTP Client object, for deferred de-initialization, call it after the end of all HTTP operations.\n\n`get()`, `post()`, `put()`, `patch()`, `delete()`, `head()` do NOT need this, because they auto-init,\nthis exist for performance reasons to defer the de-initialization and was requested by the community.\n\nThis is optional but recommended.\n\nRead `optimizeGC` documentation before using.\n\n**Arguments:** None.\n\nExamples:\n\n```python\nimport faster_than_requests as requests\n# All your HTTP code here.\nrequests.close_client()\n```\n\n**Returns:** None.\n\n\u003c/details\u003e\n\n\n[**For more Examples check the Examples and Tests.**](https://github.com/juancarlospaco/faster-than-requests/blob/master/examples/example.py)\n\nInstead of having a pair of functions with a lot of arguments that you should provide to make it work,\nwe have tiny functions with very few arguments that do one thing and do it as fast as possible.\n\nA lot of functions are oriented to Data Science, Big Data, Open Data, Web Scrapping, working with HTTP REST JSON APIs.\n\n\n# Install\n\n- `pip install faster_than_requests`\n\n\n# Docker\n\n- Make a quick test drive on Docker!.\n\n```bash\n$ ./build-docker.sh\n$ ./run-docker.sh\n$ ./server4benchmarks \u0026  # Inside Docker.\n$ python3 benchmark.py   # Inside Docker.\n```\n\n\n# Dependencies\n\n- **None**\n\n\n# Platforms\n\n- ✅ Linux\n- ✅ Windows\n- ✅ Mac\n- ✅ Android\n- ✅ Raspberry Pi\n- ✅ BSD\n\n\n# Extras\n\nMore Faster Libraries...\n\n- https://github.com/juancarlospaco/faster-than-csv#faster-than-csv\n- https://github.com/juancarlospaco/faster-than-walk#faster-than-walk\n- We want to make Open Source faster, better, stronger.\n\n\n# Requisites\n\n- Python 3.\n- 64 Bit.\n\n\n# Windows\n\n- Documentation assumes experience with Git, GitHub, cmd, Compiled software, PC with Administrator.\n- If installation fails on Windows, just use the Source Code:\n\n![win-compile](https://user-images.githubusercontent.com/1189414/63147831-b8bf6100-bfd5-11e9-9e6e-91d61040f139.png \"Git Clone and Compile on Windows 10 with only Git and Nim installed, just 2 commands!\")\n\n**The only software needed is [Git for Windows](https://github.com/git-for-windows/git/releases/latest) and [Nim](https://github.com/dom96/choosenim#windows).**\n\nReboot after install. Administrator required for install. Everything must be 64Bit.\n\nIf that fails too, dont waste time and go directly for [Docker for Windows.](https://docs.docker.com/docker-for-windows).\n\nFor info about how to install [Git for Windows](https://github.com/git-for-windows/git/releases/latest), read [Git for Windows](https://github.com/git-for-windows/git/releases/latest) Documentation.\n\n[For info about how to install Nim, read Nim Documentation.](https://nim-lang.org/install.html)\n\nFor info about how to install [Docker for Windows.](https://docs.docker.com/docker-for-windows), read [Docker for Windows.](https://docs.docker.com/docker-for-windows) Documentation.\n\n[GitHub Actions Build everything from zero on each push, use it as guidance too.](https://github.com/juancarlospaco/faster-than-requests/actions?query=workflow%3APYTHON)\n\n- Git Clone and Compile on Windows 10 on just 2 commands!.\n- [Alternatively you can try Docker for Windows.](https://docs.docker.com/docker-for-windows)\n- [Alternatively you can try WSL for Windows.](https://docs.microsoft.com/en-us/windows/wsl/about)\n- **The file extension must be `.pyd`, NOT `.dll`. Compile with `-d:ssl` to use HTTPS.**\n\n```\nnimble install nimpy\nnim c -d:ssl -d:danger --app:lib --tlsEmulation:on --out:faster_than_requests.pyd faster_than_requests.nim\n```\n\n\n# Sponsors\n\n- **Become a Sponsor and help improve this library with the features you want!, we need Sponsors!.**\n\n\u003cdetails\u003e \n\u003csummary title=\"Send Bitcoin\"\u003e\u003ckbd\u003e Bitcoin BTC \u003c/kbd\u003e\u003c/summary\u003e\n\n**BEP20 Binance Smart Chain Network BSC**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n**BTC Bitcoin Network**\n```\n1Pnf45MgGgY32X4KDNJbutnpx96E4FxqVi\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e \n\u003csummary\u003e\u003ckbd\u003e Ethereum ETH \u003c/kbd\u003e \u003ckbd\u003e Dai DAI \u003c/kbd\u003e \u003ckbd\u003e Uniswap UNI \u003c/kbd\u003e \u003ckbd\u003e Axie Infinity AXS \u003c/kbd\u003e \u003ckbd\u003e Smooth Love Potion SLP \u003c/kbd\u003e \u003c/summary\u003e\n\n**BEP20 Binance Smart Chain Network BSC**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n**ERC20 Ethereum Network**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n\u003c/details\u003e\n\u003cdetails\u003e \n\u003csummary title=\"Send Tether\"\u003e\u003ckbd\u003e Tether USDT \u003c/kbd\u003e\u003c/summary\u003e\n\n**BEP20 Binance Smart Chain Network BSC**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n**ERC20 Ethereum Network**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n**TRC20 Tron Network**\n```\nTWGft53WgWvH2mnqR8ZUXq1GD8M4gZ4Yfu\n```\n\u003c/details\u003e\n\u003cdetails\u003e \n\u003csummary title=\"Send Solana\"\u003e\u003ckbd\u003e Solana SOL \u003c/kbd\u003e\u003c/summary\u003e\n\n**BEP20 Binance Smart Chain Network BSC**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n**SOL Solana Network**\n```\nFKaPSd8kTUpH7Q76d77toy1jjPGpZSxR4xbhQHyCMSGq\n```\n\u003c/details\u003e\n\u003cdetails\u003e \n\u003csummary title=\"Send Cardano\"\u003e\u003ckbd\u003e Cardano ADA \u003c/kbd\u003e\u003c/summary\u003e\n\n**BEP20 Binance Smart Chain Network BSC**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n**ADA Cardano Network**\n```\nDdzFFzCqrht9Y1r4Yx7ouqG9yJNWeXFt69xavLdaeXdu4cQi2yXgNWagzh52o9k9YRh3ussHnBnDrg7v7W2hSXWXfBhbo2ooUKRFMieM\n```\n\u003c/details\u003e\n\u003cdetails\u003e \n\u003csummary title=\"Send Sandbox\"\u003e\u003ckbd\u003e Sandbox SAND \u003c/kbd\u003e \u003ckbd\u003e Decentraland MANA \u003c/kbd\u003e\u003c/summary\u003e\n\n**ERC20 Ethereum Network**\n```\n0xb78c4cf63274bb22f83481986157d234105ac17e\n```\n\u003c/details\u003e\n\u003cdetails\u003e \n\u003csummary title=\"Send Algorand\"\u003e\u003ckbd\u003e Algorand ALGO \u003c/kbd\u003e\u003c/summary\u003e\n\n**ALGO Algorand Network**\n```\nWM54DHVZQIQDVTHMPOH6FEZ4U2AU3OBPGAFTHSCYWMFE7ETKCUUOYAW24Q\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e \n\u003csummary title=\"Send via Binance Pay\"\u003e Binance \u003c/summary\u003e\n  \nhttps://pay.binance.com/en/checkout/e92e536210fd4f62b426ea7ee65b49c3\n\u003c/details\u003e\n\n\n# FAQ\n\n- Whats the idea, inspiration, reason, etc ?.\n\n[Feel free to Fork, Clone, Download, Improve, Reimplement, Play with this Open Source. Make it 10 times faster, 10 times smaller.](http://tonsky.me/blog/disenchantment)\n\n- This works with SSL ?.\n\nYes.\n\n- This works without SSL ?.\n\nYes.\n\n- This requires Cython ?.\n\nNo.\n\n- This runs on PyPy ?.\n\nNo.\n\n- This runs on Python2 ?.\n\nI dunno. (Not supported)\n\n- This runs on 32Bit ?.\n\nNo.\n\n- This runs with Clang ?.\n\nNo.\n\n- Where to get help ?.\n\nhttps://github.com/juancarlospaco/faster-than-requests/issues\n\n- How to set the URL ?.\n\n`url=\"http://example.com\"` (1st argument always).\n\n- How to set the HTTP Body ?.\n\n`body=\"my body\"`\n\n- How to set an HTTP Header key=value ?.\n\n[set_headers()](https://github.com/juancarlospaco/faster-than-requests#set_headers)\n\n- How can be faster than PyCurl ?.\n\nI dunno.\n\n- Why use Tuple instead of Dict for HTTP Headers ?.\n\nFor speed performance reasons, `dict` is slower, bigger, heavier and mutable compared to `tuple`.\n\n- Why needs 64Bit ?.\n\nMaybe it works on 32Bit, but is not supported, integer sizes are too small, and performance can be worse.\n\n- Why needs Python 3 ?.\n\nMaybe it works on Python 2, but is not supported, and performance can be worse, we suggest to migrate to Python3.\n\n- Can I wrap the functions on a `try: except:` block ?.\n\nFunctions do not have internal `try: except:` blocks,\nso you can wrap them inside `try: except:` blocks if you need very resilient code.\n\n- PIP fails to install or fails build the wheel ?.\n\nAdd at the end of the PIP install command:\n\n` --isolated --disable-pip-version-check --no-cache-dir --no-binary :all: `\n\nNot my Bug.\n\n- How to Build the project ?.\n\n`build.sh` or `build.nims`\n\n- How to Package the project ?.\n\n`package.sh` or `package.nims`\n\n- This requires Nimble ?.\n\nNo.\n\n- Whats the unit of measurement for speed ?.\n\nUnmmodified raw output of Python `timeit` module.\n\nPlease send Pull Request to Python to improve the output of `timeit`.\n\n- The LoC is a lie, not counting the lines of code of the Compiler ?.\n\nProjects that use Cython wont count the whole Cython on the LoC, so we wont neither.\n\n\n# Stars\n\n![](https://starchart.cc/juancarlospaco/faster-than-requests.svg \"Star faster-than-requests on GitHub!\")\n:star: [@juancarlospaco](https://github.com/juancarlospaco '2022-02-15')\t\n:star: [@nikitavoloboev](https://github.com/nikitavoloboev '2022-02-15')\t\n:star: [@5u4](https://github.com/5u4 '2022-02-16')\t\n:star: [@CKristensen](https://github.com/CKristensen '2022-02-16')\t\n:star: [@Lips7](https://github.com/Lips7 '2022-02-17')\t\n:star: [@zeandrade](https://github.com/zeandrade '2022-02-17')\t\n:star: [@SoloDevOG](https://github.com/SoloDevOG '2022-02-18')\t\n:star: [@AM-I-Human](https://github.com/AM-I-Human '2022-02-19')\t\n:star: [@pauldevos](https://github.com/pauldevos '2022-02-20')\t\n:star: [@divanovGH](https://github.com/divanovGH '2022-02-21')\t\n:star: [@ali-sajjad-rizavi](https://github.com/ali-sajjad-rizavi '2022-02-23')\t\n:star: [@George2901](https://github.com/George2901 '2022-03-01')\t\n:star: [@jeaps17](https://github.com/jeaps17 '2022-03-01')\t\n:star: [@TeeWallz](https://github.com/TeeWallz '2022-03-04')\t\n:star: [@Shinji-Mimura](https://github.com/Shinji-Mimura '2022-03-18')\t\n:star: [@oozdemir83](https://github.com/oozdemir83 '2022-03-18')\t\n:star: [@aaman007](https://github.com/aaman007 '2022-03-18')\t\n:star: [@dungtq](https://github.com/dungtq '2022-03-19')\t\n:star: [@bonginkosi0607](https://github.com/bonginkosi0607 '2022-03-20')\t\n:star: [@4nzor](https://github.com/4nzor '2022-03-20')\t\n:star: [@CyberLionsNFT](https://github.com/CyberLionsNFT '2022-03-24')\t\n:star: [@Lyapsus](https://github.com/Lyapsus '2022-03-24')\t\n:star: [@boskuv](https://github.com/boskuv '2022-03-28')\t\n:star: [@jckli](https://github.com/jckli '2022-03-28')\t\n:star: [@VitSimon](https://github.com/VitSimon '2022-03-29')\t\n:star: [@zjmdp](https://github.com/zjmdp '2022-03-30')\t\n:star: [@maxclac](https://github.com/maxclac '2022-03-31')\t\n:star: [@krishna2206](https://github.com/krishna2206 '2022-03-31')\t\n:star: [@KhushC-03](https://github.com/KhushC-03 '2022-03-31')\t\n:star: [@nicksnell](https://github.com/nicksnell '2022-04-01')\t\n:star: [@skandix](https://github.com/skandix '2022-04-02')\t\n:star: [@gioleppe](https://github.com/gioleppe '2022-04-08')\t\n:star: [@mvandermeulen](https://github.com/mvandermeulen '2022-04-11')\t\n:star: [@Vexarr](https://github.com/Vexarr '2022-04-13')\t\n:star: [@baajarmeh](https://github.com/baajarmeh '2022-04-13')\t\n:star: [@znel2002](https://github.com/znel2002 '2022-04-13')\t\n:star: [@matkuki](https://github.com/matkuki '2022-04-14')\t\n:star: [@SmartManoj](https://github.com/SmartManoj '2022-04-16')\t\n:star: [@SmartManoj](https://github.com/SmartManoj '2022-04-21')\t\n:star: [@Zardex1337](https://github.com/Zardex1337 '2022-05-08')\t\n:star: [@jocago](https://github.com/jocago '2022-05-09')\t\n:star: [@gnimmel](https://github.com/gnimmel '2022-05-11')\t\n:star: [@sting8k](https://github.com/sting8k '2022-05-13')\t\n:star: [@c4p-n1ck](https://github.com/c4p-n1ck '2022-05-13')\t\n:star: [@w0xi](https://github.com/w0xi '2022-05-15')\t\n:star: [@Bing-su](https://github.com/Bing-su '2022-05-16')\t\n:star: [@AdrianCert](https://github.com/AdrianCert '2022-05-18')\t\n:star: [@asanoop24](https://github.com/asanoop24 '2022-05-18')\t\n:star: [@zaphodfortytwo](https://github.com/zaphodfortytwo '2022-05-19')\t\n:star: [@Ozerioss](https://github.com/Ozerioss '2022-05-20')\t\n:star: [@nkot56297](https://github.com/nkot56297 '2022-05-21')\t\n:star: [@sendyputra](https://github.com/sendyputra '2022-05-22')\t\n:star: [@thedrow](https://github.com/thedrow '2022-05-23')\t\n:star: [@MinhHuyDev](https://github.com/MinhHuyDev '2022-05-24')\t\n:star: [@rapjul](https://github.com/rapjul '2022-05-27')\t\n:star: [@Arthavruksha](https://github.com/Arthavruksha '2022-05-31')\t\n:star: [@xdroff](https://github.com/xdroff '2022-05-31')\t\n:star: [@ShodhArthavruksha](https://github.com/ShodhArthavruksha '2022-06-01')\t\n:star: [@aziddddd](https://github.com/aziddddd '2022-06-01')\t\n:star: [@breezechen](https://github.com/breezechen '2022-06-02')\t\n:star: [@TobeTek](https://github.com/TobeTek '2022-06-07')\t\n:star: [@antonpetrov145](https://github.com/antonpetrov145 '2022-06-09')\t\n:star: [@MartianDominic](https://github.com/MartianDominic '2022-06-14')\t\n:star: [@sk37025](https://github.com/sk37025 '2022-06-15')\t\n:star: [@Alexb309](https://github.com/Alexb309 '2022-06-16')\t\n:star: [@alimp5](https://github.com/alimp5 '2022-06-17')\t\n:star: [@oldhroft](https://github.com/oldhroft '2022-06-25')\t\n:star: [@davidcralph](https://github.com/davidcralph '2022-06-25')\t\n:star: [@rainmana](https://github.com/rainmana '2022-06-25')\t\n:star: [@amitdo](https://github.com/amitdo '2022-07-03')\t\n:star: [@atlassion](https://github.com/atlassion '2022-07-04')\t\n:star: [@cytsai1008](https://github.com/cytsai1008 '2022-07-05')\t\n:star: [@bsouthern](https://github.com/bsouthern '2022-07-07')\t\n:star: [@techrattt](https://github.com/techrattt '2022-07-09')\t\n:star: [@vnicetn](https://github.com/vnicetn '2022-07-11')\t\n:star: [@Perry-xD](https://github.com/Perry-xD '2022-07-12')\t\n:star: [@israelvf](https://github.com/israelvf '2022-07-13')\t\n:star: [@BernardoOlisan](https://github.com/BernardoOlisan '2022-07-14')\t\n:star: [@ZenoMilk12](https://github.com/ZenoMilk12 '2022-07-19')\t\n:star: [@rundef](https://github.com/rundef '2022-07-20')\t\n:star: [@semihyesilyurt](https://github.com/semihyesilyurt '2022-07-20')\t\n:star: [@dunaevv](https://github.com/dunaevv '2022-07-21')\t\n:star: [@mlueckl](https://github.com/mlueckl '2022-07-21')\t\n:star: [@johnrlive](https://github.com/johnrlive '2022-07-24')\t\n:star: [@CrazyBonze](https://github.com/CrazyBonze '2022-07-28')\t\n:star: [@v-JiangNan](https://github.com/v-JiangNan '2022-07-31')\t\n:star: [@justfly50](https://github.com/justfly50 '2022-07-31')\t\n:star: [@mamert](https://github.com/mamert '2022-08-03')\t\n:star: [@ccamateur](https://github.com/ccamateur '2022-08-07')\t\n:star: [@5l1v3r1](https://github.com/5l1v3r1 '2022-08-07')\t\n:star: [@Wykiki](https://github.com/Wykiki '2022-08-08')\t\n:star: [@Kladdkaka](https://github.com/Kladdkaka '2022-08-09')\t\n:star: [@giubaru](https://github.com/giubaru '2022-08-10')\t\n:star: [@eamigo86](https://github.com/eamigo86 '2022-08-12')\t\n:star: [@eadwinCode](https://github.com/eadwinCode '2022-08-12')\t\n:star: [@s4ke](https://github.com/s4ke '2022-08-13')\t\n:star: [@DG4MES](https://github.com/DG4MES '2022-08-14')\t\n:star: [@AlexJupiterian](https://github.com/AlexJupiterian '2022-08-16')\t\n:star: [@baodinhaaa](https://github.com/baodinhaaa '2022-08-19')\t\n:star: [@a-golda](https://github.com/a-golda '2022-08-23')\t\n:star: [@Furkan-izgi](https://github.com/Furkan-izgi '2022-08-25')\t\n:star: [@Abdulvoris101](https://github.com/Abdulvoris101 '2022-08-31')\t\n:star: [@devlenni](https://github.com/devlenni '2022-09-12')\t\n:star: [@kasahh](https://github.com/kasahh '2022-09-15')\t\n:star: [@vishaltanwar96](https://github.com/vishaltanwar96 '2022-09-16')\t\n:star: [@codehangen](https://github.com/codehangen '2022-09-16')\t\n:star: [@svenko99](https://github.com/svenko99 '2022-09-20')\t\n:star: [@kb1900](https://github.com/kb1900 '2022-09-27')\t\n:star: [@lusteroak](https://github.com/lusteroak '2022-10-03')\t\n:star: [@nitheesh-cpu](https://github.com/nitheesh-cpu '2022-10-06')\t\n:star: [@techpixel](https://github.com/techpixel '2022-10-06')\t\n:star: [@tk-iitd](https://github.com/tk-iitd '2022-10-07')\t\n:star: [@smartniz](https://github.com/smartniz '2022-10-13')\t\n:star: [@popcrocks](https://github.com/popcrocks '2022-10-13')\t\n:star: [@senic35](https://github.com/senic35 '2022-10-14')\t\n:star: [@NychetheAwesome](https://github.com/NychetheAwesome '2022-10-17')\t\n:star: [@rafalohaki](https://github.com/rafalohaki '2022-10-17')\t\n:star: [@Danipulok](https://github.com/Danipulok '2022-10-19')\t\n:star: [@lwinkelm](https://github.com/lwinkelm '2022-10-20')\t\n:star: [@sunlei](https://github.com/sunlei '2022-10-21')\t\n:star: [@Minnikeswar](https://github.com/Minnikeswar '2022-10-25')\t\n:star: [@theol-git](https://github.com/theol-git '2022-10-27')\t\n:star: [@Mohammad-Mohsen](https://github.com/Mohammad-Mohsen '2022-10-28')\t\n:star: [@neeksor](https://github.com/neeksor '2022-10-28')\t\n:star: [@0xNev](https://github.com/0xNev '2022-11-01')\t\n:star: [@imvast](https://github.com/imvast '2022-11-02')\t\n:star: [@daweedkob](https://github.com/daweedkob '2022-11-02')\t\n:star: [@Landcruiser87](https://github.com/Landcruiser87 '2022-11-02')\t\n:star: [@kirillzhosul](https://github.com/kirillzhosul '2022-11-02')\t\n:star: [@FurkanEdizkan](https://github.com/FurkanEdizkan '2022-11-03')\t\n:star: [@sodinokibi](https://github.com/sodinokibi '2022-11-04')\t\n:star: [@stepan-zubkov](https://github.com/stepan-zubkov '2022-11-04')\t\n:star: [@Nexlab-One](https://github.com/Nexlab-One '2022-11-05')\t\n:star: [@PApostol](https://github.com/PApostol '2022-11-06')\t\n:star: [@callmeAsadUllah](https://github.com/callmeAsadUllah '2022-11-12')\t\n:star: [@jaredv1](https://github.com/jaredv1 '2022-11-13')\t\n:star: [@Goblin80](https://github.com/Goblin80 '2022-11-14')\t\n:star: [@michikxd](https://github.com/michikxd '2022-11-17')\t\n:star: [@babywyrm](https://github.com/babywyrm '2022-11-19')\t\n:star: [@MooneDrJune](https://github.com/MooneDrJune '2022-11-21')\t\n:star: [@grknbyk](https://github.com/grknbyk '2022-11-24')\t\n:star: [@francomerendan](https://github.com/francomerendan '2022-11-24')\t\n:star: [@noudin-ledger](https://github.com/noudin-ledger '2022-11-24')\t\n:star: [@chip-felton-montage](https://github.com/chip-felton-montage '2022-11-24')\t\n:star: [@Ruddy35](https://github.com/Ruddy35 '2022-11-25')\t\n:star: [@xilicode](https://github.com/xilicode '2022-11-25')\t\n:star: [@BrianTurza](https://github.com/BrianTurza '2022-11-25')\t\n:star: [@oguh43](https://github.com/oguh43 '2022-11-26')\t\n:star: [@oyoxo](https://github.com/oyoxo '2022-11-26')\t\n:star: [@encoreshao](https://github.com/encoreshao '2022-11-27')\t\n:star: [@peter279k](https://github.com/peter279k '2022-11-28')\t\n:star: [@xalien10](https://github.com/xalien10 '2022-11-28')\t\n:star: [@DahnJ](https://github.com/DahnJ '2022-11-29')\t\n:star: [@ld909](https://github.com/ld909 '2022-11-30')\t\n:star: [@lafabo](https://github.com/lafabo '2022-11-30')\t\n:star: [@AndrewGPU](https://github.com/AndrewGPU '2022-12-04')\t\n:star: [@jerheff](https://github.com/jerheff '2022-12-05')\t\n:star: [@wtv-piyush](https://github.com/wtv-piyush '2022-12-05')\t\n:star: [@themorya](https://github.com/themorya '2022-12-05')\t\n:star: [@frank-cq](https://github.com/frank-cq '2022-12-05')\t\n:star: [@sunilravilla](https://github.com/sunilravilla '2022-12-09')\t\n:star: [@root-11](https://github.com/root-11 '2022-12-12')\t\n:star: [@BrianPugh](https://github.com/BrianPugh '2022-12-12')\t\n:star: [@kioenguyen0207](https://github.com/kioenguyen0207 '2022-12-13')\t\n:star: [@dotpmrcunha](https://github.com/dotpmrcunha '2022-12-16')\t\n:star: [@eldar-mustafayev](https://github.com/eldar-mustafayev '2022-12-18')\t\n:star: [@krishna2206](https://github.com/krishna2206 '2022-12-18')\t\n:star: [@mrkprdo](https://github.com/mrkprdo '2022-12-28')\t\n:star: [@pythoninthegrass](https://github.com/pythoninthegrass '2023-01-02')\t\n:star: [@jaysontran-novobi](https://github.com/jaysontran-novobi '2023-01-02')\t\n:star: [@eleqtrizit](https://github.com/eleqtrizit '2023-01-03')\t\n:star: [@BlackNurse](https://github.com/BlackNurse '2023-01-03')\t\n:star: [@rruimor](https://github.com/rruimor '2023-01-03')\t\n:star: [@gosoxharp](https://github.com/gosoxharp '2023-01-07')\t\n:star: [@scripthon](https://github.com/scripthon '2023-01-08')\t\n:star: [@WillianFF](https://github.com/WillianFF '2023-01-08')\t\n:star: [@yashprakash13](https://github.com/yashprakash13 '2023-01-09')\t\n:star: [@rhyd0n](https://github.com/rhyd0n '2023-01-09')\t\n:star: [@meet-ai](https://github.com/meet-ai '2023-01-11')\t\n:star: [@Cremeux](https://github.com/Cremeux '2023-01-11')\t\n:star: [@hawk-roman-rey](https://github.com/hawk-roman-rey '2023-01-12')\t\n:star: [@OldMidnight](https://github.com/OldMidnight '2023-01-15')\t\n:star: [@christos-bsq](https://github.com/christos-bsq '2023-01-15')\t\n:star: [@Xenia101](https://github.com/Xenia101 '2023-01-17')\t\n:star: [@beholders-eye](https://github.com/beholders-eye '2023-01-17')\t\n:star: [@lectinua](https://github.com/lectinua '2023-01-19')\t\n:star: [@pietroppeter](https://github.com/pietroppeter '2023-01-20')\t\n:star: [@linwaytin](https://github.com/linwaytin '2023-01-22')\t\n:star: [@0x13A0F](https://github.com/0x13A0F '2023-01-25')\t\n:star: [@ocervell](https://github.com/ocervell '2023-01-25')\t\n:star: [@ZhymabekRoman](https://github.com/ZhymabekRoman '2023-01-26')\t\n:star: [@kabartay](https://github.com/kabartay '2023-01-26')\t\n:star: [@tkanhe](https://github.com/tkanhe '2023-01-28')\t\n:star: [@yudelevi](https://github.com/yudelevi '2023-01-30')\t\n:star: [@kantarcise](https://github.com/kantarcise '2023-02-01')\t\n:star: [@fernando-aristizabal](https://github.com/fernando-aristizabal '2023-02-02')\t\n:star: [@BrianNTang](https://github.com/BrianNTang '2023-02-06')\t\n:star: [@asen-mitov](https://github.com/asen-mitov '2023-02-08')\t\n:star: [@mrgick](https://github.com/mrgick '2023-02-12')\t\n:star: [@jpmanson](https://github.com/jpmanson '2023-02-13')\t\n:star: [@thvadora](https://github.com/thvadora '2023-02-14')\t\n:star: [@jramosss](https://github.com/jramosss '2023-02-14')\t\n:star: [@AleksandrUsolcev](https://github.com/AleksandrUsolcev '2023-02-15')\t\n:star: [@eantho](https://github.com/eantho '2023-02-26')\t\n:star: [@RodrigoTorresWeb](https://github.com/RodrigoTorresWeb '2023-03-04')\t\n:star: [@mighty-phoenix](https://github.com/mighty-phoenix '2023-03-05')\t\n:star: [@DSDanielPark](https://github.com/DSDanielPark '2023-03-05')\t\n:star: [@0xHaris](https://github.com/0xHaris '2023-03-08')\t\n:star: [@watchakorn-18k](https://github.com/watchakorn-18k '2023-03-14')\t\n:star: [@watchakorn-18k](https://github.com/watchakorn-18k '2023-03-14')\t\n:star: [@enesalsat](https://github.com/enesalsat '2023-03-15')\t\n:star: [@eal](https://github.com/eal '2023-03-16')\t\n:star: [@abhie-lp](https://github.com/abhie-lp '2023-03-17')\t\n:star: [@martinskou](https://github.com/martinskou '2023-03-17')\t\n:star: [@SHjalilo](https://github.com/SHjalilo '2023-03-19')\t\n:star: [@chrisgoddard](https://github.com/chrisgoddard '2023-03-19')\t\n:star: [@OuMal](https://github.com/OuMal '2023-03-23')\t\n:star: [@dylanosaur](https://github.com/dylanosaur '2023-03-29')\t\n:star: [@Seirdy](https://github.com/Seirdy '2023-04-01')\t\n:star: [@mix-protocol](https://github.com/mix-protocol '2023-04-01')\t\n:star: [@hoangthanh168](https://github.com/hoangthanh168 '2023-04-03')\t\n:star: [@LaffX](https://github.com/LaffX '2023-04-06')\t\n:star: [@Kanchangk](https://github.com/Kanchangk '2023-04-06')\t\n:star: [@epistemicjanitor](https://github.com/epistemicjanitor '2023-04-13')\t\n:star: [@danielsalvador](https://github.com/danielsalvador '2023-04-13')\t\n:star: [@Utone](https://github.com/Utone '2023-04-15')\t\n:star: [@andimahathir](https://github.com/andimahathir '2023-04-20')\t\n:star: [@alexvivanov](https://github.com/alexvivanov '2023-05-01')\t\n:star: [@resort-io](https://github.com/resort-io '2023-05-01')\t\n:star: [@itschasa](https://github.com/itschasa '2023-05-02')\t\n:star: [@Kensingtonn](https://github.com/Kensingtonn '2023-05-02')\t\n:star: [@christopherhall1815](https://github.com/christopherhall1815 '2023-05-04')\t\n:star: [@edwardlopez0311](https://github.com/edwardlopez0311 '2023-05-08')\t\n:star: [@XMVZ](https://github.com/XMVZ '2023-05-08')\t\n:star: [@robd003](https://github.com/robd003 '2023-05-09')\t\n:star: [@Tatsh](https://github.com/Tatsh '2023-05-09')\t\n:star: [@movrsi](https://github.com/movrsi '2023-05-09')\t\n:star: [@rachen](https://github.com/rachen '2023-05-10')\t\n:star: [@DavideGalilei](https://github.com/DavideGalilei '2023-05-14')\t\n:star: [@linusheinz](https://github.com/linusheinz '2023-05-14')\t\n:star: [@levushakov](https://github.com/levushakov '2023-05-15')\t\n:star: [@zerintg](https://github.com/zerintg '2023-05-16')\t\n:star: [@arynyklas](https://github.com/arynyklas '2023-05-16')\t\n:star: [@infamix](https://github.com/infamix '2023-05-16')\t\n:star: [@aspekts](https://github.com/aspekts '2023-05-19')\t\n:star: [@shahabejaz](https://github.com/shahabejaz '2023-05-20')\t\n:star: [@vovavili](https://github.com/vovavili '2023-05-21')\t\n:star: [@FingonCelebrindal](https://github.com/FingonCelebrindal '2023-05-22')\t\n:star: [@ysnbogt](https://github.com/ysnbogt '2023-05-22')\t\n:star: [@Athroniaeth](https://github.com/Athroniaeth '2023-05-23')\t\n:star: [@hansalemaos](https://github.com/hansalemaos '2023-05-26')\t\n:star: [@xTrayambak](https://github.com/xTrayambak '2023-05-28')\t\n:star: [@extrememicro](https://github.com/extrememicro '2023-05-31')\t\n:star: [@Pineapple217](https://github.com/Pineapple217 '2023-06-09')\t\n:star: [@PiyushDixit96](https://github.com/PiyushDixit96 '2023-06-10')\t\n:star: [@NateShoffner](https://github.com/NateShoffner '2023-06-11')\t\n:star: [@noe1sanji](https://github.com/noe1sanji '2023-06-18')\t\n:star: [@bsljth](https://github.com/bsljth '2023-06-23')\t\n:star: [@hellogeraldblah](https://github.com/hellogeraldblah '2023-06-26')\t\n:star: [@ande128](https://github.com/ande128 '2023-06-27')\t\n:star: [@bsljth](https://github.com/bsljth '2023-06-30')\t\n:star: [@Murplugg](https://github.com/Murplugg '2023-07-01')\t\n:star: [@juguerre](https://github.com/juguerre '2023-07-02')\t\n:star: [@ande128](https://github.com/ande128 '2023-07-03')\t\n:star: [@atksh](https://github.com/atksh '2023-07-05')\t\n:star: [@k-kawakami213](https://github.com/k-kawakami213 '2023-07-05')\t\n:star: [@fredlarochelle](https://github.com/fredlarochelle '2023-07-05')\t\n:star: [@emekeh](https://github.com/emekeh '2023-07-06')\t\n:star: [@KNipunDananjaya](https://github.com/KNipunDananjaya '2023-07-07')\t\n:star: [@cryoz](https://github.com/cryoz '2023-07-14')\t\n:star: [@weztask](https://github.com/weztask '2023-07-17')\t\n:star: [@retouching](https://github.com/retouching '2023-07-17')\t\n:star: [@degaur](https://github.com/degaur '2023-07-19')\t\n:star: [@testtsubscribe](https://github.com/testtsubscribe '2023-07-22')\t\n:star: [@catsuns](https://github.com/catsuns '2023-07-22')\t\n:star: [@Leiiib](https://github.com/Leiiib '2023-07-24')\t\n:star: [@mqt2r](https://github.com/mqt2r '2023-07-28')\t\n:star: [@solarsbeans](https://github.com/solarsbeans '2023-08-01')\t\n:star: [@F1ashhimself](https://github.com/F1ashhimself '2023-08-02')\t\n:star: [@IsakWesterlund](https://github.com/IsakWesterlund '2023-08-08')\t\n:star: [@Mr-Jef](https://github.com/Mr-Jef '2023-08-10')\t\n:star: [@ghbook](https://github.com/ghbook '2023-08-11')\t\n:star: [@zyr1on](https://github.com/zyr1on '2023-08-11')\t\n:star: [@goznauk](https://github.com/goznauk '2023-08-16')\t\n:star: [@scmanjarrez](https://github.com/scmanjarrez '2023-08-17')\t\n:star: [@NiYeh](https://github.com/NiYeh '2023-08-18')\t\n:star: [@Sepehr0011](https://github.com/Sepehr0011 '2023-08-21')\t\n:star: [@JarvanLei](https://github.com/JarvanLei '2023-08-22')\t\n:star: [@kp6c6p6c](https://github.com/kp6c6p6c '2023-08-23')\t\n:star: [@DrayChou](https://github.com/DrayChou '2023-08-24')\t\n:star: [@szmyty](https://github.com/szmyty '2023-08-27')\t\n:star: [@f1refa11](https://github.com/f1refa11 '2023-08-28')\t\n:star: [@ddzzhen](https://github.com/ddzzhen '2023-08-29')\t\n:star: [@flrngel](https://github.com/flrngel '2023-08-30')\t\n:star: [@Sergimayol](https://github.com/Sergimayol '2023-09-01')\t\n:star: [@Redrrx](https://github.com/Redrrx '2023-09-05')\t\n:star: [@ilyazub](https://github.com/ilyazub '2023-09-19')\t\n:star: [@AlskaPark](https://github.com/AlskaPark '2023-09-20')\t\n:star: [@louyongjiu](https://github.com/louyongjiu '2023-09-22')\t\n:star: [@adbforlife](https://github.com/adbforlife '2023-09-23')\t\n:star: [@rahulmr](https://github.com/rahulmr '2023-10-03')\t\n:star: [@soyandrey](https://github.com/soyandrey '2023-10-04')\t\n:star: [@malaVydra](https://github.com/malaVydra '2023-10-07')\t\n:star: [@RookCube](https://github.com/RookCube '2023-10-08')\t\n:star: [@xjzh123](https://github.com/xjzh123 '2023-10-11')\t\n:star: [@Ruy-Araujo](https://github.com/Ruy-Araujo '2023-10-15')\t\n:star: [@vldkhramtsov](https://github.com/vldkhramtsov '2023-10-16')\t\n:star: [@watsonhaw5566](https://github.com/watsonhaw5566 '2023-10-22')\t\n:star: [@kumchick2055](https://github.com/kumchick2055 '2023-10-24')\t\n:star: [@Stallon-niranjan](https://github.com/Stallon-niranjan '2023-10-30')\t\n:star: [@devshjeon](https://github.com/devshjeon '2023-11-02')\t\n:star: [@euchaliptus](https://github.com/euchaliptus '2023-11-06')\t\n:star: [@S75XD](https://github.com/S75XD '2023-11-08')\t\n:star: [@gster](https://github.com/gster '2023-11-17')\t\n:star: [@QuanDeppChaii](https://github.com/QuanDeppChaii '2023-11-17')\t\n:star: [@SevenworksDev](https://github.com/SevenworksDev '2023-11-18')\t\n:star: [@cframe1337](https://github.com/cframe1337 '2023-11-19')\t\n:star: [@Mdevpro78](https://github.com/Mdevpro78 '2023-11-25')\t\n:star: [@ging-dev](https://github.com/ging-dev '2023-11-27')\t\n:star: [@SYFH](https://github.com/SYFH '2023-11-27')\t\n:star: [@Vchase-7047](https://github.com/Vchase-7047 '2023-11-27')\t\n:star: [@ZhReimu](https://github.com/ZhReimu '2023-11-27')\t\n:star: [@elvishoo](https://github.com/elvishoo '2023-11-27')\t\n:star: [@KeepCodeing](https://github.com/KeepCodeing '2023-11-27')\t\n:star: [@Fumeze](https://github.com/Fumeze '2023-11-27')\t\n:star: [@JerryLiao26](https://github.com/JerryLiao26 '2023-11-27')\t\n:star: [@ashrafnezhad-hamidreza](https://github.com/ashrafnezhad-hamidreza '2023-11-27')\t\n:star: [@Lofimit](https://github.com/Lofimit '2023-11-28')\t\n:star: [@shaohaiyang](https://github.com/shaohaiyang '2023-11-30')\t\n:star: [@668](https://github.com/668 '2023-11-30')\t\n:star: [@baby0o01999](https://github.com/baby0o01999 '2023-12-04')\t\n:star: [@lightcax](https://github.com/lightcax '2023-12-08')\t\n:star: [@gister9000](https://github.com/gister9000 '2023-12-09')\t\n:star: [@BiltuDas1](https://github.com/BiltuDas1 '2023-12-18')\t\n:star: [@ttycelery](https://github.com/ttycelery '2023-12-21')\t\n:star: [@raihan-faza](https://github.com/raihan-faza '2023-12-21')\t\n:star: [@hiiruki](https://github.com/hiiruki '2023-12-21')\t\n:star: [@MhankBarBar](https://github.com/MhankBarBar '2023-12-21')\t\n:star: [@MujurID](https://github.com/MujurID '2023-12-22')\t\n:star: [@tommy-ca](https://github.com/tommy-ca '2023-12-26')\t\n:star: [@nichdemos](https://github.com/nichdemos '2023-12-31')\t\n:star: [@CheeseTurtle](https://github.com/CheeseTurtle '2023-12-31')\t\n:star: [@sleepingcat4](https://github.com/sleepingcat4 '2024-01-04')\t\n:star: [@bmouler](https://github.com/bmouler '2024-01-04')\t\n:star: [@MaxMorais](https://github.com/MaxMorais '2024-01-06')\t\n:star: [@juzt3](https://github.com/juzt3 '2024-01-12')\t\n:star: [@dotsource](https://github.com/dotsource '2024-01-12')\t\n:star: [@abdalrahman-saqr](https://github.com/abdalrahman-saqr '2024-01-14')\t\n:star: [@AlexZotikov](https://github.com/AlexZotikov '2024-01-19')\t\n:star: [@Chaunice](https://github.com/Chaunice '2024-01-21')\t\n:star: [@hewhocannotbetamed](https://github.com/hewhocannotbetamed '2024-01-21')\t\n:star: [@xiaojiujiuY9](https://github.com/xiaojiujiuY9 '2024-01-26')\t\n:star: [@vvanglro](https://github.com/vvanglro '2024-01-26')\t\n:star: [@KadeWuVungle](https://github.com/KadeWuVungle '2024-01-26')\t\n:star: [@CC1001001](https://github.com/CC1001001 '2024-01-26')\t\n:star: [@akeshmiri](https://github.com/akeshmiri '2024-01-27')\t\n:star: [@visualrobots](https://github.com/visualrobots '2024-01-28')\t\n:star: [@vypivshiy](https://github.com/vypivshiy '2024-01-29')\t\n:star: [@ttrzcinski](https://github.com/ttrzcinski '2024-02-03')\t\n:star: [@FastFingertips](https://github.com/FastFingertips '2024-02-09')\t\n:star: [@christianmalek](https://github.com/christianmalek '2024-02-12')\t\n:star: [@simms21](https://github.com/simms21 '2024-02-18')\t\n:star: [@cenviity](https://github.com/cenviity '2024-02-19')\t\n:star: [@iLollek](https://github.com/iLollek '2024-02-22')\t\n:star: [@ChemicalNRG](https://github.com/ChemicalNRG '2024-02-26')\t\n:star: [@Ehsan-U](https://github.com/Ehsan-U '2024-02-28')\t\n:star: [@hosven](https://github.com/hosven '2024-03-07')\t\n:star: [@JosepHyv](https://github.com/JosepHyv '2024-03-11')\t\n:star: [@luczay](https://github.com/luczay '2024-03-22')\t\n:star: [@Moat6](https://github.com/Moat6 '2024-03-27')\t\n:star: [@jydxkj](https://github.com/jydxkj '2024-03-28')\t\n:star: [@ivanrvpereira](https://github.com/ivanrvpereira '2024-04-08')\t\n:star: [@TxQISchokEZz](https://github.com/TxQISchokEZz '2024-04-09')\t\n:star: [@kerrycobb](https://github.com/kerrycobb '2024-04-11')\t\n:star: [@lucasnuic](https://github.com/lucasnuic '2024-04-14')\t\n:star: [@lyenliang](https://github.com/lyenliang '2024-04-17')\t\n:star: [@danila-panteleev](https://github.com/danila-panteleev '2024-04-27')\t\n:star: [@saarsil](https://github.com/saarsil '2024-04-28')\t\n:star: [@amitness](https://github.com/amitness '2024-05-06')\t\n:star: [@LaxmanSinghTomar](https://github.com/LaxmanSinghTomar '2024-05-06')\t\n:star: [@pawanpaudel93](https://github.com/pawanpaudel93 '2024-05-06')\t\n:star: [@dcyoung](https://github.com/dcyoung '2024-05-06')\t\n:star: [@divyamani1](https://github.com/divyamani1 '2024-05-06')\t\n:star: [@manzak](https://github.com/manzak '2024-05-13')\t\n:star: [@dddyom](https://github.com/dddyom '2024-05-13')\t\n:star: [@zwiebelslayer](https://github.com/zwiebelslayer '2024-05-14')\t\n:star: [@WangWei90](https://github.com/WangWei90 '2024-05-18')\t\n:star: [@bpenedo](https://github.com/bpenedo '2024-05-26')\t\n:star: [@GhostYiL](https://github.com/GhostYiL '2024-05-28')\t\n:star: [@Darkcast](https://github.com/Darkcast '2024-06-05')\t\n:star: [@akasakaid](https://github.com/akasakaid '2024-06-07')\t\n:star: [@rhysdg](https://github.com/rhysdg '2024-06-07')\t\n:star: [@ahmadmfani](https://github.com/ahmadmfani '2024-06-07')\t\n:star: [@naufaljct48](https://github.com/naufaljct48 '2024-06-07')\t\n:star: [@amiune](https://github.com/amiune '2024-06-08')\t\n:star: [@marylnrose](https://github.com/marylnrose '2024-06-08')\t\n:star: [@himanshu076](https://github.com/himanshu076 '2024-06-09')\t\n:star: [@herlangga72](https://github.com/herlangga72 '2024-06-10')\t\n:star: [@SamDc73](https://github.com/SamDc73 '2024-06-11')\t\n:star: [@ewnprn112](https://github.com/ewnprn112 '2024-06-20')\t\n:star: [@rainmanzzz](https://github.com/rainmanzzz '2024-07-02')\t\n:star: [@ranjian0](https://github.com/ranjian0 '2024-07-02')\t\n:star: [@joelvaneenwyk](https://github.com/joelvaneenwyk '2024-07-11')\t\n:star: [@shalahu](https://github.com/shalahu '2024-07-27')\t\n:star: [@warezit](https://github.com/warezit '2024-08-01')\t\n:star: [@firasuke](https://github.com/firasuke '2024-08-04')\t\n:star: [@bit-code](https://github.com/bit-code '2024-08-14')\t\n:star: [@beingDave](https://github.com/beingDave '2024-08-19')\t\n:star: [@rekayno](https://github.com/rekayno '2024-08-23')\t\n:star: [@EventGamer67](https://github.com/EventGamer67 '2024-08-24')\t\n:star: [@arthurauffray](https://github.com/arthurauffray '2024-09-02')\t\n:star: [@richardadonnell](https://github.com/richardadonnell '2024-09-08')\t\n:star: [@cOborski](https://github.com/cOborski '2024-09-10')\t\n:star: [@momvov](https://github.com/momvov '2024-09-19')\t\n:star: [@M-logique](https://github.com/M-logique '2024-10-10')\t\n:star: [@mohammad87115](https://github.com/mohammad87115 '2024-10-11')\t\n:star: [@Vorrik](https://github.com/Vorrik '2024-10-25')\t\n:star: [@aleemahmed96](https://github.com/aleemahmed96 '2024-10-30')\t\n:star: [@rikistan45](https://github.com/rikistan45 '2024-11-14')\t\n:star: [@KingJem](https://github.com/KingJem '2024-12-02')\t\n:star: [@antilagg](https://github.com/antilagg '2024-12-06')\t\n:star: [@0MeMo07](https://github.com/0MeMo07 '2024-12-11')\t\n:star: [@whaletail](https://github.com/whaletail '2024-12-19')\t\n:star: [@MissinA](https://github.com/MissinA '2024-12-22')\t\n:star: [@nameiszhuyu](https://github.com/nameiszhuyu '2024-12-26')\t\n:star: [@4lch3mis7](https://github.com/4lch3mis7 '2024-12-27')\t\n:star: [@semihsmg](https://github.com/semihsmg '2025-01-02')\t\n:star: [@sakanjo](https://github.com/sakanjo '2025-01-04')\t\n:star: [@2shraaf](https://github.com/2shraaf '2025-01-09')\t\n:star: [@Matt-Deacalion](https://github.com/Matt-Deacalion '2025-01-20')\t\n:star: [@planetis-m](https://github.com/planetis-m '2025-01-24')\t\n:star: [@cryptoeurovpn](https://github.com/cryptoeurovpn '2025-02-13')\t\n:star: [@emansije](https://github.com/emansije '2025-03-22')\t\n:star: [@trinhminhtriet](https://github.com/trinhminhtriet '2025-03-27')\t\n:star: [@SteveGremory](https://github.com/SteveGremory '2025-03-30')\t\n:star: [@JonathanLStoff](https://github.com/JonathanLStoff '2025-03-30')\t\n:star: [@absop](https://github.com/absop '2025-04-09')\t\n:star: [@rhine14586](https://github.com/rhine14586 '2025-04-30')\t\n:star: [@caobingsheng](https://github.com/caobingsheng '2025-05-04')\t\n:star: [@dhw](https://github.com/dhw '2025-05-10')\t\n:star: [@godofvareyes](https://github.com/godofvareyes '2025-05-10')\t\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuancarlospaco%2Ffaster-than-requests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuancarlospaco%2Ffaster-than-requests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuancarlospaco%2Ffaster-than-requests/lists"}