Skip to content

🕸️ Types and functions for HTTP clients and servers!

License

Notifications You must be signed in to change notification settings

gleam-lang/http

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Adapter About
Mist Mist is a high performance pure Gleam HTTP 1.1 server
cgi cgi is a adapter for the Common Gateway Interface.
gleam_cowboy Cowboy is an Erlang HTTP2 & HTTP1.1 web server
gleam_elli Elli is an Erlang HTTP1.1 web server
gleam_plug Plug 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.

Adapter About
gleam_fetch fetch is a HTTP client included with JavaScript
gleam_hackney Hackney is a simple HTTP client for Erlang
gleam_httpc httpc is a HTTP client included with Erlang