https://github.com/guardrail-dev/guardrail
Principled code generation from OpenAPI specifications
https://github.com/guardrail-dev/guardrail
akka-http cats codegen dropwizard guardrail http4s jackson java openapi scala swagger
Last synced: 30 days ago
JSON representation
Principled code generation from OpenAPI specifications
- Host: GitHub
- URL: https://github.com/guardrail-dev/guardrail
- Owner: guardrail-dev
- License: mit
- Created: 2017-09-01T20:31:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T22:19:50.000Z (7 months ago)
- Last Synced: 2024-10-29T15:48:45.463Z (7 months ago)
- Topics: akka-http, cats, codegen, dropwizard, guardrail, http4s, jackson, java, openapi, scala, swagger
- Language: Scala
- Homepage: https://guardrail.dev
- Size: 12.7 MB
- Stars: 525
- Watchers: 25
- Forks: 132
- Open Issues: 184
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Support: support/current-pr-labels.sh
Awesome Lists containing this project
README
guardrail [](https://github.com/guardrail-dev/guardrail/actions?query=workflow%3A%22CI%22) | [](https://codecov.io/gh/guardrail-dev/guardrail) | [](https://matrix.to/#/#guardrail:matrix.org) | [](https://gitter.im/guardrail-dev/guardrail?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | [](https://scala-steward.org)
===guardrail is a code generation tool, capable of reading from OpenAPI/Swagger specification files and generating both Scala and Java source code, targeting various libraries and frameworks listed here:
- Scala: `akka-http` and `http4s`, both backed by `circe`, as well as `dropwizard` backed by `jackson`
- Java: `dropwizard` and `spring-mvc`, both backed by `jackson`Build tool plugins
------------------| Plugins | versions | docs |
|---|---|---|
| [`guardrail-dev/sbt-guardrail`](https://github.com/guardrail-dev/sbt-guardrail) | [](https://search.maven.org/search?q=g:dev.guardrail%20a:sbt-guardrail) | [docs](docs/plugins/sbt.md) |
| [`guardrail-dev/guardrail-maven-plugin`](https://github.com/guardrail-dev/guardrail-maven-plugin) | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-maven-plugin) | [docs](docs/plugins/maven.md) |
| [`guardrail-dev/guardrail-gradle-plugin`](https://github.com/guardrail-dev/guardrail-gradle-plugin) | `guardrail-gradle-plugin` | [Plugin Portal](https://plugins.gradle.org/plugin/dev.guardrail) | [docs](docs/plugins/gradle.md) |
| [CLI support](./modules/cli) | Latest | [`cs install guardrail`](https://get-coursier.io/docs/cli-install), [docs](docs/plugins/make.md) |New to guardrail?
---Check out the [docs](https://guardrail.dev/)!
Compatible library versions are listed in [COMPATIBILITY.md](COMPATIBILITY.md)
guardrail module versions
---guardrail is modularized, using [`sbt-version-policy`](https://github.com/scalacenter/sbt-version-policy) to ensure binary compatibility between dependent modules.
The dependency chain and versions of published modules are listed below for reference:
| module | version | depends on |
|-----|-----|-----|
| guardrail-core | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-core_2.12) | |
| guardrail-java-support | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-java-support_2.12) | core |
| guardrail-java-async-http | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-java-async-http_2.12) | java-support |
| guardrail-java-dropwizard | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-java-dropwizard_2.12) | java-support, java-async-http |
| guardrail-java-spring-mvc | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-java-spring-mvc_2.12) | java-support |
| guardrail-scala-support | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-scala-support_2.12) | core |
| guardrail-scala-akka-http | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-scala-akka-http_2.12) | scala-support |
| guardrail-scala-dropwizard | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-scala-dropwizard_2.12) | scala-support |
| guardrail-scala-http4s | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-scala-http4s_2.12) | scala-support |
| guardrail-cli | [](https://search.maven.org/search?q=g:dev.guardrail%20a:guardrail-cli_2.12) | guardrail-core |Interested in contributing?
---[CONTRIBUTING.md](CONTRIBUTING.md) provides an overview of how the project is structured, expectations, and information around writing new integration tests.
The [issue tracker](https://github.com/guardrail-dev/guardrail/issues) also has tags for [`help wanted`](https://github.com/guardrail-dev/guardrail/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and [`good first issue`](https://github.com/guardrail-dev/guardrail/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).Adopters
========- [Avast](https://www.avast.com/)
- [Twilio](https://www.twilio.com/)Contributors
============We used to have a list of contributors here, but [github's Contributors page](https://github.com/guardrail-dev/guardrail/graphs/contributors) is much more accurate. Thanks to those who contributed before the project was open sourced!