{"id":18655082,"url":"https://github.com/hacker1024/proxies","last_synced_at":"2025-08-23T19:37:34.742Z","repository":{"id":56837438,"uuid":"306001899","full_name":"hacker1024/proxies","owner":"hacker1024","description":"A collection of proxy API wrappers for Dart.","archived":false,"fork":false,"pushed_at":"2021-03-08T01:33:31.000Z","size":51,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-25T00:02:08.514Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/proxies","language":"Dart","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/hacker1024.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}},"created_at":"2020-10-21T11:28:11.000Z","updated_at":"2023-12-09T05:10:48.000Z","dependencies_parsed_at":"2022-09-09T23:20:11.047Z","dependency_job_id":null,"html_url":"https://github.com/hacker1024/proxies","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/hacker1024/proxies","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacker1024%2Fproxies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacker1024%2Fproxies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacker1024%2Fproxies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacker1024%2Fproxies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hacker1024","download_url":"https://codeload.github.com/hacker1024/proxies/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacker1024%2Fproxies/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261777365,"owners_count":23208113,"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":[],"created_at":"2024-11-07T07:17:44.672Z","updated_at":"2025-06-25T00:02:13.881Z","avatar_url":"https://github.com/hacker1024.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxies\nA Dart package containing a collection of proxy API wrappers.\n\nThis package connects to different proxy services' APIs to create an IOClient\nthat uses the proxy.\n\n## Supported proxy services\nThere aren't many at the moment - pull requests are welcome!\nSee the \"Extending\" section of this README if you'd like to contribute.\n- Simple (host, port, username, password)\n- [NordVPN](https://nordvpn.com) (requires a paid account)\n- [Webshare](https://webshare.io) (requires a [free API key](https://proxy.webshare.io/userapi/keys))\n\n## Usage\n\nTo use a proxy provider (read on to create one):\n```dart\nimport 'dart:io';\nimport 'package:proxies/proxies.dart';\n\n// Get a \"Proxy\" object from the provider (async because some providers fetch data from a server).\nfinal proxy = await proxyProvider.getProxy();\n\n// Create an IOClient from the Proxy\nfinal client = proxy.createIOClient();\n\n// Use the IOClient\nfinal myHttpRequest = client.get('example.com');\n```\n\nTo create a regular proxy provider with authentication:\n\n```dart\nfinal proxyProvider = SimpleProxyProvider('host.com', 8080, 'myUsername', 'myPassword');\n```\n\nTo create a NordVPN proxy provider:\n```dart\nfinal proxyProvider = NordVPNProxyProvider(\n  username: r'myUsername',\n  password: r'myPassword',\n  countryCode: 'US',\n);\n```\n\nOther providers are created in similar ways.\n\n## Extending\nAdding a proxy provider is fairly straightforward. The base class to extend\nrequires these functions to be implemented:\n\n```dart\n/// This class defines functions all proxy providers must implement.\nabstract class ProxyProvider {\n  /// Returns a [Proxy] object future, to be used for necessary network operations.\n  Future\u003cProxy\u003e getProxy();\n\n  /// If the proxy provider caches lists of available proxies, invalidate those caches.\n  Future\u003cvoid\u003e invalidateCaches();\n}\n```\n\nThere's also an `AuthenticatedProxyProvider` that contains a few more\nauthentication-related things, which should be extended for any authentication-based services.\n\nTake a look in `src/providers/nordvpn/` for an example of the implementation and\ndirectory structure.\n\n## Features and bugs\n\nPlease file feature requests and bugs at the [issue tracker][tracker].\n\n[tracker]: https://github.com/hacker1024/proxies/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacker1024%2Fproxies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhacker1024%2Fproxies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacker1024%2Fproxies/lists"}