@@ -1,19 +1,7 @@
1−# Streamly
1+# [Streamly](https://streamly.composewell.com)
3−[](https://hackage.haskell.org/package/streamly)
4[](https://gitter.im/composewell/streamly)
3[](https://gitter.im/composewell/streamly)
5−[](https://travis-ci.com/composewell/streamly)
4+[](https://hackage.haskell.org/package/streamly)
6−[](https://ci.appveyor.com/project/harendra-kumar/streamly)
7−[](https://circleci.com/gh/composewell/streamly/tree/master)
8−[](https://coveralls.io/github/composewell/streamly?branch=master)
12−* Documentation: [Quick](#streaming-concurrently) | [Tutorial](https://hackage.haskell.org/package/streamly/docs/Streamly-Tutorial.html) | [Reference (Hackage)](https://hackage.haskell.org/package/streamly) | [Reference (Latest)](https://composewell.github.io/streamly) | [Guides](docs)
13−* Installing: [Installing](./INSTALL.md) | [Building for optimal performance](docs/Build.md)
14−* [streamly-examples](https://github.com/composewell/streamly-examples)
15−* Benchmarks: [Streaming](https://github.com/composewell/streaming-benchmarks) | [Concurrency](https://github.com/composewell/concurrency-benchmarks)
16−* Talks: [Functional Conf 2019 Video](https://www.youtube.com/watch?v=uzsqgdMMgtk) | [Functional Conf 2019 Slides](https://www.slideshare.net/HarendraKumar10/streamly-concurrent-data-flow-programming)
18## Idiomatic Haskell at the speed of C
6## Idiomatic Haskell at the speed of C
@@ -27,31 +15,27 @@ software systems. The key features it provides are:
27* Powerful abstractions
15* Powerful abstractions
28* Declarative concurrency
16* Declarative concurrency
30−Let's go through some practical examples to see it working. You
18+This guide introduces you to streamly using some practical examples.
31−can find the working code of these examples in the [streamly-examples
19+See [Streamly Homepage](https://streamly.composewell.com) and [Streamly
32−repository](https://github.com/composewell/streamly-examples).
20+Examples](https://github.com/composewell/streamly-examples) to learn
34## Installing and using
23## Installing and using
36−Please see [INSTALL.md](./INSTALL.md) for instructions on how to use streamly
25+Please see [getting started with streamly](./INSTALL.md) for
37−with your Haskell build tool or package manager.
26+instructions on how to use streamly with your Haskell build tool or
41−Streamly comes with batteries included, see [the streamly documentation
29+To build your streamly application for best performance see the
42−portal](https://streamly.composewell.com) for available modules. Modules
30+[build and compile options guide](docs/Build.md).
43−are divided in two categories:
45−* Released Modules: these are modules that have a stable API, any API changes
32+## Documentation
46− conform to a versioning policy.
47−* Pre-release Modules: These modules are not yet released due to some planned
48− changes in near future, they will be released soon.
50−Pre-release APIs: Some of the APIs that are recently introduced
34+* [Streamly Homepage](https://streamly.composewell.com)
51−and require some soak time for stability are kept in the
35+* [Streamly Examples](https://github.com/composewell/streamly-examples)
52−internal modules corresponding to the released module (e.g.
36+* [Streaming Benchmarks](https://github.com/composewell/streaming-benchmarks) | [Concurrency Benchmarks](https://github.com/composewell/concurrency-benchmarks)
53−Streamly.Internal.Data.Fold). We usually try to change even the
37+* [Functional Conf 2019 Video](https://www.youtube.com/watch?v=uzsqgdMMgtk) | [Functional Conf 2019 Slides](https://www.slideshare.net/HarendraKumar10/streamly-concurrent-data-flow-programming)
54−unstable APIs in a major release version.
38+* [Guides](docs)
56## Types Overview
40## Types Overview
@@ -93,6 +77,9 @@ wcb file =
93 & Stream.fold Fold.length -- IO Int
77 & Stream.fold Fold.length -- IO Int
80+If you are wondering about the `Internal` module import, see [A Note on
81+Internal Modules](#a-note-on-internal-modules) section.
96### Count lines (wc -l)
83### Count lines (wc -l)
98Count lines in a file.
85Count lines in a file.
@@ -453,7 +440,7 @@ Streamly comes equipped with a very powerful set of abstractions to accomplish
453any kind of programming tasks that you may want to throw at it. It provides,
440any kind of programming tasks that you may want to throw at it. It provides,
454streams, arrays, file-io, fsnotify, network-io, time domain programming
441streams, arrays, file-io, fsnotify, network-io, time domain programming
455(reactive programming). See the [streamly
442(reactive programming). See the [streamly
456−documentation](https://streamly.composewell.com) to know more.
443+documentation](https://streamly.composewell.com) to learn more.
458## Concurrency
445## Concurrency
@@ -529,13 +516,25 @@ We hope to bring these optimizations to GHC in future but until
529then we recommend that you use the plugin for performance sensitive
516then we recommend that you use the plugin for performance sensitive
530applications.
517applications.
532−## Support
519+## A Note on Internal Modules
521+You may see some `Internal` modules imported in the examples. Those are
522+not really internal to the library. We can classify streamly modules into
525+* Released Modules: These are the modules that have a stable API, any
526+ API changes conform to the package versioning policy.
527+* Pre-release Modules: These modules are not yet released due to some planned
528+ changes in near future, they will be released soon. These modules reside in
529+ the `Internal` namespace for now.
534−Please feel free to ask questions on the
531+Pre-release APIs: Some of the APIs that are recently introduced
535−[streamly gitter channel](https://gitter.im/composewell/streamly).
532+and require some soak time for stability are kept in the
536−If you require professional support, consulting, training or timely
533+internal modules corresponding to the released module (e.g.
537−enhancements to the library please contact
534+Streamly.Internal.Data.Fold).
538−[support@composewell.com](mailto:support@composewell.com).
535+
536+We usually try to change even the unstable APIs in `Internal` module
537+namespace in a major release version.
540## Credits
539## Credits
@@ -550,8 +549,16 @@ See the `credits` directory for full list of contributors, credits and licenses.
551## Contributing
550## Contributing
552+* [Streamly Contributor's Guide](CONTRIBUTING.md)
553+* [Contact the streamly development team](mailto:streamly@composewell.com)
557+Streamly is an [open source](https://github.com/composewell/streamly)
553−The code is available under BSD-3-Clause license
558+project available under [BSD-3-Clause
554−[on github](https://github.com/composewell/streamly). Join the [gitter
559+license](https://github.com/composewell/streamly/blob/master/LICENSE).
555−chat](https://gitter.im/composewell/streamly) channel for discussions. Please
563+* Join streamly [online community chat](https://gitter.im/composewell/streamly)
556−ask any questions on the gitter channel or [contact the maintainer
564+* For professional support please contact [support@composewell.com](mailto:support@composewell.com)
557−directly](mailto:streamly@composewell.com). All contributions are welcome!