Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gleam-lang/http
πΈοΈ Types and functions for HTTP clients and servers!
https://github.com/gleam-lang/http
gleam http types
Last synced: 3 months ago
JSON representation
πΈοΈ Types and functions for HTTP clients and servers!
- Host: GitHub
- URL: https://github.com/gleam-lang/http
- Owner: gleam-lang
- License: apache-2.0
- Created: 2019-06-29T18:05:35.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-04-17T11:47:06.000Z (7 months ago)
- Last Synced: 2024-05-01T23:04:42.979Z (6 months ago)
- Topics: gleam, http, types
- Language: Gleam
- Homepage: https://hexdocs.pm/gleam_http/
- Size: 227 KB
- Stars: 149
- Watchers: 8
- Forks: 20
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gleam - gleam_http - [π](https://hexdocs.pm/gleam_http/) - Types and functions for Gleam HTTP clients and servers (Packages / HTTP)
README
# Gleam HTTP
Types and functions for HTTP clients and servers!
## HTTP Service Example
```gleam
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] | [Mist][mist] is a high performance pure Gleam HTTP 1.1 server |
| [cgi][cgi] | [cgi][cgi] is a adapter for the Common Gateway Interface. |
| [gleam_cowboy][cowboy-adapter] | [Cowboy][cowboy] is an Erlang HTTP2 & HTTP1.1 web server |
| [gleam_elli][elli-adapter] | [Elli][elli] is an Erlang HTTP1.1 web server |
| [gleam_plug][plug-adapter] | [Plug][plug] is an Elixir web application interface |[cgi]: https://github.com/lpil/cgi
[cowboy-adapter]: https://github.com/gleam-lang/cowboy
[cowboy]:https://github.com/ninenines/cowboy
[elli-adapter]: https://github.com/gleam-lang/elli
[elli]:https://github.com/elli-lib/elli
[mist]: https://github.com/rawhat/mist
[plug-adapter]: https://github.com/gleam-lang/plug
[plug]:https://github.com/elixir-plug/plug## 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-adapter] | [fetch][fetch] is a HTTP client included with JavaScript |
| [gleam_hackney][hackney-adapter] | [Hackney][hackney] is a simple HTTP client for Erlang |
| [gleam_httpc][httpc-adapter] | [httpc][httpc] is a HTTP client included with Erlang |[hackney]: https://github.com/benoitc/hackney
[hackney-adapter]: https://github.com/gleam-lang/hackney
[httpc]: https://erlang.org/doc/man/httpc.html
[httpc-adapter]: https://github.com/gleam-lang/httpc
[fetch]: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
[fetch-adapter]: https://github.com/gleam-lang/fetch