Versioning & Packages

version range checker

Select an ecosystem, then test only the syntax that belongs to it.

version range checker

Input

Candidate versions, one per line

Result

Enter inputs to begin.

Processing stays in this browser. No package registry is queried.

Options

Composer: stable numeric versions, ^, ~, .*, comparisons, AND/OR and hyphen ranges.

Up to 500 version lines and 65,536 input characters. No registry lookup.

Enter inputs to begin.

When a README uses a range from another package manager, a version range checker helps you inspect the rule before editing a manifest. Paste candidate versions yourself; this page never asks a registry what is published.

A Composer version constraint and a NuGet version range use separate parsers. A Go module path is checked for lexical and downloadable-path shape, while a Cargo dependency version becomes one declaration.

Why use this version range checker?

One workspace keeps the ecosystem visible in every report.

The same punctuation can mean different things

This version range checker evaluates Composer numeric ranges and NuGet intervals independently. A bare NuGet 1.0 is a lower bound, while [1.0] is exact; neither is interpreted as an npm range.

Four distinct rule tracks lead from package inputs to separate reports without merging into one engine

A path and a declaration need different checks

The Go path result separates lexical validity from a downloadable domain prefix. Cargo output is a single TOML declaration with an explicit note about compatible versus exact versions.

A Go module path splits into lexical and download checks beside one generated Cargo dependency line

Avoid three easy package-rule mistakes

01

Choose the grammar first

Switch ecosystems before entering a rule. Each mode keeps its own draft, so a NuGet bracket interval is never silently tested as a Composer constraint.

02

Read the default version meaning

In NuGet, bare 1.0 means at least 1.0. In Cargo, bare 1.0 allows compatible updates; prefix it with = to request an exact version.

03

Export only the current report

Auto run waits 350 ms after edits. Turn it off to use Ctrl/Cmd+Enter; while a result is stale, copy and download remain disabled.

Four specific checks in one place

Composer numeric constraints

Test caret, tilde, comparisons, wildcards, AND, OR and partial hyphen ranges against your own stable numeric versions. Invalid candidate lines stay visible.

NuGet interval membership

Check open and closed endpoints, unbounded sides, prerelease candidates and the difference between a bare lower bound and [x] exact matching.

Go module path shape

Inspect permitted ASCII elements, reserved names, a lowercase downloadable domain prefix and /vN suffix rules without contacting a server.

Cargo dependency declaration

Generate one crates.io TOML dependency line from a name, requirement, features and default-features setting; copy the snippet separately from the JSON report.

Where these local checks stop

Composer is a numeric stable subset
dev branches, branch aliases, @stability and prerelease candidates are rejected. Project minimum-stability and repository data are needed for full Composer install decisions.
NuGet does not perform restore
Floating expressions such as 1.* are rejected. A matching row only tests interval membership; package source availability and dependency resolution may choose differently.
Go does not resolve a module
A lexically valid local path can lack the domain required for a downloadable dependency. This check does not use DNS, proxy.golang.org or a repository.
Cargo output is one declaration
Git, path, workspace, target and private-registry dependencies, plus whole Cargo.toml rewriting, are outside this generator. Existing comments are untouched.
Limits are explicit
A range report accepts at most 500 nonempty version lines and 65,536 input characters. It preserves physical line numbers and reports bad rows rather than dropping them.

Version range checker FAQ

What is the difference between caret and tilde in composer.json?

In Composer, ^1.2 permits compatible releases below 2.0, while ~1.2 permits releases below 2.0; with three components, ~1.2.3 stops before 1.3. This version range checker tests those numeric stable cases without branch stability rules.

Does NuGet [1.0,2.0) include 2.0?

No. [1.0,2.0) includes 1.0 and excludes 2.0 because the closing parenthesis makes the upper bound open.

Why does a Go module path need /v2?

Go uses a new module path for major version 2 and above, typically ending in /v2. This keeps incompatible major versions distinct in import paths; the page checks the suffix shape, not repository contents.

What does a bare version in Cargo.toml dependencies mean?

Cargo treats a bare version as a caret requirement. For example, 0.1.12 allows compatible 0.1.x releases below 0.2; use =0.1.12 to request one exact version.

What can I feed into a SemVer range tester?

Use the supplied-version lists only for the Composer and NuGet modes. This page does not fetch published versions, solve dependencies, or apply generic npm SemVer rules to every ecosystem.

Need help with a package rule?

Run the version range checker

Return to the version range checker, select the package ecosystem and inspect the latest report before copying a rule into your project.