{"id":25027978,"url":"https://github.com/alice39s/aqua-speed","last_synced_at":"2025-04-13T15:06:08.907Z","repository":{"id":269860708,"uuid":"908678816","full_name":"Alice39s/aqua-speed","owner":"Alice39s","description":"A modern network speed test CLI built with Bun and TypeScript.","archived":false,"fork":false,"pushed_at":"2025-01-20T09:39:19.000Z","size":198,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T15:06:02.158Z","etag":null,"topics":["bun","bun-sh","cli","cloudflare-speedtest","speedtest","speedtest-cli","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Alice39s.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"Roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-26T17:11:54.000Z","updated_at":"2025-03-02T06:10:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"a614ec6f-1dba-4e20-8c9b-0b8206b068cb","html_url":"https://github.com/Alice39s/aqua-speed","commit_stats":null,"previous_names":["alice39s/aqua-speed"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alice39s%2Faqua-speed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alice39s%2Faqua-speed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alice39s%2Faqua-speed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Alice39s%2Faqua-speed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Alice39s","download_url":"https://codeload.github.com/Alice39s/aqua-speed/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248732485,"owners_count":21152852,"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":["bun","bun-sh","cli","cloudflare-speedtest","speedtest","speedtest-cli","typescript"],"created_at":"2025-02-05T19:55:57.020Z","updated_at":"2025-04-13T15:06:08.873Z","avatar_url":"https://github.com/Alice39s.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :ocean: Aqua Speed\n\n\u003cdiv align=\"center\" style=\"margin-bottom: 20px\"\u003e\n\n\u003cimg src=\"./assets/aqua-speed-banner-en.png\" alt=\"Aqua Speed - Banner\" style=\"width: 100%; max-width: 640px; height: auto;\"\u003e\n\n\u003c/div\u003e\n\nA modern network speed test CLI built with Bun and TypeScript.\n\n\u003cdiv align=\"center\"\u003e\n\n[![TypeScript](https://img.shields.io/badge/TypeScript-%23007ACC.svg?style=flat\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n[![Bun](https://img.shields.io/badge/Bun-%2314151a.svg?style=flat\u0026logo=bun\u0026logoColor=#fbf0df)](https://bun.sh)\n[![Biome](https://img.shields.io/badge/Biome-%23171c2b.svg?style=flat\u0026logo=biome\u0026logoColor=#60a5fa)](https://biomejs.dev/)\n[![License](https://img.shields.io/badge/License-GPL%203.0-blue.svg)](LICENSE)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003e English | [简体中文](README.zh.md)\n\n\u003c/div\u003e\n\n## :star2: Features\n\n- 🚀 High-performance speed testing powered by Bun runtime\n- ✨ Multiple test servers support:\n  - Cloudflare (download \u0026 upload)\n  - LibreSpeed (download \u0026 upload) \n  - Ookla (TODO)\n  - Custom file URL (download only) [^1]\n- 🧵 Concurrent testing with configurable threads\n- 📊 Comprehensive metrics:\n  - TCP/ICMP/HTTP latency\n  - Download/Upload speeds\n  - Jitter analysis\n- 🎨 Beautiful CLI interface with real-time progress\n- 🛡️ Full TypeScript type support, Biome constrained code style.\n\n## :star: Supported Servers\n\n| Server Type      | Upload                 | Download               | Latency                | Remarks                 |\n| ---------------- | ---------------------- | ---------------------- | ---------------------- | ----------------------- |\n| Speedtest.net    | :large_orange_diamond: | :large_orange_diamond: | :large_orange_diamond: | Development             |\n| LibreSpeed       | :white_check_mark:     | :white_check_mark:     | :white_check_mark:     |                         |\n| Cloudflare Speed | :white_check_mark:     | :white_check_mark:     | :white_check_mark:     | speed.cloudflare.com    |\n| Single File      | :x:                    | :white_check_mark:     | :white_check_mark:     | Not support upload test |\n| Looking Glass    | :large_orange_diamond: | :white_check_mark:     | :white_check_mark:     | Development             |\n| Taierspeed       | :large_orange_diamond: | :large_orange_diamond: | :large_orange_diamond: | Development             |\n| Speedtest.cn     | :large_orange_diamond: | :large_orange_diamond: | :large_orange_diamond: | Development             |\n\n# :star2: Demo\n\n[![asciicast](https://asciinema.org/a/nlNFF30p1fHw5iwm8eXEmRqq0.svg)](https://asciinema.org/a/nlNFF30p1fHw5iwm8eXEmRqq0)\n\n## :fire: Run\n\n### :rocket: Run from CI Build\n\nDownload the latest binary compressed package from [Releases](https://github.com/Alice39s/aqua-speed/releases)\n\n#### Linux \u0026 macOS\n```bash\nchmod +x aqua-speed\n./aqua-speed\n```\n\n#### Windows\n```bash\n./aqua-speed.exe \n```\n\n### :whale: Run from Docker\n\n```bash\ndocker run -it ghcr.io/alice39s/aqua-speed:latest\n```\n\n### :hammer_and_wrench: Run from Source\n\n#### 1. Install Bun\n\n```bash\n# Linux \u0026 macOS\ncurl -fsSL https://bun.sh/install | bash\n\n# Windows\npowershell -c \"irm bun.sh/install.ps1 | iex\"\n\n# Windows (Package Manager)\nscoop install bun\n```\n\n#### 2. Clone repository\n\n```bash\ngit clone https://github.com/Alice39s/aqua-speed.git\n```\n\n#### 3. Install dependencies\n\n```bash\nbun install\n```\n\n#### 4. Run\n\n```bash\nbun run start\n```\n\n## Basic Usage\n\n### Quick Start\n```bash\n# Run with defaults (Cloudflare server, 4 threads)\naqua-speed\n\n# Test against LibreSpeed server\naqua-speed --type LibreSpeed\n\n# Test with custom file URL\naqua-speed -s https://example.com/testfile.dat\n```\n\n### Advanced Options\n\n```bash\naqua-speed [options]\n\nOptions:\n  -s, --server \u003curl\u003e     Speed test server URL\n  --sn \u003cname\u003e            Speed test server name \n  -t, --thread \u003cnumber\u003e  Number of concurrent connections  \n  --timeout \u003cseconds\u003e    Test timeout in seconds\n  --debug               Debug mode\n  --type \u003ctype\u003e         Test type (SingleFile|LibreSpeed|Cloudflare)\n```\n\n## :mag: Example Output\n\n```\nTest Results:\n\n    Latency:\n        TCP: min = 1.25 ms, avg = 2.19 ms, max = 3.38 ms\n        ICMP: min = 1.00 ms, avg = 1.00 ms, max = 1.00 ms\n        HTTP: min = 97.74 ms, avg = 100.71 ms, max = 103.68 ms\n\n    Speed:\n        Download: min = 570.55 Mbps, avg = 1.17 Gbps, max = 1.36 Gbps\n        Upload: min = 601.25 Mbps, avg = 1.20 Gbps, max = 1.39 Gbps\n\n    Test Information:\n        Server: speed.cloudflare.com\n        Time: 2024/12/25 12:00:00\n```\n\n## :bug: Troubleshooting\n\n### Common Issues\n\n1. `Permission denied`\n\n```bash\nchmod +x aqua-speed\n```\n\n2. Low speeds\n- Reduce threads: `-t 2`\n- Test with different servers\n\n### Debug Mode\n\nEnable debug logging for detailed information:\n```bash\n./aqua-speed --debug\n```\n\n## :hammer_and_wrench: Development\n\n```bash\n# Install dependencies\nbun install\n\n# Run in development\nbun run dev\n\n# Run tests\nbun test\n\n# Build binary\nbun run build:binary\n```\n\n### :scroll: Code Style\n\nThis project uses Biome for code formatting and linting (using `biome format` and `biome check`):\n\n```bash\n# Format code\nbun run format\n\n# Lint code\nbun run lint\n```\n\n## :book: Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for more details.\n\n## :construction: Roadmap\n\nSee [Roadmap.md](Roadmap.md) for more details.\n\n## :fork_and_knife: Contributing\n\n1. Fork repository\n2. Create feature branch\n3. Commit changes\n4. Run tests\n5. Submit pull request\n\nPlease ensure:\n- Tests pass\n- Code follows Biome standards\n- Commit messages are clear\n- Documentation is updated\n\n## :scroll: License\n\n[GPL-3.0 License](LICENSE)\n\n## :pray: Acknowledgements\n\n- [Bun](https://bun.sh) - JavaScript runtime \u0026 toolkit\n- [LibreSpeed](https://github.com/librespeed/speedtest) - Open source speed test\n- All contributors\n\n[^1]: Recommended to specify a file of at least 10MB.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falice39s%2Faqua-speed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falice39s%2Faqua-speed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falice39s%2Faqua-speed/lists"}