HTTPStream

HTTPStream is a tiny, tiny package that wraps HTTP requests into a Stream so that you can manage data on the fly, without keeping everything in memory.

Downloading an image:

image_url
|> HTTPStream.get()
|> Stream.into(File.stream!("image.png"))
|> Stream.run()

Streaming multiple images into a ZIP archive (using zstream)

[
  Zstream.entry("a.png", HTTPStream.get(a_url))
  Zstream.entry("b.png", HTTPStream.get(b_url))
]
|> Zstream.zip()
|> Stream.into(File.stream!("archive.zip"))
|> Stream.run()

Table of Contents

Installation

First, you need to add http_stream to your list of dependencies on mix.exs:

def deps do
  [
    {:http_stream, "~> 0.1.0"}
  ]
end

Development

If you want to setup the project for local development, you can just run the following commands.

git clone git@github.com:subvisual/http_stream.git
cd http_stream
bin/setup

PRs and issues welcome.

TODOs

Contribution Guidelines

Contributions must follow Subvisual's guides.

About

HTTPStream is maintained by Subvisual.

Subvisual

If you need to contact the maintainer, you may <a href="mailto:contact@subvisual.co">reach out to us</a>.