opam-version: "2.0"

homepage: "http://github.com/odis-labs/streaming"
doc: "https://odis-labs.github.io/streaming"
bug-reports: "https://github.com/odis-labs/streaming/issues"
license: "ISC"

authors: [
  "Rizo I <rizo@odis.io>"
]
maintainer: "Rizo I <rizo@odis.io>"
dev-repo: "git+https://github.com/odis-labs/streaming.git"

synopsis: "Fast, safe and composable streaming abstractions"
description: """
Streaming abstractions that combine, transform and reduce large amounts of
sequential data efficiently, in constant space and without leaking resources.

Streaming uses composable stream producers (sources), consumers (sinks) and
transformers (flows).

The following features are provided:

- Constant memory usage: large or infinite streams can be computed in constant
  and small space. Buffering of the input is possible when needed.
- Excellent performance: all models were designed with performance at the
  core. See https://github.com/rizo/streams-bench for detailed
  comparison with other libraries.
- Resource safety: resources in effectful streaming pipelines are allocated
  lazily and released as early as possible. Resources are guaranteed to
  be terminated even when streams rise exceptions.
- Flexibility: both push-based and pull-based models are implemented to
  allow efficient zipping, concatenation and other streaming operations.
- Streaming notation: build streams and sinks using a convenient
  comprehension and applicative notations.
"""

depends: [
  "stdlib-shims"
  "dune" {>= "2.0"}
  "ocaml" {>= "4.08.0"}
]

build: [
  ["dune" "build" "-p" name "-j" jobs "@install" "@doc" {with-doc}]
]
url {
  src:
    "https://github.com/odis-labs/streaming/releases/download/0.8.0/streaming-0.8.0.tbz"
  checksum: [
    "sha256=5bedc6619a6c2e3d529d086e4a68d7762ffce5f31a8d6a73e1bef1e56d1b9c9b"
    "sha512=f490206a25176ab2bcacfdcf619c0569b191f27e05daeff32f4b8ad42d6a7aa7791e6a4ae501c05f1fb892842a0fc0272ec5deb4094c9d32fffa9535ce871a01"
  ]
}
