{"id":15994015,"url":"https://github.com/knutwalker/latest-version","last_synced_at":"2026-01-15T22:34:33.579Z","repository":{"id":37833977,"uuid":"373938655","full_name":"knutwalker/latest-version","owner":"knutwalker","description":"Check deps.dev for the latest version of artifacts","archived":false,"fork":false,"pushed_at":"2023-03-17T00:59:34.000Z","size":101,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T20:11:51.451Z","etag":null,"topics":["hacktoberfest","rust"],"latest_commit_sha":null,"homepage":"","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/knutwalker.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}},"created_at":"2021-06-04T19:16:08.000Z","updated_at":"2023-01-31T18:56:36.000Z","dependencies_parsed_at":"2024-10-27T16:25:54.453Z","dependency_job_id":"af36b656-5b52-47d4-9036-b0e1a71418c7","html_url":"https://github.com/knutwalker/latest-version","commit_stats":{"total_commits":25,"total_committers":3,"mean_commits":8.333333333333334,"dds":0.48,"last_synced_commit":"6a8569e66b0706d30b4ddd2722558912d0e91595"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knutwalker%2Flatest-version","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knutwalker%2Flatest-version/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knutwalker%2Flatest-version/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knutwalker%2Flatest-version/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knutwalker","download_url":"https://codeload.github.com/knutwalker/latest-version/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246777833,"owners_count":20832032,"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":["hacktoberfest","rust"],"created_at":"2024-10-08T07:04:57.707Z","updated_at":"2026-01-15T22:34:33.553Z","avatar_url":"https://github.com/knutwalker.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003elatest-version\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/knutwalker/latest-version/actions\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/workflow/status/knutwalker/latest-version/checks/main?label=workflow\u0026style=for-the-badge\"\n         alt=\"GitHub Actions workflow status\" /\u003e\n  \u003c/a\u003e\n  \n  \u003ca href=\"https://crates.io/crates/latest-version\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/v/latest-version?style=for-the-badge\"\n         alt=\"Latest version on crates.io\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/knutwalker/latest-version/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/knutwalker/latest-version?sort=semver\u0026style=for-the-badge\"\n         alt=\"Latest release on Github\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://choosealicense.com/licenses/mit/\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/l/latest-version?style=for-the-badge\"\n         alt=\"License: MIT/Apache-2.0\" /\u003e\n  \u003c/a\u003e\n\n  \u003cbr /\u003e\n\n  \u003ca href=\"https://github.com/knutwalker/latest-version/search?l=rust\u0026type=code\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/top/knutwalker/latest-version?color=orange\u0026label=awesome\u0026style=for-the-badge\"\n         alt=\"GitHub most-used language\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/knutwalker/latest-version/search?type=code\"\u003e\n    \u003cimg src=\"https://img.shields.io/tokei/lines/github/knutwalker/latest-version?label=power%20level\u0026style=for-the-badge\"\n         alt=\"Total number of source code lines\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cem\u003eCheck deps.dev for the latest version of any artifact\u003c/em\u003e\u003c/p\u003e\n\n# Installation\n\nPre-build binaries for the main architectures can be pulled from [Github releases](https://github.com/knutwalker/latest-version/releases).\n\nThis project is published to crates.io, if you have a rust toolchain installed, you can also install via cargo:\n\n```\ncargo install latest-version\n```\n\nAlternatively, you can build from source.\n\n# Building\n\n## Prerequisites\n\nThis tool is build with Rust so you need to have a rust toolchain and cargo installed.\nIf you don't, please visit [https://rustup.rs/](https://rustup.rs/) and follow their instructions.\n\n## Building\n\nThe preferred way is to run:\n\n```\nmake install\n```\nIf you do not have a fairly recent make (on macOS, homebrew can install a newer version),\nor don't want to use make, you can also run `cargo install --path .`.\n\n# Usage\n\nRun `latest-version --help` for an overview of all available options.\n\nThe main usage is by providing artifact coordinates in the form of `[system:]groupId:artifact`, followed by multiple `:version` qualifiers.\nThese version qualifier are [Semantic Version Ranges](https://www.npmjs.com/package/semver#advanced-range-syntax).\nFor each of the provided versions, the latest available version on maven central is printed.\n\n### Default version\n\nThe version ranges can be left out, in which case the latest overall version is printed.\n\n### Multiple Version ranges\n\nYou can also enter multiple coordinates, each with their own versions to check against.\nThe result are printed as they arrive, so they might be out of order.\n\n### Pre Release Versions\n\nPre-releases can be included with the `--include-pre-releases` flag (or `-i` for short).\n\n### Version overrides\n\nThe versions are matched in order and a single version can only be matched by one qualifier.\nPrevious matches will – depending on the range – consume all versions that would have also been matched by later qualifiers.\nTry to define the qualifiers in the order from most restrictive to least.\n\n# Examples\n\nMatching against minor-compatible releases.\n\n    $ latest-version org.neo4j.gds:proc:~1.1:~1.3:1\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.1.0, \u003c1.2.0: 1.1.6\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.3.0, \u003c1.4.0: 1.3.5\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.0.0, \u003c2.0.0: 1.6.0\n\n\nMatching against major compatible releases. Note that `1.3` does not produce any match, as it is already covered by `1.1`.\n\n    $ latest-version org.neo4j.gds:proc:^1.1:^1.3:^1\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.1.0, \u003c2.0.0: 1.6.0\n    No version for maven:org.neo4j.gds:proc matching \u003e=1.3.0, \u003c2.0.0\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.0.0, \u003c2.0.0: 1.0.0\n\n\nInclusion of pre releases.\n\n    $ latest-version org.neo4j.gds:proc:~1.1:~1.3:1 --include-pre-releases\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.1.0, \u003c1.2.0: 1.1.6\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.3.0, \u003c1.4.0: 1.3.5\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=1.0.0, \u003c2.0.0: 1.4.0-alpha02\n\n\nDefault version.\n\n    $ latest-version org.neo4j.gds:proc\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=0.0.0: 1.6.0\n\n    $ latest-version org.neo4j.gds:proc --include-pre-releases\n    Latest version for maven:org.neo4j.gds:proc matching *: 1.4.0-alpha02\n\n\nMultiple checks.\n\n    $ latest-version org.neo4j.gds:proc org.neo4j:neo4j\n    Latest version for maven:org.neo4j.gds:proc matching \u003e=0.0.0: 1.6.0\n    Latest version for maven:org.neo4j:neo4j matching \u003e=0.0.0: 4.2.6\n\n\n# Artifact Coordinates\n\nThe default specifier searches for maven packages and uses the `groupId:artifactId` scheme.\nThese specifiers can be prefixed with one of the available systems on deps.dev.\nAt the time this is:\n\n * `maven`\n * `cargo`\n * `npm`\n * `go`\n\nThe presence of a system selector changes the way that the remaining specifier is understood.\n\n## Maven packages\n\n`[maven:]$groupId:$artifactId`\n\nMaven packages require two components, the `groupId` and the `artifactId`.\nThis is also the default system.\n\nThe following calls are identical\n\n    $ latest-version org.neo4j:neo4j maven:org.neo4j:neo4j\n    Latest version for maven:org.neo4j:neo4j matching \u003e=0.0.0: 4.2.6\n    Latest version for maven:org.neo4j:neo4j matching \u003e=0.0.0: 4.2.6\n\nThe explicit `maven:` can be used to search for artifacts that contain a group id that is also a system identifier, such as\n[`cargo:cargo`](https://search.maven.org/artifact/cargo/cargo/0.6/jar).\n\nUsing `cargo:cargo` will search the `cargo` system for a `cargo` crate.\nUsing `maven:cargo:cargo` will search the `maven` system for a `cargo` groupId and a `cargo` artifactId.\n\n## Cargo crates\n\n`cargo:$crate`\n\nCargo crates require an explicit `cargo:` system identifier, followed by a **single** crate name.\n\n    $ latest-version cargo:lenient_semver\n    Latest version for cargo:lenient_semver matching \u003e=0.0.0: 0.3.0\n\n## NPM packages\n\n`npm:[$scope:]$package`\n\nNPM packages require an explicit `npm:` system identifier, followed by an optional scope, followed by the package.\n\nIn the easiest form, npm requires only a single package specifier\n\n    $ latest-version npm:neo4j-driver\n    Latest version for npm:neo4j-driver matching \u003e=0.0.0: 4.3.0\n\nIn order to search for scoped packages, the scope needs be before the package name.\nThe scope can be separated via `/` or `:` and the leading `@` is optional.\nAll of these are identical\n\n    $ latest-version npm:@types/neo4j npm:types/neo4j npm:@types:neo4j npm:types:neo4j\n    Latest version for npm:@types/neo4j matching \u003e=0.0.0: 2.0.2\n    Latest version for npm:@types/neo4j matching \u003e=0.0.0: 2.0.2\n    Latest version for npm:@types/neo4j matching \u003e=0.0.0: 2.0.2\n    Latest version for npm:@types/neo4j matching \u003e=0.0.0: 2.0.2\n\n\nSearching for scoped packages where the package could be parsed as a version requirement,\nsuch as [`@euler/1`](https://www.npmjs.com/package/@euler/1/v/0.0.5)\nrequires the usage of either `@` or `/` to disambiguate from just searching for `euler` and the version requirement `1`.\n\n    $ latest-version npm:euler:1 npm:@euler:1 npm:euler/1 npm:@euler/1\n    No version for npm:euler matching \u003e=1.0.0, \u003c2.0.0   #  \u003c- `npm:euler:1` -\u003e unscoped `euler`, version 1\n    Latest version for npm:@euler/1 matching \u003e=0.0.0: 0.0.5  # using `@` to disambiguate\n    Latest version for npm:@euler/1 matching \u003e=0.0.0: 0.0.5  # using `/`  disambiguate\n    Latest version for npm:@euler/1 matching \u003e=0.0.0: 0.0.5  # using `@` and `/` to disambiguate\n\n## Go modules\n\n`go:$user:$module`\n\nGo modules require an explicit `go:` system identifier, followed by two more identifiers.\nThose will be searched as the full module path `github.com/$user/$module`.\nTo align the syntax with the `:` as separator, `github.com` can also be used instead of `go` to specify a module from the github.com repository.\nTo use a different repository, you can specify the full path as a single argument.\n\nThe following are identical\n\n    $ latest-version go:neo4j:neo4j-go-driver go:github.com/neo4j/neo4j-go-driver github.com:neo4j:neo4j-go-driver\n    Latest version for go:github.com/neo4j/neo4j-go-driver matching \u003e=0.0.0: v1.8.3\n    Latest version for go:github.com/neo4j/neo4j-go-driver matching \u003e=0.0.0: v1.8.3\n    Latest version for go:github.com/neo4j/neo4j-go-driver matching \u003e=0.0.0: v1.8.3\n\nNote that using a single identifier with `/` does require a repository:\n\n    $ latest-version go:neo4j/neo4j-go-driver\n    No version for go:neo4j/neo4j-go-driver matching \u003e=0.0.0\n\n# About the data\n\n`latest-version` uses [Open Source Insights (deps.dev)](https://deps.dev/about) to provide the data.\nPackage information is usually up to date within the hour.\n\nSee [What packages does Insights cover?](https://deps.dev/faq#what-packages-does-insights-cover)\nand [How fresh is the information?](https://deps.dev/faq#how-fresh-is-the-information)\nfor more information.\n\nLicense: MIT OR Apache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknutwalker%2Flatest-version","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknutwalker%2Flatest-version","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknutwalker%2Flatest-version/lists"}