{ "info": { "author": "Matthieu Treussart", "author_email": "matthieu@treussart.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3.7", "Topic :: Internet :: Name Service (DNS)", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Utilities" ], "description": "# quart-doh\n\nquart-doh is a simple DOH (DNS Over HTTPS) server. It resolves DNS query on HTTP.\n\n## Implementation\n\n### RFC 8484\n\n* https://www.rfc-editor.org/rfc/rfc8484.txt\n\n### Json implementation\n\n* https://developers.cloudflare.com/1.1.1.1/dns-over-https/json-format/\n\n## Quick start\n\n`openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes`\n\n`pipenv sync -d`\n\n`pipenv run doh_server`\n\n## Use with Firefox\n\nin about:config edit::\n\n network.trr.mode;3\n network.trr.uri;https://127.0.0.1/dns-query\n\n\nFor the URI, add your URI for your reverse proxy serving your Quart app.\n\nFirefox seems to only accept port 443.\n\n## Installation\n\n### Via Pip\n\n`pip install quart-doh`\n\nThen :\n\nGenerate a certificate and a private key :\n\n`openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes`\n\n`doh-server --debug --cert [path]cert.pem --key [path]key.pem`\n\n`doh-client --noverify`\n\n### Via Docker\n\n`openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes`\n\n`docker build -f Dockerfile -t quart-doh/doh-server .`\n\n`docker run --rm -p 443:443 quart-doh/doh-server`\n\n\n## Benchmark\n\nMacbook Pro 2019\nProcessor 2,4 GHz Intel Core i5\nMemory 8 GB 2133 MHz LPDDR3\n\n`apib -c 100 -d 60 @benchmark_get_url.txt`\n
\nHTTP/1.1\nDuration: 60.024 seconds\nAttempted requests: 15757\nSuccessful requests: 15757\nNon-200 results: 0\nConnections opened: 100\nSocket errors: 0\n\nThroughput: 262.511 requests/second\nAverage latency: 376.399 milliseconds\nMinimum latency: 103.082 milliseconds\nMaximum latency: 2846.580 milliseconds\nLatency std. dev: 456.340 milliseconds\n50% latency: 202.483 milliseconds\n90% latency: 862.423 milliseconds\n98% latency: 2044.469 milliseconds\n99% latency: 2409.697 milliseconds\n\nClient CPU average: 0%\nClient CPU max: 0%\nClient memory usage: 0%\n\nTotal bytes sent: 2.25 megabytes\nTotal bytes received: 5.08 megabytes\nSend bandwidth: 0.30 megabits / second\nReceive bandwidth: 0.68 megabits / second\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/treussart/quart-doh", "keywords": "doh dns https", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "quart-doh", "package_url": "https://pypi.org/project/quart-doh/", "platform": "", "project_url": "https://pypi.org/project/quart-doh/", "project_urls": { "Homepage": "https://github.com/treussart/quart-doh" }, "release_url": "https://pypi.org/project/quart-doh/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "A client and proxy implementation of https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-13", "version": "0.1.0" }, "last_serial": 5941093, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1645103d96a20fa99acb0cc6bb101e14", "sha256": "0eda4a40d8c50b56e0e36a6e41edbd48b961a24b5f87ed453556f43c1d22e87e" }, "downloads": -1, "filename": "quart-doh-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1645103d96a20fa99acb0cc6bb101e14", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6153, "upload_time": "2019-10-06T21:44:03", "url": "https://files.pythonhosted.org/packages/3f/37/7e54c14fe59c16ac6f24f1584bd4079aa7fa54c8562db6dddc9f99e8f204/quart-doh-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "55af01069362b2a210d32ac185ba579d", "sha256": "436ae37351a09d1088293c001ec2be9514e700e04b7d26daafb584d1f6ad5edc" }, "downloads": -1, "filename": "quart-doh-0.0.2.tar.gz", "has_sig": false, "md5_digest": "55af01069362b2a210d32ac185ba579d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6241, "upload_time": "2019-10-07T03:41:17", "url": "https://files.pythonhosted.org/packages/f4/46/d032ed497953c4787a56384a8535ecc487da2f91bac10ea1c357f8a91614/quart-doh-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a3e21715e6f0f008f5da04416eb2f131", "sha256": "cef0878737426a6a0a8f292fe51f06820a2ca447fd5b82bb58ac4fb78bf3e148" }, "downloads": -1, "filename": "quart-doh-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a3e21715e6f0f008f5da04416eb2f131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6906, "upload_time": "2019-10-07T19:59:06", "url": "https://files.pythonhosted.org/packages/89/6a/e1e27910cf707c689d2587dd593817e1b29fb115bbe8ceed86a5f9f06ad7/quart-doh-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a3e21715e6f0f008f5da04416eb2f131", "sha256": "cef0878737426a6a0a8f292fe51f06820a2ca447fd5b82bb58ac4fb78bf3e148" }, "downloads": -1, "filename": "quart-doh-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a3e21715e6f0f008f5da04416eb2f131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6906, "upload_time": "2019-10-07T19:59:06", "url": "https://files.pythonhosted.org/packages/89/6a/e1e27910cf707c689d2587dd593817e1b29fb115bbe8ceed86a5f9f06ad7/quart-doh-0.1.0.tar.gz" } ] }