{"repo":"lachezar/zio-scala-3-project","free":true,"listed":false,"github":"https://github.com/lachezar/zio-scala-3-project","clone":"git clone https://github.com/lachezar/zio-scala-3-project.git","description":"A template project for web services using ZIO 2 and Scala 3","language":"Scala","stars":18,"topics":["scala3","template","webservice","zio2","scala","zio","zio-http","zio-quill"],"license":"MIT","category":"databases-storage","readme_excerpt":"ZIO 2 + Scala 3 project template This project can be used as a starting point for a ZIO 2 + Scala 3 web service with public, private and internal APIs served on different ports. The architecture is 3 layered - Domain, Implementation and API layers. The Domain layer should be used for business logic only, the Implementation should hold the actual implementation (e.g. code that interacts with Postgres or Kafka) and the API layer is responsible for http communication with the outside world. Notable dependencies - Chimney (transformations between domain / dto / dao objects) - Flyway (database migrations) - zio-http - zio-json - zio-kafka - zio-prelude (validation of inputs) - zio-quill (type safe sql queries) SBT Plugins - sbt-dependency-updates (check for new versions of the project dependencies) - sbt-dotenv (load configuration from a .env file automatically when running sbt run ) - sbt-native-packager (package the compiled code / add required scripts to run it) - sbt-scalafmt (code formatter) - sbt-tpolecat (good scala compiler options defaults) - sbt-wartremover (linter) What is missing? Currently there is no way to define OpenAPI specification for the web APIs, since zio-http does not have support for this (see https://github.com/zio/zio-http/issues/1520 and https://github.com/zio/zio-http/issues/1498). It is possible to use Tapir if OpenAPI specification is a must. How to run it You can start the Kafka (Redpanda) and Postgres using docker compose up and then start the appli","default_branch":null,"files":null,"tree":[],"storefront":"/r/lachezar","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/lachezar/zio-scala-3-project/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}