diff --git a/README.md b/README.md index 9c05f96..cee2868 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # tct -**tct** (**t**cp **c**onnection **t**imer) is a quick and minimal program (< 70 -LoC!) that helps determine the "optimal" number of parallel TCP requests for -your network connection. +**t**cp **c**onnection **t**imer (tct) is a miniscule utility to help determinee +the "optimal" number of parallel TCP requests for your network connection, for a +given target. It performs a series of tests (following your desired configuration) by incrementally increasing the number of parallel requests and measuring the time @@ -11,6 +11,48 @@ taken for each test. The optimal number is identified as the point where adding more parallel requests does not significantly reduce the overall time taken. +## Usage + +```bash +Usage: + tct [flags] + +Flags: + -d, --delay duration Delay between requests + -h, --help help for tct + -m, --max int Maximum number of parallel requests (default 100) + -u, --url string URL to fetch (default "http://example.com") + -v, --version version for tct +``` + +For example: + +```bash +tct --max 200 --delay 100ms --url "http://yourtargeturl.com" +``` + +Replace `"http://yourtargeturl.com"` with the actual URL you wish to test +against. You can also omit the URL and use an IP address instead. For example, +`8.8.8.8` for Google or `1.1.1.1` for Cloudflare. You may notice differences +between target URLs as a result of different distances to different hosts, or +different network setups. + +The `--max` parameter specifies the maximum number of parallel requests to test, +and `--delay` sets the interval between each request. + +> [!TIP] +> You are strongly advised to use the delay option. I have observed high latency +> while running with the default 0 second delay, which is likely some form of +> throttling by the host. If you test against an URL that you _know_ does not +> throttle connections, then you may consider omitting `-delay`. + +### Flags + +- `--url`: The URL to fetch. +- `--max`: Maximum number of parallel requests to test. Default is `100` +- `--delay`: Delay between requests. Can be specified as a duration (e.g., + `500ms`). Default is `0` (i.e. no delay) + ## Motivation The [Nix Package Manager](https://github.com/NixOS/nix) has an option called @@ -25,37 +67,6 @@ set `http-connections` in. Do keep in mind that this is not 100% accurate. There are many factors that may affect the results of network related tests. -## Usage - -```bash -tct -url="http://yourtargeturl.com" -max=200 -delay=500ms -``` - -Replace `"http://yourtargeturl.com"` with the actual URL you wish to test -against. You can also omit the URL and use an IP address instead, for example, -`8.8.8.8` for Google or `1.1.1.1` for Cloudflare. You may notice differences -between target URLs. - -The `-max` parameter specifies the maximum number of parallel requests to test, -and `-delay` sets the interval between each request. - - - -> [!NOTE] -> You are strongly advised to use the delay option. I have observed high -> latency while running with the default 0 second delay, which is likely some -> form of throttling by the host. If you test against an URL that you _know_ -> does not throttle connections, then you may consider omitting `-delay`. - - - -## Flags - -- `-url`: The URL to fetch. -- `-max`: Maximum number of parallel requests to test. Default is `100` -- `-delay`: Delay between requests. Can be specified as a duration (e.g., - `500ms`). Default is `0` (i.e. no delay) - ## Notes - Remember to adjust the `-max` and `-delay` parameters based on your network @@ -63,7 +74,7 @@ and `-delay` sets the interval between each request. any assumptions, but the default values will not be suitable for all testing conditions. - tct will try to always exit gracefully when you, e.g., kill the program with - ctrl+c. + Ctrl+C. ## Contributing