Piaf is a client library for the HTTP/1.X and HTTP/2 protocols written entirely
Piaf is released to OPAM.
You can depend on it via esy or by running
opam install piaf.
Note: make sure to mirror Piaf's own resolutions located in the opam
Usage & Examples
TODO, read the mli file for now.
open Piaf let get_sync url = let open Lwt_result.Syntax in Lwt_main.run begin print_endline("Sending request..."); let* response = Client.Oneshot.get (Uri.of_string url) in if (Status.is_successful response.status) then Body.to_string response.body else let message = Status.to_string response.status in Lwt.return (Error (`Msg message)) end let () = match get_sync "https://example.com" with | Ok body -> print_endline body | Error error -> let message = Error.to_string error in prerr_endline ("Error: " ^ message)
There's a more substantive example of using Piaf's API in
bin/carl.ml, an implementation of a subset of curl, in caml.
There's two ways to get a development environemnt up and running. If you have (or don't mind getting)
nix installed, the repository includes scripts to set up a sandbox. Otherwise you can use
opam to install the necessary dependencies globally.
Option 1) Setting up the sandbox
nix has been installed and set up, run
nix-shell --pure in the repository root. Once it's done building, you should have the development environment set up!
Option 2) Setting up opam
For this approach you'll need to install
opam and set it up with a switch using
ocaml >= 4.08. Once that's done, run
opam pin . --deps-only to install the dependencies.
Note that this installs the dependencies globally, and that the development environment is dependent on the switch used.
dune build to build,
dune build --watch to run a watcher daemon that will build incrementally.
dune exec examples/docs/readme.exe to run the simple example above.
dune exec bin/carl.exe to run
License & Copyright
Copyright (c) 2019 António Nuno Monteiro
piaf is distributed under the 3-Clause BSD License, see LICENSE.
>= "0.3.2" & < "0.4.0"