frevib / zio-http

A scala library to write Http apps.

Home Page:https://zio.github.io/zio-http

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Check out the full documentation here: Documentation

Continuous Integration Discord Chat Sonatype Nexus (Releases) Sonatype Nexus (Snapshots) Average time to resolve an issue Open in Visual Studio Code

Table of Contents

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)
}

Examples

You can checkout more examples in the example project —

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.

Installation

Setup via build.sbt

Stable

libraryDependencies += "io.d11" %% "zhttp" % "[version]"

Snapshot

libraryDependencies += "dev.zio" %% "zio-http" % "[version]"

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

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.

About

A scala library to write Http apps.

https://zio.github.io/zio-http

License:MIT License


Languages

Language:Scala 99.7%Language:Shell 0.2%Language:Dockerfile 0.1%