{"id":19028664,"url":"https://github.com/neargye/semver","last_synced_at":"2025-04-08T17:17:06.820Z","repository":{"id":31410505,"uuid":"125559946","full_name":"Neargye/semver","owner":"Neargye","description":"Semantic Versioning for modern C++","archived":false,"fork":false,"pushed_at":"2025-03-29T20:17:09.000Z","size":479,"stargazers_count":315,"open_issues_count":1,"forks_count":37,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-01T14:20:02.021Z","etag":null,"topics":["c-plus-plus","c-plus-plus-17","cplusplus","cplusplus-17","cpp","cpp17","header-only","no-dependencies","semantic-versioning","semver","single-file"],"latest_commit_sha":null,"homepage":"","language":"C++","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/Neargye.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},"funding":{"custom":["paypal.me/Neargye","btc.com/btc/address/bc1qzevldln8tqz5xf4lyufu9msgl7t97xstth9zq8","etherscan.io/address/0xbb42fdef9204fa6f3d535d202b088dee35fcbd31"],"liberapay":"neargye"}},"created_at":"2018-03-16T19:17:13.000Z","updated_at":"2025-03-29T20:17:13.000Z","dependencies_parsed_at":"2024-06-12T04:37:13.163Z","dependency_job_id":"6ed55c8a-949b-4df8-892b-f0bdb382bd81","html_url":"https://github.com/Neargye/semver","commit_stats":{"total_commits":196,"total_committers":11,"mean_commits":"17.818181818181817","dds":0.09693877551020413,"last_synced_commit":"95f82a4ed0df0c9d11838234d661c4fd27d185b1"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neargye%2Fsemver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neargye%2Fsemver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neargye%2Fsemver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neargye%2Fsemver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neargye","download_url":"https://codeload.github.com/Neargye/semver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247888559,"owners_count":21013001,"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":["c-plus-plus","c-plus-plus-17","cplusplus","cplusplus-17","cpp","cpp17","header-only","no-dependencies","semantic-versioning","semver","single-file"],"created_at":"2024-11-08T21:11:59.963Z","updated_at":"2025-04-08T17:17:06.767Z","avatar_url":"https://github.com/Neargye.png","language":"C++","funding_links":["paypal.me/Neargye","btc.com/btc/address/bc1qzevldln8tqz5xf4lyufu9msgl7t97xstth9zq8","etherscan.io/address/0xbb42fdef9204fa6f3d535d202b088dee35fcbd31","https://liberapay.com/neargye"],"categories":[],"sub_categories":[],"readme":"[![Github releases](https://img.shields.io/github/release/Neargye/semver.svg)](https://github.com/Neargye/semver/releases)\n[![Vcpkg package](https://img.shields.io/badge/Vcpkg-package-blueviolet)](https://github.com/microsoft/vcpkg/tree/master/ports/neargye-semver)\n[![Conan package](https://img.shields.io/badge/Conan-package-blueviolet)](https://conan.io/center/recipes/neargye-semver)\n[![License](https://img.shields.io/github/license/Neargye/semver.svg)](LICENSE)\n\nC++ library compare and manipulate versions are available as extensions to the `\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e-\u003cprerelease_tag\u003e+\u003cbuild_metadata\u003e` format complying with [Semantic Versioning 2.0.0](https://semver.org)\n\n## [Features \u0026 Examples](example/)\n\n* Parse\n\n  ```cpp\n  semver::version v1;\n  if (semver::parse(\"1.4.3\", v1)) {\n    const int patch = v1.patch(); // 3\n    // do something...\n  }\n\n  semver::version v2;\n  if (semver::parse(\"1.2.4-alpha.10\")) {\n    const std::string prerelease_tag = v2.prerelease_tag() // alpha.10\n    // do something...\n  }\n  ```\n\n* Сomparison\n\n  ```cpp\n  assert(v1 != v2);\n  assert(v1 \u003e v2);\n  assert(v1 \u003e= v2);\n  assert(v2 \u003c v1);\n  assert(v2 \u003c= v1);\n  ```\n\n* Validate\n\n  ```cpp\n  const bool result = semver::valid(\"1.2.3-alpha+build\");\n  assert(result);\n  ```\n\n* Range matching\n\n  ```cpp\n  semver::range_set range;\n  if (semver::parse(\"\u003e=1.0.0 \u003c2.0.0 || \u003e3.2.1\", range)) {\n    semver::version version;\n    if (semver::parse(\"1.2.3\", version)) {\n      assert(range.contains(version));\n    }\n  }\n  ```\n\nCheck the *examples* folder to see more various usage examples\n  \n## Integration\n\nYou should add required file [semver.hpp](include/semver.hpp).\n\nIf you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can use the [neargye-semver](https://github.com/microsoft/vcpkg/tree/master/ports/neargye-semver).\n\nIf you are using [Conan](https://www.conan.io/) to manage your dependencies, merely add `neargye-semver/x.y.z` to your conan's requires, where `x.y.z` is the release version you want to use.\n\n\nAlternatively, you can use something like [CPM](https://github.com/TheLartians/CPM) which is based on CMake's `Fetch_Content` module.\n\n```cmake\nCPMAddPackage(\n    NAME semver\n    GITHUB_REPOSITORY Neargye/semver\n    GIT_TAG x.y.z # Where `x.y.z` is the release version you want to use.\n)\n```\n\n## Compiler compatibility\n\n* Clang/LLVM \u003e= 5\n* MSVC++ \u003e= 14.11 / Visual Studio \u003e= 2017\n* Xcode \u003e= 10\n* GCC \u003e= 7\n\n## Licensed under the [MIT License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneargye%2Fsemver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneargye%2Fsemver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneargye%2Fsemver/lists"}