{"id":32744658,"url":"https://github.com/apify/impit","last_synced_at":"2026-05-07T07:10:13.042Z","repository":{"id":272764936,"uuid":"914886514","full_name":"apify/impit","owner":"apify","description":"impit | rust library for browser impersonation","archived":false,"fork":false,"pushed_at":"2026-04-22T09:04:50.000Z","size":21520,"stargazers_count":450,"open_issues_count":11,"forks_count":35,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-04-22T11:13:31.777Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://apify.github.io/impit/js","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apify.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-10T14:09:09.000Z","updated_at":"2026-04-22T09:04:54.000Z","dependencies_parsed_at":"2026-04-13T12:02:08.711Z","dependency_job_id":null,"html_url":"https://github.com/apify/impit","commit_stats":null,"previous_names":["apify/impit"],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/apify/impit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Fimpit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Fimpit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Fimpit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Fimpit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apify","download_url":"https://codeload.github.com/apify/impit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apify%2Fimpit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32726758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2025-11-03T16:26:19.646Z","updated_at":"2026-05-07T07:10:13.036Z","avatar_url":"https://github.com/apify.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# impit | browser impersonation made simple\n\nimpit is a `rust` library that allows you to impersonate a browser and make requests to websites. It is built on top of `reqwest`, `rustls` and `tokio` and supports HTTP/1.1, HTTP/2, and HTTP/3.\n\nThe library provides a simple API for making requests to websites, and it also allows you to customize the request headers, use proxies, custom timeouts and more.\n\n```rust\nuse impit::cookie::Jar;\nuse impit::{impit::Impit, fingerprint::database as fingerprints};\n\n#[tokio::main]\nasync fn main() {\n    let impit = Impit::\u003cJar\u003e::builder()\n        .with_fingerprint(fingerprints::firefox_144::fingerprint())\n        .with_http3()\n        .build()\n        .unwrap();\n\n    let response = impit\n        .get(String::from(\"https://example.com\"), None, None)\n        .await;\n\n    match response {\n        Ok(response) =\u003e {\n            println!(\"{}\", response.text().await.unwrap());\n        }\n        Err(e) =\u003e {\n            println!(\"{:#?}\", e);\n        }\n    }\n}\n```\n\n### Other projects\n\nIf you'd prefer to use `impit` from a Node.js application, check out the [`impit-node`](https://github.com/apify/impit/tree/master/impit-node) folder, or download the package from npm:\n\n```bash\nnpm install impit\n```\n\nThe interface is the same as the native [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch).\n\n```typescript\nimport { Impit } from 'impit';\n\n// Set up the Impit instance\nconst impit = new Impit({\n    browser: \"chrome\", // or \"firefox\"\n    proxyUrl: \"http://localhost:8080\",\n    ignoreTlsErrors: true,\n});\n\n// Use the `fetch` method as you would with the built-in `fetch` function\nconst response = await impit.fetch(\"https://example.com\");\n\nconsole.log(response.status);\nconsole.log(response.headers);\nconsole.log(await response.text());\n// console.log(await response.json());\n// ...\n```\n\n### Usage from Rust\n\nTechnically speaking, the `impit` project is a somewhat thin wrapper around `reqwest` that provides a more ergonomic API for making requests to websites.\nThe real strength of `impit` is that it uses patched versions of `rustls` and other libraries that allow it to make browser-like requests.\n\nNote that if you want to use this library in your rust project, you have to add the following dependencies to your `Cargo.toml` file:\n```toml\n[dependencies]\nimpit = { git=\"https://github.com/apify/impit.git\", branch=\"master\" }\n\n[patch.crates-io]\nrustls = { git=\"https://github.com/apify/rustls.git\" }\nh2 = { git=\"https://github.com/apify/h2.git\" }\n```\n\nWithout the patched dependencies, the project won't build.\n\nNote that you also have to build your project with `rustflags = \"--cfg reqwest_unstable\"`, otherwise, the build will also fail.\nThis is because `impit` uses unstable features of `reqwest` (namely `http3` support), which are not available in the stable version of the library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapify%2Fimpit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapify%2Fimpit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapify%2Fimpit/lists"}