Gleam HTTP

Types and functions for HTTP clients and servers!

HTTP Service Example

import gleam/http/elli
import gleam/http/response.{type Response}
import gleam/http/request.{type Request}
import gleam/bytes_builder.{type BytesBuilder}

// Define a HTTP service
//
pub fn my_service(_request: Request(t)) -> Response(BytesBuilder) {
  let body = bytes_builder.from_string("Hello, world!")

  response.new(200)
  |> response.prepend_header("made-with", "Gleam")
  |> response.set_body(body)
}

// Start it on port 3000 using the Elli web server
//
pub fn main() {
  elli.become(my_service, on_port: 3000)
}

Server adapters

In the example above the Elli Erlang web server is used to run the Gleam HTTP service. Here’s a full list of the server adapters available, sorted alphabetically.

AdapterAbout
MistMist is a high performance pure Gleam HTTP 1.1 server
cgicgi is a adapter for the Common Gateway Interface.
gleam_cowboyCowboy is an Erlang HTTP2 & HTTP1.1 web server
gleam_elliElli is an Erlang HTTP1.1 web server
gleam_plugPlug is an Elixir web application interface

Client adapters

Client adapters are used to send HTTP requests to services over the network. Here’s a full list of the client adapters available, sorted alphabetically.

AdapterAbout
gleam_fetchfetch is a HTTP client included with JavaScript
gleam_hackneyHackney is a simple HTTP client for Erlang
gleam_httpchttpc is a HTTP client included with Erlang
Search Document