Skip to content

haliphax/ktor-starter-project

Repository files navigation

Ktor reference project implementation

A very basic ktor project with some convenient configuration and structure

Documentation Build Tests Coverage

Prerequisites

You will need a JDK that matches the version used by the project. (The current version is 21.) The project is primarily developed and tested against the Temurin JDK distribution from Adoptium.

Features

  • HTTP server with separate plugins for authentication, routing, and serialization
  • Coroutine-based gRPC server engine with demonstration service
  • Koin for annotation-driven dependency injection
  • Shared Gradle plugins, project dependencies, and build configuration
  • MockK and kotest libraries for coherent unit tests
  • JaCoCo test coverage plugin with reasonable configuration
  • Test report aggregation for collecting test reports for subprojects
  • Unified allTest testing suite (contains all other testing suites), with associated coverage report and verification tasks
  • GitHub Actions workflow for pull requests and merges
    • Checks PR title for gitmoji convention
    • Runs ktlint and prettier checks against files
    • Executes unit and integration tests
    • Test reports via Testspace
    • Coverage reports via Coveralls
      • Also added to PR as comment
      • Also added to workflow job summary
    • Builds project documentation with dokka