{"id":15107357,"url":"https://github.com/xxf098/litespeedtest","last_synced_at":"2025-04-06T06:14:13.727Z","repository":{"id":37545010,"uuid":"318088012","full_name":"xxf098/LiteSpeedTest","owner":"xxf098","description":"A simple tool for batch test ss/ssr/v2ray/trojan servers.","archived":false,"fork":false,"pushed_at":"2023-09-23T08:10:16.000Z","size":2815,"stargazers_count":363,"open_issues_count":18,"forks_count":78,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-06T06:13:48.536Z","etag":null,"topics":["shadowsocks","shadowsocksr","speedtest","trojan","v2ray"],"latest_commit_sha":null,"homepage":"","language":"Go","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/xxf098.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-03T05:42:51.000Z","updated_at":"2025-04-03T14:25:24.000Z","dependencies_parsed_at":"2024-06-20T02:59:53.818Z","dependency_job_id":"998f2cff-e531-4061-926c-d0a0105c917a","html_url":"https://github.com/xxf098/LiteSpeedTest","commit_stats":null,"previous_names":["xxf098/lite-proxy"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2FLiteSpeedTest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2FLiteSpeedTest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2FLiteSpeedTest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xxf098%2FLiteSpeedTest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xxf098","download_url":"https://codeload.github.com/xxf098/LiteSpeedTest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247441063,"owners_count":20939239,"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":["shadowsocks","shadowsocksr","speedtest","trojan","v2ray"],"created_at":"2024-09-25T21:23:59.813Z","updated_at":"2025-04-06T06:14:13.710Z","avatar_url":"https://github.com/xxf098.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LiteSpeedTest\n\nLiteSpeedTest is a simple tool for batch test ss/ssr/v2ray/trojan/clash servers.   \nFeature\n- 支持ss/ssr/v2ray/trojan/clash订阅链接\n- 支持ss/ssr/v2ray/trojan/clash节点链接\n- 支持ss/ssr/v2ray/trojan/clash订阅或节点文件\n- support ss/ssr/v2ray/trojan/clash subscription url,\n- support ss/ssr/v2ray/trojan/clash profile links\n- support ss/ssr/v2ray/trojan/clash subscription or profile file, \n\n\n ![build](https://github.com/xxf098/LiteSpeedTest/actions/workflows/test.yaml/badge.svg?branch=master\u0026event=push) \n\n### Usage\n```\nRun as a speed test tool:\n    # run this command then open http://127.0.0.1:10888/ in your browser to start speed test\n    ./lite\n    # start with another port\n    ./lite -p 10889\n    \n    # test in command line only mode\n    ./lite --test https://raw.githubusercontent.com/freefq/free/master/v2\n    # test in command line only mode with custom config.\n    ./lite --config config.json --test https://raw.githubusercontent.com/freefq/free/master/v2\n    # details can find here https://github.com/xxf098/LiteSpeedTest/blob/master/config.json\n    # all config options:\n    #       \"group\":\"job\",   // group name\n\t#       \"speedtestMode\":\"pingonly\", // speedonly pingonly all\n\t#       \"pingMethod\":\"googleping\",  // googleping tcpping\n\t#       \"sortMethod\":\"rspeed\",      // speed rspeed ping rping\n\t#       \"concurrency\":1,  // concurrency number\n\t#       \"testMode\":2,   // 2: ALLTEST 3: RETEST\n\t#       \"subscription\":\"subscription url\",\n\t#       \"timeout\":16,  // timeout in seconds\n\t#       \"language\":\"en\", // en cn\n\t#       \"fontSize\":24,\n\t#       \"unique\": true,  // remove duplicated value\n\t#       \"theme\":\"rainbow\", \n\t#       \"outputMode\": 1  // 0: base64 1: pic path 2: no pic 3: json 4: txt\n\n\nRun as a grpc server:\n    # start the grpc server  \n    ./lite -grpc -p 10999\n    # grpc go client example in ./api/rpc/liteclient/client.go \n    # grpc python client example in ./api/rpc/liteclientpy/client.py\n\nRun as a http/socks5 proxy:\n    # use default port 8090\n    ./lite vmess://aHR0cHM6Ly9naXRodWIuY29tL3h4ZjA5OC9MaXRlU3BlZWRUZXN0\n    ./lite ssr://aHR0cHM6Ly9naXRodWIuY29tL3h4ZjA5OC9MaXRlU3BlZWRUZXN0\n    # use another port\n    ./lite -p 8091 vmess://aHR0cHM6Ly9naXRodWIuY29tL3h4ZjA5OC9MaXRlU3BlZWRUZXN0\n```\n\n### Build\n```bash\n    # require go\u003e=1.18.1, nodejs \u003e= 14\n    # build frontend\n    cp $(go env GOROOT)/misc/wasm/wasm_exec.js ./web/gui/wasm_exec.js\n    npm install --prefix web/gui build\n    npm run --prefix web/gui build\n    GOOS=js GOARCH=wasm go get -u ./...\n    GOOS=js GOARCH=wasm go build -o ./web/gui/dist/main.wasm ./wasm\n    go build -o lite\n```\n\n### Docker\n```bash\n docker build --network=host  -t lite:$(git describe --tags --abbrev=0) -f ./docker/Dockerfile ./\n docker run -p 10888:10888/tcp lite:$(git describe --tags --abbrev=0)\n```\n\n## Credits\n\n- [clash](https://github.com/Dreamacro/clash)\n- [stairspeedtest-reborn](https://github.com/tindy2013/stairspeedtest-reborn)\n- [gg](https://github.com/fogleman/gg)\n\n## Developer\n```golang\nimport (\n    \"context\"\n    \"fmt\"\n\t\"time\"\n    \"github.com/xxf098/lite-proxy/web\"\n)\n// see more details in ./examples\nfunc testPing() error {\n    ctx := context.Background()\n    link := \"https://www.example.com/subscription/link\"\n    opts := web.ProfileTestOptions{\n\t\tGroupName:     \"Default\", \n\t\tSpeedTestMode: \"pingonly\",   //  pingonly speedonly all\n\t\tPingMethod:    \"googleping\", // googleping\n\t\tSortMethod:    \"rspeed\", // speed rspeed ping rping\n\t\tConcurrency:   2,\n\t\tTestMode:      2,\n\t\tSubscription:  link,\n\t\tLanguage:      \"en\",  // en cn\n\t\tFontSize:      24,\n\t\tTheme:         \"rainbow\",\n        Unique:        true,\n\t\tTimeout:       10 * time.Second,\n\t\tOutputMode:  0,\n\t}\n    nodes, err := web.TestContext(ctx, opts, \u0026web.EmptyMessageWriter{})\n    if err != nil {\n        return err\n    }\n    // get all ok profile\n    for _, node := range nodes {\n        if node.IsOk {\n\t\t\tfmt.Println(node.Remarks)\n\t\t}\n\t}\n    return nil\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxxf098%2Flitespeedtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxxf098%2Flitespeedtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxxf098%2Flitespeedtest/lists"}