{"id":15101874,"url":"https://github.com/RustyDaemon/nuget_scanner","last_synced_at":"2025-08-19T04:31:05.637Z","repository":{"id":245702979,"uuid":"817387208","full_name":"RustamIrzaev/nuget_scanner","owner":"RustamIrzaev","description":"A powerful tool for C# (.NET) developers to effortlessly scan projects, identify NuGet packages, licenses, check for outdated dependencies, and generate comprehensive reports with detailed package information.","archived":false,"fork":false,"pushed_at":"2024-07-26T18:48:44.000Z","size":99,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-31T03:21:03.260Z","etag":null,"topics":["dotnet","nuget","nuget-packages","rust"],"latest_commit_sha":null,"homepage":"","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/RustamIrzaev.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}},"created_at":"2024-06-19T15:41:02.000Z","updated_at":"2024-07-26T18:48:49.000Z","dependencies_parsed_at":"2024-07-26T20:42:58.856Z","dependency_job_id":null,"html_url":"https://github.com/RustamIrzaev/nuget_scanner","commit_stats":{"total_commits":21,"total_committers":1,"mean_commits":21.0,"dds":0.0,"last_synced_commit":"8156421584adf26ecdd70e10158bb8853ca7774c"},"previous_names":["rustamirzaev/nuget_scanner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustamIrzaev%2Fnuget_scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustamIrzaev%2Fnuget_scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustamIrzaev%2Fnuget_scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustamIrzaev%2Fnuget_scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RustamIrzaev","download_url":"https://codeload.github.com/RustamIrzaev/nuget_scanner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230315744,"owners_count":18207476,"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":["dotnet","nuget","nuget-packages","rust"],"created_at":"2024-09-25T18:42:12.704Z","updated_at":"2025-08-19T04:31:00.288Z","avatar_url":"https://github.com/RustamIrzaev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NuGet Scanner\n\n## Overview\n\nThe `NuGet Scanner` is a powerful tool designed for C# (.NET) engineers to easily scan their projects, identify used NuGet packages \u0026 licenses, check if those packages are outdated, and generate a detailed report.\nThis application leverages Rust's performance and safety to provide quick and reliable results.\n\n\u003e This is the successor of the [NuGet Helper](https://github.com/RustamIrzaev/NuGetHelper) that was released many years ago.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"70%\" alt=\"main_menu\" src=\"https://github.com/RustamIrzaev/nuget_scanner/assets/352703/adfc04c4-1e74-4c60-a8be-4a8f48e260c4\"\u003e\n\u003c/p\u003e\n\n## Features\n\n- **Scan C# Projects**. Automatically detects and processes `.csproj` and `packages.config` files within the specified directory.\n- **Identify NuGet Packages**. Extracts the list of NuGet packages used in each project.\n- **Fetch Package Details**. Retrieves comprehensive information about each NuGet package from the NuGet API, including:\n  - Package Name _(the name of the NuGet package)_\n  - Current Version _(the version of the package currently used in the project)_\n  - Latest Version _(the latest available version of the package)_\n  - License URL _(a URL pointing to the license information of the package)_\n  - License Type _(the license type or expression associated with the package)_\n  - Published Date _(the date when the current version of the package was published)_\n- **Check for Outdated Packages**. Compares the current version of each package with the latest available version to identify outdated packages.\n- **Generate Detailed Reports**. Outputs a detailed report in markdown file for each project, listing all NuGet packages along with their details and version status.\n- **Multiple Project Support**. Capable of scanning directories containing multiple C# projects, ensuring each project is analyzed individually.\n- **Execution Time Measurement**. Measures and displays the total execution time of the scanning process.\n\n### Notes\n\n- The application uses the NuGet API to fetch package details. Therefore, an active internet connection is required.\n- The inner parser uses NuGet SemVer2 so not every (old) package may be parsed correctly.\n\n## Usage\n\n### Prerequisites\n\n- **Rust**. Ensure that Rust is installed on your system. You can install Rust from [rust-lang.org](https://www.rust-lang.org/tools/install).\n\n### Building the Project\n\nClone the repository and build the project using Cargo:\n\n```bash\ngit clone https://github.com/RustamIrzaev/nuget_scanner.git\ncd nuget_scanner\ncargo build --release    # builds the project\n\ncd target/release        # switch to where the executable is placed\n./nuget-scanner -f \u003cFOLDER\u003e -r # run nuget-scanner! (see options below)\n```\n\n### Running the Application\n\nTo run the application, specify the directory to scan and optionally the maximum depth for scanning:\n\n```bash\n./nuget-scanner -f /path/to/your/csharp/project -r\n```\n\n### Parameters\n\n- `-f` or `--folder`: path to the directory containing the C# project(s).\n- `-r` or `--report`: to generate a report\n- `--max-depth`: (_Optional_) specifies the maximum depth for scanning directories. Default is 10.\n\n## Example output\n\n```markdown\nProject: MyProject\n\n- NuGet Package #1, version 13.0.3\n  license: MIT\n  license URL: https://github.com/RustamIrzaev/nuget_scanner/license.md\n  description: Package description\n  project URL: https://github.com/RustamIrzaev/nuget_scanner\n  released at: 08 Mar 2023\n- NuGet Package #2, version 12.0.3\n  license: MIT\n  license URL: https://github.com/RustamIrzaev/nuget_scanner/license.md\n  description: Package description\n  project URL: https://github.com/RustamIrzaev/nuget_scanner\n  released at: 08 Mar 2024\n\nCompleted in: 0.23 seconds\n```\n\n### Example report\n\nDemo report can be found [here](DEMO_LICENSE_REPORT.md).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"70%\" alt=\"main_menu\" src=\"https://github.com/RustamIrzaev/nuget_scanner/assets/352703/afc993d6-ad40-47f3-a0e1-8249eea7bb52\"\u003e\n\u003c/p\u003e\n\n## License\n\nThis project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE.MD) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRustyDaemon%2Fnuget_scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRustyDaemon%2Fnuget_scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRustyDaemon%2Fnuget_scanner/lists"}