An interface for using different implementation betweeen Scala JVM and Scala.js
A base interface to implement http-server specific implementation
Asynchronous HTTP Client interface
Asynchronous HTTP Client interface
An abstraction for Future type (e.g., Resolves the differences between Twitter Future, Scala Future, etc.)
* Used for passing the subsequent actions to HttpFilter and for defining the leaf action of request processing chain.
A filter interface to define actions for handling HTTP requests and responses.
A filter interface to define actions for handling HTTP requests and responses.
Implementations of HttpFilter must wrap an exception occurred in the filter.apply(request, context) with F[_]
Immutable MultiMap structure for representing Http headers, query parameters, etc.
HttpRequest[Req] wraps native request classes (e.g., okhttp's Response, finagle Response, etc.) so that we can implement common logic for various backends.
A type class to bridge the original requests and backend-specific request types (e.g., finagle, okhttp, etc.)
HttpResponse[Resp] wraps native response classes (e.g., okhttp's Response, finagle Response, etc.) so that we can implement common logic for various backends.
A type class to bridge the original response type and HttpResponse
Exception to report errors to client
A synchronous HTTP Client interface
A synchronous HttpClient that awaits responses.
Router defines mappings from HTTP requests to Routes.
Router defines mappings from HTTP requests to Routes.
Router can be nested
From this router definition, the backend HTTP server specific implementation will build a mapping table like this: e1 -> Filter1 andThen process(e1) e2 -> Filter1 andThen process(e2) e3 -> Filter1 andThen Filter2 andThen process(e3) e4 -> process(e4)
Server address holder
Common classifiers for HTTP client responses and exceptions in order to retry HTTP requests.
Http request/response data type definitions
HTTP status code collection.
Helper for returning static contents