{"id":14990023,"url":"https://github.com/winsoft666/zoe","last_synced_at":"2025-06-16T22:33:39.985Z","repository":{"id":212885934,"uuid":"224151677","full_name":"winsoft666/zoe","owner":"winsoft666","description":"C++ File Download Library.","archived":false,"fork":false,"pushed_at":"2025-02-20T04:22:05.000Z","size":703,"stargazers_count":46,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-02T11:07:53.952Z","etag":null,"topics":["aria","downloader","libcurl"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winsoft666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2019-11-26T09:24:44.000Z","updated_at":"2025-05-24T10:05:23.000Z","dependencies_parsed_at":"2023-12-17T02:53:42.190Z","dependency_job_id":"f2d129fd-3cba-47c2-b275-696ddee41ebb","html_url":"https://github.com/winsoft666/zoe","commit_stats":{"total_commits":175,"total_committers":9,"mean_commits":"19.444444444444443","dds":"0.39428571428571424","last_synced_commit":"ed69795c2886d8087c84aea3530e71fc06d2ecbb"},"previous_names":["winsoft666/zoe","winsoft666/teemo"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/winsoft666/zoe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winsoft666%2Fzoe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winsoft666%2Fzoe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winsoft666%2Fzoe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winsoft666%2Fzoe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winsoft666","download_url":"https://codeload.github.com/winsoft666/zoe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winsoft666%2Fzoe/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260252277,"owners_count":22981224,"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":["aria","downloader","libcurl"],"created_at":"2024-09-24T14:19:20.967Z","updated_at":"2025-06-16T22:33:39.977Z","avatar_url":"https://github.com/winsoft666.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zoe\r\n\r\nA high-performance C++ file download library.\r\n\r\n[English](README.md) | [简体中文](README_ch.md)\r\n\r\n## Features\r\n\r\n- Multi-protocol support (HTTP/HTTPS, FTP/FTPS)\r\n- Multi-threaded segmented downloads with resume capability\r\n- Support for large files (up to PB level)\r\n- Configurable download speed limits\r\n- Progress monitoring and real-time speed tracking\r\n- Hash verification (MD5, SHA1, SHA256)\r\n- SSL/TLS certificate verification\r\n- Proxy support\r\n- Cross-platform (Windows, Linux, macOS)\r\n\r\n## Building and Installation\r\n\r\nZoe's only dependency is [curl](https://github.com/curl/curl).\r\n\r\n### Windows\r\n\r\n```bash\r\nmkdir build\r\ncd build\r\ncmake ..\r\ncmake --build . --config Release\r\n```\r\n\r\n### Linux/macOS\r\n\r\n```bash\r\nmkdir build\r\ncd build\r\ncmake ..\r\nmake\r\n```\r\n\r\n## Usage\r\n\r\n### Basic Usage\r\n\r\n```cpp\r\n#include \u003czoe/zoe.h\u003e\r\n\r\nint main() {\r\n    Zoe z;\r\n    \r\n    // Configure download settings\r\n    z.setThreadNum(4);  // Use 4 threads\r\n    z.setMaxDownloadSpeed(1024 * 1024);  // Limit speed to 1MB/s\r\n    z.setMinDownloadSpeed(512 * 1024, 5000);  // Require at least 512KB/s for 5 seconds\r\n    \r\n    // Start download\r\n    auto future = z.start(\r\n        \"https://example.com/file.zip\",\r\n        \"file.zip\",\r\n        [](ZoeResult result) {\r\n            if (result == ZoeResult::SUCCESSED) {\r\n                std::cout \u003c\u003c \"Download completed successfully\" \u003c\u003c std::endl;\r\n            } else {\r\n                std::cout \u003c\u003c \"Download failed with error code: \" \u003c\u003c (int)result \u003c\u003c std::endl;\r\n            }\r\n        },\r\n        [](int64_t total, int64_t downloaded) {\r\n            if (total \u003e 0) {\r\n                int progress = (int)((double)downloaded * 100.0 / total);\r\n                std::cout \u003c\u003c \"Progress: \" \u003c\u003c progress \u003c\u003c \"%\" \u003c\u003c std::endl;\r\n            }\r\n        },\r\n        [](int64_t bytes_per_second) {\r\n            std::cout \u003c\u003c \"Current speed: \" \u003c\u003c bytes_per_second \u003c\u003c \" bytes/second\" \u003c\u003c std::endl;\r\n        }\r\n    );\r\n    \r\n    // Wait for download to complete\r\n    future.wait();\r\n    \r\n    return 0;\r\n}\r\n```\r\n\r\n### Command-line Tool\r\n\r\nZoe also provides a command-line tool for downloading files:\r\n\r\n```bash\r\nzoe_tool URL TargetFilePath [ThreadNum] [DiskCacheMb] [MD5] [TmpExpiredSeconds] [MaxSpeed]\r\n```\r\n\r\n- URL: Download URL.\r\n- TargetFilePath: target file saved path.\r\n- ThreadNum: thread number, optional, default is `1`.\r\n- DiskCacheMb: Disk cache size(Mb), default is `20Mb`.\r\n- MD5: target file md5, optional, if this value isn't empty, tools will check file md5 after download finished.\r\n- TmpExpiredSeconds: seconds, optional, the temporary file will expired after these senconds.\r\n- MaxSpeed: max download speed(byte/s).\r\n\r\n## Support\r\n\r\nIf you find this project helpful, please consider supporting it through my GitHub homepage.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinsoft666%2Fzoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinsoft666%2Fzoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinsoft666%2Fzoe/lists"}