[![#StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://vshymanskyy.github.io/StandWithUkraine) # Cucumber Common Components Cucumber is made up of several libraries, many of which are kept in _polyglot_ repositories, meaning we keep multiple language implementations of the same library together in the same repo. | Library | Description | Latest release | | ---------------------- | ---------------------------------- | -------------- | | [cucumber-expressions] | Pattern-matching for Gherkin steps | ![Latest release](https://img.shields.io/github/v/release/cucumber/cucumber-expressions?sort=semver) | | [tag-expressions] | For parsing tag selection queries | ![Latest release](https://img.shields.io/github/v/release/cucumber/tag-expressions?sort=semver) | | [gherkin] | Parser for Gherkin feature files | ![Latest release](https://img.shields.io/github/v/release/cucumber/gherkin?sort=semver) | | [messages] | JSON message protocol | ![Latest release](https://img.shields.io/github/v/release/cucumber/messages?sort=semver) | | [query] | Query API for messages | ![Latest release](https://img.shields.io/github/v/release/cucumber/query?sort=semver) | | [gherkin-utils] | API for querying parsed Gherkin documents | ![Latest release](https://img.shields.io/github/v/release/cucumber/gherkin-utils?sort=semver) | If you're not sure which repository your issue belongs under, or it cuts across multiple repos, raise it in this repo. [cucumber-expressions]: https://github.com/cucumber/cucumber-expressions [tag-expressions]: https://github.com/cucumber/tag-expressions [gherkin]: https://github.com/cucumber/gherkin [messages]: https://github.com/cucumber/messages [query]: https://github.com/cucumber/query [gherkin-utils]: https://github.com/cucumber/gherkin-utils