#http #request #client


higher level HTTP client library for the lunatic runtime

7 releases

0.1.6 May 9, 2023
0.1.5 Apr 17, 2023
0.1.4 Nov 17, 2022

#128 in HTTP client

25 downloads per month


3.5K SLoC


This project is an ongoing effort to port the reqwest library to the lunatic runtime

What works:

  • json, text and bytes for request and response bodies
  • decompression with brotli, gzip and deflate
  • redirect handling
  • cookies
  • chunked responses
  • handling of multiple open tcp streams per client
  • timeouts (needs some more testing)
  • Piping of responses (requires chunk-encoding)
  • pooling of connections (needs more usage of lib to find a good approach)
  • proxy handling
  • upgrade, socks5 support and websockets
  • custom dns resolver

MIT/Apache-2 licensed CI

An ergonomic, batteries-included HTTP Client for the lunatic runtime written in Rust.

  • Plain bodies, JSON, urlencoded, multipart (see examples)
  • Redirects with different policies
  • HTTPS via lunatic-native TLS (see examples)
  • Cookie Store
  • Customizable function-based redirect policy (IN PROGRESS)
  • HTTP Proxies (IN PROGRESS)


This example uses Lunatic and enables some optional features, so your Cargo.toml could look like this:

nightfly = { "0.1.0" }
lunatic = { "0.12.0" }

And then the code:

use std::collections::HashMap;

fn main() {
    let resp = nightfly::get("https://httpbin.org/ip")
        .json::<HashMap<String, String>>()
    println!("{:#?}", resp);



Licensed under either of


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~432K SLoC