README.md

# CollectableStreamer

This is a module for accessing `System.cmd/3` output line by line.

`CollectableStreamer` implements the `Collectable` protocol, allowing you to
stream the output of a command to a function. This is particularly useful for processing
the output of long-running commands without having to wait for the entire output to be available.

## Example Usage

```elixir
streamer = CollectableStreamer.new(fn line -> IO.puts("Received line: #{line}") end)
System.cmd("rsync", ["-av", "foo@example.com:/source/", "/destination/"], into: streamer)
```

## Installation

The package can be installed by adding `collectable_streamer` to your list of
dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:collectable_streamer, "~> 0.1.0"}
  ]
end
```