{"id":20892451,"url":"https://github.com/bernhardangerer/simple-speedtest-client","last_synced_at":"2025-08-23T04:17:40.120Z","repository":{"id":65066724,"uuid":"423969826","full_name":"BernhardAngerer/simple-speedtest-client","owner":"BernhardAngerer","description":"Java-library and command line interface (CLI) for testing internet bandwidth using speedtest.net","archived":false,"fork":false,"pushed_at":"2024-11-07T10:00:17.000Z","size":97,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-07T10:42:52.299Z","etag":null,"topics":["java","java-11","java-library","speedtest","speedtest-cli"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BernhardAngerer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-02T19:15:38.000Z","updated_at":"2024-11-07T10:00:14.000Z","dependencies_parsed_at":"2024-06-18T11:23:12.620Z","dependency_job_id":"af8b8fb8-a7c6-4f00-90ef-a80fabd611c3","html_url":"https://github.com/BernhardAngerer/simple-speedtest-client","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernhardAngerer%2Fsimple-speedtest-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernhardAngerer%2Fsimple-speedtest-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernhardAngerer%2Fsimple-speedtest-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BernhardAngerer%2Fsimple-speedtest-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BernhardAngerer","download_url":"https://codeload.github.com/BernhardAngerer/simple-speedtest-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225157027,"owners_count":17429701,"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":["java","java-11","java-library","speedtest","speedtest-cli"],"created_at":"2024-11-18T10:12:45.522Z","updated_at":"2025-08-23T04:17:40.092Z","avatar_url":"https://github.com/BernhardAngerer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Maven Package](https://github.com/BernhardAngerer/simple-speedtest-client/actions/workflows/maven-publish.yml/badge.svg)](https://github.com/BernhardAngerer/simple-speedtest-client/actions/workflows/maven-publish.yml)\n[![Maven Package](https://github.com/BernhardAngerer/simple-speedtest-client/actions/workflows/maven-verify.yml/badge.svg)](https://github.com/BernhardAngerer/simple-speedtest-client/actions/workflows/maven-verify.yml)\n\n# ⏱️ Simple Speedtest-Client\n\nA **Java library and CLI** tool for measuring internet bandwidth using [speedtest.net](https://www.speedtest.net/).  \nThis is a lightweight Java-based implementation inspired by [Matt Martz’s speedtest-cli](https://github.com/sivel/speedtest-cli).\n\n## ✅ Features\n\n- Perform download, upload, and latency tests\n- (Auto-) Select best server based on ping\n- Share result as a Speedtest.net image\n- Use as a CLI or embed as a Java library\n\n## 🧰 Requirements\n- Java 11+\n- Maven\n\n## ⚙️ Build Instructions\nTo build the project and create a JAR file:\n```bash\nmvn clean install\n```\nThe JAR will be located in target/, e.g.:\n```bash\ntarget/simple-speedtest-client-3.0.0.jar\n```\n\n## 🚀 Usage\n\n### 💻 CLI Usage\nTo run the CLI client:\n```bash\njava -jar simple-speedtest-client-3.0.0.jar\n```\n\n#### 🔧 CLI Options\n```bash\nusage: Optional parameters:\n -h,--dedicatedServerHost \u003cHOST\u003e   Dedicated server host to run the tests\n                                   against\n -l,--listServerHosts              Provide a list of server hosts to run\n                                   the tests against\n -nd,--noDownload                  Do not perform download test\n -nu,--noUpload                    Do not perform upload test\n -of,--outputFormat \u003cFORMAT\u003e       Output format of results (default:\n                                   console)\n                                   Available formats:\n                                   console — human-readable output to the\n                                   console\n                                   json    — machine-readable JSON format\n                                   xml     — machine-readable XML format\n                                   csv     — comma-separated values format\n -s,--share                        Generate and provide an URL to the\n                                   speedtest.net share results image\n\n```\n\n#### 📈 Example Output\n```bash\n$ java -jar simple-speedtest-client-3.0.0.jar \n\nRetrieving speedtest.net configuration...\nTesting from Telekom Austria (193.81.52.87, AT)...\nRetrieving speedtest.net server list...\nSelecting best server based on ping...\nHosted by COSYS DATA GmbH (Vienna, AT) [9,46 km]: 18,00 ms\nTesting download speed........................................\nDownload: 54,26 Mbits/s\nTesting upload speed...................................................\nUpload: 19,19 Mbits/s\n```\n\n### 📚 Java Library Usage\nUse the library directly in Java:\n```java\ntry {\n    // ⚠️ Note: This is a blocking call and may take up to 25 seconds \n    // depending on network latency, server selection, and transfer speed.\n    // Consider running it in a background thread if used in a GUI or server application.\n    SpeedtestResult result = SpeedtestController.runSpeedTest();\n\n    System.out.printf(\"Download: %.2f Mbps%n\", result.getDownload().getRateInMbps());\n    System.out.printf(\"Upload: %.2f Mbps%n\", result.getUpload().getRateInMbps());\n    System.out.printf(\"Latency: %.2f ms%n\", result.getLatency().getLatency());\n    System.out.printf(\"Server: %s (%s, %s)%n\",\n                        result.getServer().getSponsor(),\n                        result.getServer().getCity(),\n                        result.getServer().getIsoAlpha2CountryCode());\n} catch (SpeedtestException e) {\n    e.printStackTrace();\n}\n```\n\n#### 📈 Example Output\n```bash\nDownload: 156,19 Mbps\nUpload: 16,33 Mbps\nLatency: 21,33 ms\nServer: Timewarp IT Consulting GmbH (Vienna, AT)\n```\n\n## 📦 Dependency (Maven / Gradle)\nAdd the dependency via JitPack:\nhttps://jitpack.io/private#BernhardAngerer/simple-speedtest-client/3.0.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernhardangerer%2Fsimple-speedtest-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbernhardangerer%2Fsimple-speedtest-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernhardangerer%2Fsimple-speedtest-client/lists"}