# Sources

A source is a stream that is not writable.
You *must* have a source at the start of a pipeline
for data to move through.

in general:

``` js
pull(source, through, sink)
```

See also:
* [Throughs](../throughs/index.md)
* [Sinks](../sinks/index.md)

## [values](./values.md)
## [keys](./keys.md)
## [count](./count.md)
## [infinite](./infinite.md)
## [empty](./empty.md)
## [once](./once.md)
## [error](./error.md)
