Packages

  • package root
    Definition Classes
    root
  • package lol

    This is the documentation for the lolhttp library.

    This is the documentation for the lolhttp library.

    • http is the core module providing HTTP Client and Server.
    • json is an optional module providing integration with the circe JSON library.
    • html is an optional module providing HTML templating.
    Definition Classes
    root
  • package html

    HTML templating.

    HTML templating.

    val items: List[Item] = ???
    val content: Html = tmpl"""
      <­h1>Items<­/h1>
      @if(items.isEmpty) {
        <­em>No results<­/em>
      }
      else {
        <­ul>
           @items.map { item =>
             <li>@item.name</li>
           }
    
      }
    """

    Html values can also be easily created from the html interpolation. Conversion from Scala values is done via the ToHtml type class.

    val content: Html = html"""Hello $${name}!"""

    They will be encoded as lol.http.Content thanks to Html.encoder.

    Definition Classes
    lol
  • package http

    The core module for lolhttp.

    The core module for lolhttp.

    Server.listen(8888) { request =>
      Ok("Hello world!")
    }
    
    Client.run(Get("http://localhost:8888/")) { response =>
      response.readAs[String]
    }

    Provides an HTTP Client and an HTTP Server. Both client and server are Service functions. A service function takes a Request and eventually returns a Response. Requests and responses are shared between the client and the server API, making it easy to assemble them. Both are seen as a set of HTTP headers, and a Content body.

    The content fs2.Stream is based on fs2 and can be lazily consumed if needed. It can be encoded and decoded using the appropriate ContentEncoder and ContentDecoder.

    SSL is supported on both sides.

    Definition Classes
    lol
  • package json

    Provides integration with the circe JSON library.

    Provides integration with the circe JSON library.

    Server.listen(8888) { request =>
      request.readAs(json[MyRequestData]).flatMap { data =>
        Ok(MyResponseData(data).asJson)
      }
    }

    Nothing really special here. Just a bunch of useful lol.http.ContentEncoder and lol.http.ContentDecoder for io.circe.Json values.

    This module is optional and you can easily use another scala JSON library by providing the required encoder/decoder (or treating JSON as string).

    Definition Classes
    lol
  • JsonContent
p

lol

json

package json

Provides integration with the circe JSON library.

Server.listen(8888) { request =>
  request.readAs(json[MyRequestData]).flatMap { data =>
    Ok(MyResponseData(data).asJson)
  }
}

Nothing really special here. Just a bunch of useful lol.http.ContentEncoder and lol.http.ContentDecoder for io.circe.Json values.

This module is optional and you can easily use another scala JSON library by providing the required encoder/decoder (or treating JSON as string).

Source
package.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. json
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. implicit val defaultJsonDecoder: ContentDecoder[Json]

    Default decoder for JSON values, using UTF-8 as charset and lol.http.ContentDecoder.MaxSize as maximum amount of bytes to read in memory.

  2. implicit val defaultJsonEncoder: ContentEncoder[Json]

    Default encoder for JSON values, using UTF-8 as charset.

  3. def json[A](implicit jsonDecoder: Decoder[A]): ContentDecoder[A]

    Creates a lol.http.ContentDecoder for any type A given that there is an available circe JSON decoder for A.

    Creates a lol.http.ContentDecoder for any type A given that there is an available circe JSON decoder for A.

    jsonDecoder

    the circe JSON decoder for type A.

    returns

    a lol.http.ContentDecoder for A.

  4. implicit val sseJsonEventDecoder: EventDecoder[Json]

    JSON support for Server Sent Events.

  5. implicit val sseJsonEventEncoder: EventEncoder[Json]

    JSON support for Server Sent Events.

  6. object JsonContent

    Provides lol.http.ContentEncoder and lol.http.ContentDecoder for io.circe.Json values.

Inherited from AnyRef

Inherited from Any

Ungrouped