/blink-fork

A pure OCaml HTTP client for Riot

Primary LanguageOCamlMIT LicenseMIT

Blink

A pure OCaml HTTP client for Riot, inspired by Elixir's Mint. It serves as a lower-level library for handling HTTP connections within a single process.

Getting Started

Here's a basic example where we fetch the OCaml.org website.

First we create a connection, which we can reuse:

let url = Uri.of_string "https://ocaml.org" in
let* conn = Blink.connect url in

This figures out the protocol that we will use, and returns a conn value that we make requests with:

let req = Http.Request.make "/" in
let* conn = Blink.request conn req () in

Finally, once we have made a request, we can call Blink.stream to stream-parse the results and receive the parts as they come:

let* conn, [ `Status status; `Headers headers ] = Blink.stream conn in
let* conn, [ `Data body ] = Blink.stream conn in
let* _conn, [ `Done ] = Blink.stream conn in

When you receive a `Done message you'd have reached the end of the stream.