{"id":13651156,"url":"https://github.com/octaltree/playwright-rust","last_synced_at":"2025-05-16T13:06:13.560Z","repository":{"id":41158044,"uuid":"341942403","full_name":"octaltree/playwright-rust","owner":"octaltree","description":"Playwright port to Rust","archived":false,"fork":false,"pushed_at":"2024-05-04T14:52:53.000Z","size":1391,"stargazers_count":371,"open_issues_count":28,"forks_count":39,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-13T03:49:19.263Z","etag":null,"topics":["playwright","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octaltree.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-02-24T15:20:38.000Z","updated_at":"2025-05-05T15:36:04.000Z","dependencies_parsed_at":"2024-11-14T16:42:21.143Z","dependency_job_id":"6b730449-7aa8-4f23-8933-869ad60cabc3","html_url":"https://github.com/octaltree/playwright-rust","commit_stats":{"total_commits":424,"total_committers":3,"mean_commits":"141.33333333333334","dds":0.4339622641509434,"last_synced_commit":"a672ce7311eb596459acf3bdeb1d09e177a488d1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaltree%2Fplaywright-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaltree%2Fplaywright-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaltree%2Fplaywright-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octaltree%2Fplaywright-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octaltree","download_url":"https://codeload.github.com/octaltree/playwright-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254535827,"owners_count":22087399,"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":["playwright","rust"],"created_at":"2024-08-02T02:00:45.867Z","updated_at":"2025-05-16T13:06:13.502Z","avatar_url":"https://github.com/octaltree.png","language":"Rust","funding_links":[],"categories":["rust","Rust","Language Support"],"sub_categories":[],"readme":"# 🎭 [Playwright](https://playwright.dev) for Rust\n\n[![crates.io](https://img.shields.io/crates/v/playwright)](https://crates.io/crates/playwright)\n[![docs.rs](https://docs.rs/playwright/badge.svg)](https://docs.rs/playwright/)\n![MIT OR Apache-2.0](https://img.shields.io/crates/l/playwright)\n[![CI](https://github.com/octaltree/playwright-rust/actions/workflows/ci.yml/badge.svg)](https://github.com/octaltree/playwright-rust/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/octaltree/playwright-rust/branch/master/graph/badge.svg)](https://codecov.io/gh/octaltree/playwright-rust)\n\nPlaywright is a rust library to automate [Chromium](https://www.chromium.org/Home), [Firefox](https://www.mozilla.org/en-US/firefox/new/) and [WebKit](https://webkit.org/) built on top of Node.js library.\n\n## Installation\n```\n[dependencies]\nplaywright = \"0.0.20\"\n```\n\n## Usage\n```rust\nuse playwright::Playwright;\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), playwright::Error\u003e {\n    let playwright = Playwright::initialize().await?;\n    playwright.prepare()?; // Install browsers\n    let chromium = playwright.chromium();\n    let browser = chromium.launcher().headless(true).launch().await?;\n    let context = browser.context_builder().build().await?;\n    let page = context.new_page().await?;\n    page.goto_builder(\"https://example.com/\").goto().await?;\n\n    // Exec in browser and Deserialize with serde\n    let s: String = page.eval(\"() =\u003e location.href\").await?;\n    assert_eq!(s, \"https://example.com/\");\n    page.click_builder(\"a\").click().await?;\n    Ok(())\n}\n```\n\n## Async runtimes\n* [tokio](https://crates.io/crates/tokio)\n* [actix-rt](https://crates.io/crates/actix-rt)\n* [async-std](https://crates.io/crates/async-std)\n\nThese runtimes have passed tests. You can disable tokio, the default feature, and then choose another.\n\n## Incompatibility\nFunctions do not have default arguments in rust.\nFunctions with two or more optional arguments are now passed with the builder pattern.\n\n## Playwright Driver\nPlaywright is designed as a server-client. All playwright client dependent on the driver: zip of core js library and Node.js.\nApplication uses this library will be bundled the driver into rust binary at build time. There is an overhead of unzipping on the first run.\n\n### NOTICE\n```\nplaywright-rust redistributes Playwright licensed under the Apache 2.0.\nPlaywright has NOTICE:\n\"\"\"\nPlaywright\nCopyright (c) Microsoft Corporation\n\nThis software contains code derived from the Puppeteer project (https://github.com/puppeteer/puppeteer),\navailable under the Apache 2.0 license (https://github.com/puppeteer/puppeteer/blob/master/LICENSE).\n\"\"\"\n```\n\n## Browser automation in rust\n- [atroche/rust-headless-chrome](https://github.com/atroche/rust-headless-chrome)\n- [saresend/selenium-rs](https://github.com/saresend/selenium-rs)\n- [https://crates.io/crates/webdriver](https://crates.io/crates/webdriver)\n- [mattsse/chromiumoxide](https://github.com/mattsse/chromiumoxide)\n\n## Other languages\n- [microsoft/playwright](https://github.com/microsoft/playwright)\n    * [Documentation](https://playwright.dev/docs/intro/)\n    * [API Reference](https://playwright.dev/docs/api/class-playwright/)\n- [microsoft/playwright-python](https://github.com/microsoft/playwright-python)\n- [microsoft/playwright-sharp](https://github.com/microsoft/playwright-sharp)\n- [microsoft/playwright-java](https://github.com/microsoft/playwright-java)\n- [mxschmitt/playwright-go](https://github.com/mxschmitt/playwright-go)\n- [YusukeIwaki/playwright-ruby-client](https://github.com/YusukeIwaki/playwright-ruby-client)\n- [teodesian/playwright-perl](https://github.com/teodesian/playwright-perl)\n- [luka-dev/playwright-php](https://github.com/luka-dev/playwright-php)\n- [naqvis/playwright-cr](https://github.com/naqvis/playwright-cr)\n- [geometerio/playwright-elixir](https://github.com/geometerio/playwright-elixir)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctaltree%2Fplaywright-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctaltree%2Fplaywright-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctaltree%2Fplaywright-rust/lists"}