<commit_before># semver.io

semver.io is a plain-text webservice that resolves [semver ranges](https://npmjs.org/doc/misc/semver.html#Ranges).

semver.io syncs Node.js versions from [nodejs.org/dist](http://nodejs.org/dist).

semver.io is used by the
[Heroku Node.js buildpack](https://github.com/heroku/heroku-buildpack-nodejs)
to resolve `engines.node` in package.json files.

semver.io is open source and available on
GitHub at [heroku/semver](https://github.com/heroku/semver).

semver.io is currently only implemented for Node.js, but is designed to
support any software that follows the semver [rules](http://semver.org/).

## Examples

Get the latest version of node that satisfies a given semver range:

- [/node/resolve/0.10.x](https://semver.io/node/resolve/0.10.x)
- [/node/resolve/0.11.x](https://semver.io/node/resolve/>=0.11.5)
- [/node/resolve/~0.10.15](https://semver.io/node/resolve/~0.10.15)
- [/node/resolve/>0.4](https://semver.io/node/resolve/>0.4)
- [/node/resolve/>=0.8.5 <=0.8.14](https://semver.io/node/resolve/>=0.8.5 <=0.8.14)

These routes are also provided for convenience:

- [/node/stable](https://semver.io/node/stable)
- [/node/unstable](https://semver.io/node/unstable)
- [/node/versions](https://semver.io/node/versions)

## JSON Endpoint

There's also a CORS-friendly HTTP endpoint at
[semver.io/node.json](http://semver.io/node.json) that gives you the whole kit
and caboodle:

```js
{
  stable: "0.10.22",
  unstable: "0.11.8",
  versions: [
    "0.0.1",
    "0.0.2",
    "0.0.3",
    "..."
  ]
}<commit_msg>SSL is not set up yet.<commit_after># semver.io

semver.io is a plain-text webservice that resolves [semver ranges](https://npmjs.org/doc/misc/semver.html#Ranges).

semver.io syncs Node.js versions from [nodejs.org/dist](http://nodejs.org/dist).

semver.io is used by the
[Heroku Node.js buildpack](https://github.com/heroku/heroku-buildpack-nodejs)
to resolve `engines.node` in package.json files.

semver.io is open source and available on
GitHub at [heroku/semver](https://github.com/heroku/semver).

semver.io is currently only implemented for Node.js, but is designed to
support any software that follows the semver [rules](http://semver.org/).

## Examples

Get the latest version of node that satisfies a given semver range:

- [/node/resolve/0.10.x](http://semver.io/node/resolve/0.10.x)
- [/node/resolve/0.11.x](http://semver.io/node/resolve/>=0.11.5)
- [/node/resolve/~0.10.15](http://semver.io/node/resolve/~0.10.15)
- [/node/resolve/>0.4](http://semver.io/node/resolve/>0.4)
- [/node/resolve/>=0.8.5 <=0.8.14](http://semver.io/node/resolve/>=0.8.5 <=0.8.14)

These routes are also provided for convenience:

- [/node/stable](http://semver.io/node/stable)
- [/node/unstable](http://semver.io/node/unstable)
- [/node/versions](http://semver.io/node/versions)

## JSON Endpoint

There's also a CORS-friendly HTTP endpoint at
[semver.io/node.json](http://semver.io/node.json) that gives you the whole kit
and caboodle:

```js
{
  stable: "0.10.22",
  unstable: "0.11.8",
  versions: [
    "0.0.1",
    "0.0.2",
    "0.0.3",
    "..."
  ]
}
{'fraction_non_alphanumeric': 0.18913676042677013, 'fraction_numerical': 0.038150662786938246, 'mean_word_length': 3.597325408618128, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 13, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5463690', 'n_tokens_mistral': 1226, 'n_tokens_neox': 1176, 'n_words': 239}