Livery Documentation

View Source

Livery is a modern Erlang web framework that serves one handler set over HTTP/1.1, HTTP/2, and HTTP/3 from a single service runtime. The wire layer (h1, h2, quic, ws) lives in sibling libraries; Livery owns the developer surface: router, middleware, handlers, extractors, observability.

These docs follow the Diátaxis split: tutorials teach, how-to guides solve a specific task, concepts explain how things fit together, reference is the exact API.

Start here

If you ...Read
Need a one-paragraph pitchOverview
Want a hello-world service in 5 minutesQuickstart
Want to learn Livery from scratchTutorials
Have a specific task in mindHow-to guides
Want to understand the modelConcepts
Want the exact APIReference

Tutorials

Step-by-step, learning-oriented.

How-to guides

Task-oriented recipes. Each guide is a specific problem and its solution.

Reading requests

Writing responses

Routing & middleware

Calling out

Operations

Testing and migration

Concepts

Explanation-oriented. Read these to understand why Livery is shaped the way it is.

For the long-form architecture write-up, see design.md.

Reference

Information-oriented. The exact API for each module is generated from source by ex_doc; browse the sidebar's "Modules" section, grouped as:

  • Public API: livery
  • Request and response: livery_req, livery_resp, livery_ext
  • Routing and middleware: livery_router, livery_middleware
  • Built-in middleware: livery_request_id, livery_body_limit, livery_timeout, livery_access_log
  • Adapters: livery_adapter, livery_test_adapter
  • Body reader: livery_body
  • Runtime: livery_app, livery_sup, livery_req_proc, livery_req_sup

Project state

The developer surface, the H1/H2/H3 wire adapters, and livery:start_service/1 are all in place and exercised end-to-end (the parity SUITE diffs the shared handler set across every adapter). See design.md for the long-form architecture.