BlazeServerBuilder

class BlazeServerBuilder[F[_]] extends ServerBuilder[F]

BlazeServerBuilder is the component for the builder pattern aggregating different components to finally serve requests.

Variables:

Value parameters:
banner:

Pretty log to display on server start. An empty sequence such as Nil disables this

bufferSize:

Buffer size to use for IO operations

chunkBufferMaxSize

Size of the buffer that is used when Content-Length header is not specified.

connectorPoolSize:

Number of worker threads for the new Socket Server Group

httpApp:

The services that are mounted on this server to serve..

idleTimeout:

Period of Time a connection can remain idle before the connection is timed out and disconnected. Duration.Inf disables this feature.

isHttp2Enabled:

Whether or not to enable Http2 Server Features

maxConnections:

The maximum number of client connections that may be active at any time.

maxHeadersLen:

Maximum data that composes the headers. If exceeded returns a 400 Bad Request.

maxRequestLineLen:

Maximum request line to parse If exceeded returns a 400 Bad Request.

maxWebSocketBufferSize:

The maximum Websocket buffer length. 'None' means unbounded.

responseHeaderTimeout:

Time from when the request is made until a response line is generated before a 503 response is returned and the HttpApp is canceled

serviceErrorHandler:

The last resort to recover and generate a response this is necessary to recover totality from the error condition.

socketAddress:

Socket Address the server will be mounted at

Companion:
object
Source:
BlazeServerBuilder.scala
trait ServerBuilder[F]
class Object
trait Matchable
class Any

Type members

Value members

Concrete methods

override def bindSocketAddress(socketAddress: InetSocketAddress): Self
Definition Classes
Source:
BlazeServerBuilder.scala

Configures the compute thread pool used to process some async computations.

Configures the compute thread pool used to process some async computations.

This defaults to cats.effect.Async[F].executionContext. In almost all cases, it is desirable to use the default.

The Blaze server has a single-threaded event loop receiver used for picking up tcp connections which is completely separate to this pool. Following picking up a tcp connection, Blaze shifts to a compute pool to process requests. The request processing logic specified by the HttpApp is executed on the cats.effect.Async[F].executionContext. Some of the other async computations involved in request processing are executed on this pool.

Source:
BlazeServerBuilder.scala
def withLengthLimits(maxRequestLineLen: Int, maxHeadersLen: Int): Self

Configure HTTP parser length limits

Configure HTTP parser length limits

These are to avoid denial of service attacks due to, for example, an infinite request line.

Value parameters:
maxHeadersLen

maximum data that compose headers

maxRequestLineLen

maximum request line to parse

Source:
BlazeServerBuilder.scala
def withServiceErrorHandler(serviceErrorHandler: () => F): Self
def withSslContext(sslContext: SSLContext): Self

Configures the server with TLS, using the provided SSLContext and its default SSLParameters

Configures the server with TLS, using the provided SSLContext and its default SSLParameters

Source:
BlazeServerBuilder.scala
def withSslContextAndParameters(sslContext: SSLContext, sslParameters: SSLParameters): Self

Configures the server with TLS, using the provided SSLContext and SSLParameters.

Configures the server with TLS, using the provided SSLContext and SSLParameters.

Source:
BlazeServerBuilder.scala

Deprecated methods

@deprecated("Build an `SSLContext` from the first four parameters and use `withSslContext` (note lowercase). To also request client certificates, use `withSslContextAndParameters, calling either `.setWantClientAuth(true)` or `setNeedClientAuth(true)` on the `SSLParameters`.", "0.21.0-RC3")
def withSSL(keyStore: StoreInfo, keyManagerPassword: String, protocol: String, trustStore: Option[StoreInfo], clientAuth: SSLClientAuthMode): Self
Deprecated
Source:
BlazeServerBuilder.scala
@deprecated("Use `withSslContext` (note lowercase). To request client certificates, use `withSslContextAndParameters, calling either `.setWantClientAuth(true)` or `setNeedClientAuth(true)` on the `SSLParameters`.", "0.21.0-RC3")
def withSSLContext(sslContext: SSLContext, clientAuth: SSLClientAuthMode): Self
Deprecated
Source:
BlazeServerBuilder.scala
@deprecated("This operation is a no-op. WebSockets are always enabled.", "0.23")
def withWebSockets(enableWebsockets: Boolean): Self
Deprecated
Source:
BlazeServerBuilder.scala

Inherited methods

final def bindAny(host: String): Self
Inherited from:
ServerBuilder
Source:
ServerBuilder.scala
final def bindHttp(port: Int, host: String): Self
Inherited from:
ServerBuilder
Source:
ServerBuilder.scala
final def bindLocal(port: Int): Self
Inherited from:
ServerBuilder
Source:
ServerBuilder.scala
def channelOption[A](socketOption: SocketOption[A]): Option[A]
final def serve: Stream[F, ExitCode]

Runs the server as a process that never emits. Useful for a server that runs for the rest of the JVM's life.

Runs the server as a process that never emits. Useful for a server that runs for the rest of the JVM's life.

Inherited from:
ServerBuilder
Source:
ServerBuilder.scala
final def serveWhile(terminateWhenTrue: Signal[F, Boolean], exitWith: Ref[F, ExitCode]): Stream[F, ExitCode]

Runs the server as a Stream that emits only when the terminated signal becomes true. Useful for servers with associated lifetime behaviors.

Runs the server as a Stream that emits only when the terminated signal becomes true. Useful for servers with associated lifetime behaviors.

Inherited from:
ServerBuilder
Source:
ServerBuilder.scala

Returns the backend as a single-element stream. The stream does not emit until the backend is ready to process requests. The backend is shut down when the stream is finalized.

Returns the backend as a single-element stream. The stream does not emit until the backend is ready to process requests. The backend is shut down when the stream is finalized.

Inherited from:
BackendBuilder
Source:
BackendBuilder.scala
def withSocketReceiveBufferSize(socketReceiveBufferSize: Int): Self
def withSocketSendBufferSize(socketSendBufferSize: Int): Self
final def withoutBanner: Self

Disable the banner when the server starts up

Disable the banner when the server starts up

Inherited from:
ServerBuilder
Source:
ServerBuilder.scala