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.
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
.
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)
}
- Edit the RunSettings - modify
className
to the example you'd like to run. - From sbt shell, run
~example/reStart
. You should seeServer started on port: 8080
. - Send curl request for defined
http Routes
, for eg :curl -i "http://localhost:8080/text"
forexample.HelloWorld
.
You can use the sbt-revolver plugin to start the server and run it in watch mode using ~ reStart
command on the SBT console.
Learn more on the ZIO Http homepage!
For the general guidelines, see ZIO contributor's guide.
See the Code of Conduct