Skip to content

guersam/zio-http

Repository files navigation

ZIO Http

ZIO Http is a scala library for building http apps. It is powered by ZIO and netty and aims at being the defacto solution for writing, highly scalable and performant web applications using idiomatic scala.

Development CI Badge Sonatype Releases Sonatype Snapshots javadoc ZIO Http

Installation

Setup via build.sbt:

libraryDependencies += "dev.zio" %% "zio-http" % "0.0.4"

NOTE: ZIO Http is compatible with ZIO 1.x and ZIO 2.x.

Getting Started

A simple Http server can be built using a few lines of code.

import zio._
import zio.http._
import zio.http.model.Method

object HelloWorld extends ZIOAppDefault {

  val app: HttpApp[Any, Nothing] = Http.collect[Request] {
    case Method.GET -> !! / "text" => Response.text("Hello World!")
  }

  override val run =
    Server.serve(app).provide(Server.default)
}

Steps to run an example

  1. Edit the RunSettings - modify className to the example you'd like to run.
  2. From sbt shell, run ~example/reStart. You should see Server started on port: 8080.
  3. Send curl request for defined http Routes, for eg : curl -i "http://localhost:8080/text" for example.HelloWorld.

Watch Mode

You can use the sbt-revolver plugin to start the server and run it in watch mode using ~ reStart command on the SBT console.

Documentation

Learn more on the ZIO Http homepage!

Contributing

For the general guidelines, see ZIO contributor's guide.

Code of Conduct

See the Code of Conduct

Support

Come chat with us on Badge-Discord.

License

License

About

A scala library to write Http apps.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 99.7%
  • Other 0.3%