{"id":21926544,"url":"https://github.com/oxwazz/package_manager_detector_rs","last_synced_at":"2026-02-02T12:10:39.973Z","repository":{"id":264893716,"uuid":"891346284","full_name":"oxwazz/package_manager_detector_rs","owner":"oxwazz","description":"💡 Detect the package manager in use by identifying the associated package.json and lockfile.","archived":false,"fork":false,"pushed_at":"2024-12-16T04:49:24.000Z","size":106,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T13:38:31.696Z","etag":null,"topics":["bun","deno","npm","pnpm","yarn"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/package_manager_detector_rs","language":"Rust","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/oxwazz.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-20T07:02:47.000Z","updated_at":"2024-12-25T05:32:00.000Z","dependencies_parsed_at":"2025-10-09T16:32:17.234Z","dependency_job_id":"f5d935a2-c5ee-4eaf-895b-cc91deca16fb","html_url":"https://github.com/oxwazz/package_manager_detector_rs","commit_stats":null,"previous_names":["oxwazz/package-manager-detector-rs","oxwazz/package_manager_detector_rs"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/oxwazz/package_manager_detector_rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxwazz%2Fpackage_manager_detector_rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxwazz%2Fpackage_manager_detector_rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxwazz%2Fpackage_manager_detector_rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxwazz%2Fpackage_manager_detector_rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxwazz","download_url":"https://codeload.github.com/oxwazz/package_manager_detector_rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxwazz%2Fpackage_manager_detector_rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29012280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T10:37:29.253Z","status":"ssl_error","status_checked_at":"2026-02-02T10:37:28.644Z","response_time":58,"last_error":"SSL_read: 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":["bun","deno","npm","pnpm","yarn"],"created_at":"2024-11-28T22:08:32.254Z","updated_at":"2026-02-02T12:10:39.954Z","avatar_url":"https://github.com/oxwazz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# package_manager_detector_rs\n\n[![Latest Version]][crates.io] [![Rustc Version]][rustc]\n\n[//]: # ([![Build Status]][actions] [![Latest Version]][crates.io] [![Rustc Version]][rustc])\n\n[//]: # ([Build Status]: https://img.shields.io/github/actions/workflow/status/serde-rs/json/ci.yml?branch=master)\n\n[//]: # ()\n\n[//]: # ([actions]: https://github.com/serde-rs/json/actions?query=branch%3Amaster)\n\n[Latest Version]: https://img.shields.io/crates/v/package_manager_detector_rs.svg\n\n[crates.io]: https://crates.io/crates/package_manager_detector_rs\n\n[Rustc Version]: https://img.shields.io/badge/rustc-1.56+-lightgray.svg\n\n[rustc]: https://blog.rust-lang.org/2021/10/21/Rust-1.56.0.html\n\nPackage manager detector is based on lock files and the `packageManager` field in the current project's `package.json`\nfile.\n\nIt will detect your `yarn.lock` / `pnpm-lock.yaml` / `package-lock.json` / `bun.lockb` / `deno.lock` to know the current\npackage manager and use the `packageManager` field in your `package.json` if present.\n\n## Install\n\nRun the following Cargo command in your project directory:\n\n```sh\ncargo add package_manager_detector_rs\n```\n\nOr add the following line to your Cargo.toml:\n\n```toml\n[dependencies]\npackage_manager_detector_rs = \"0.2.7\"\n```\n\n## Usage\n\nTo check the file system for which package manager is used:\n\n```rust\nuse package_manager_detector_rs::{detect};\n\nfn main() {\n    let pm = detect();\n    if pm.is_none() {\n        println!(\"Could not detect package manager\")\n    }\n\n    println!(\"{:?}\", pm);\n    // HandlePackageManagerReturn { \n    //     name: \"yarn\", agent: \"yarn@berry\", version: \"berry\"\n    // }\n}\n```\n\n## Agents and Commands\n\nThis package includes package manager agents and their corresponding commands for:\n\n- `'agent'` - run the package manager with no arguments\n- `'install'` - install dependencies\n- `'frozen'` - install dependencies using frozen lockfile\n- `'add'` - add dependencies\n- `'uninstall'` - remove dependencies\n- `'global'` - install global packages\n- `'global_uninstall'` - remove global packages\n- `'upgrade'` - upgrade dependencies\n- `'upgrade-interactive'` - upgrade dependencies interactively: not available for `npm` and `bun`\n- `'execute'` - download \u0026 execute binary scripts\n- `'execute-local'` - execute binary scripts (from package locally installed)\n- `'run'` - run `package.json` scripts\n\n### Using Agents and Commands\n\nA `resolve_command` function is provided to resolve the command for a specific agent.\n\n```rust\nuse package_manager_detector_rs::{resolve_command, detect};\n\nfn main() {\n    let pm = detect();\n    if pm.is_none() {\n        println!(\"Could not detect package manager\")\n    }\n\n    println!(\"{:?}\", pm);\n    // HandlePackageManagerReturn {\n    //     name: \"yarn\", agent: \"yarn@berry\", version: \"berry\"\n    // }\n\n    let agent = pm.unwrap().agent;\n    let get_command = resolve_command(\u0026agent, \"add\", vec![\"@antfu/ni\"]);\n    let get_command = get_command.unwrap();\n\n    println!(\"Detected the {} package manager. You can run a install with {} {}\", \u0026agent, get_command.command, get_command.args.join(\" \"))\n    // Detected the yarn@berry package manager. You can run a install with yarn add @antfu/ni\n}\n```\n\nYou can check the source code for more information.\n\n## Credit\n\npackage_manager_detector_rs is currently being developed and maintained\nby [Muhammad Rahmahalim](https://github.com/oxwazz).\u003cbr\u003e\nThis project is\nlike [antfu-collective/package-manager-detector](https://github.com/antfu-collective/package-manager-detector) but in\nrust.\n\n## License\n\n[MIT](./LICENSE) License © 2024-PRESENT [Muhammad Rahmahalim](https://github.com/oxwazz)\n\n[//]: # (test)\n\n[//]: # ()\n\n[//]: # (// run test \u0026 update snapshot)\n\n[//]: # (INSTA_UPDATE=always cargo test)\n\n[//]: # ()\n\n[//]: # (// only run test)\n\n[//]: # (cargo test)\n\n\n[//]: # (\u003c!-- Badges --\u003e)\n\n[//]: # ()\n\n[//]: # ([npm-version-src]: https://img.shields.io/npm/v/package-manager-detector?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F)\n\n[//]: # ([npm-version-href]: https://npmjs.com/package/package-manager-detector)\n\n[//]: # ([npm-downloads-src]: https://img.shields.io/npm/dm/package-manager-detector?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F)\n\n[//]: # ([npm-downloads-href]: https://npmjs.com/package/package-manager-detector)\n\n[//]: # ([jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F)\n\n[//]: # ([jsdocs-href]: https://www.jsdocs.io/package/package-manager-detector)\n\n[//]: # ([license-src]: https://img.shields.io/github/license/antfu-collective/package-manager-detector.svg?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F)\n\n[//]: # ([license-href]: https://github.com/antfu-collective/package-manager-detector/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxwazz%2Fpackage_manager_detector_rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxwazz%2Fpackage_manager_detector_rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxwazz%2Fpackage_manager_detector_rs/lists"}