package mirage-flow-combinators

  1. Overview
  2. Docs
Flow implementations and combinators for MirageOS specialized to lwt

Install

Dune Dependency

Authors

Maintainers

Sources

mirage-flow-v2.0.1.tbz
sha256=c9d681e946e3d04c7a892d2b8060b793ccbe36c44847c196f9a0474d462f608f
sha512=88926721bf4784cc20e6a1c9be6e2c1a36541239019af1cabf001e5b92615afbc51f70ce96afb14e85e68548502f328b45772ac97d4cd847808ad8c65be9afb7

Description

This repo contains generic operations over Mirage FLOW implementations.

Please consult the API documentation.

Tags

org:mirage

Published: 05 Nov 2019

README

mirag-flow -- Flow implementations and combinators for MirageOS

This repo contains generic operations over Mirage FLOW implementations.

Please consult the API documentation.

Example usage

In a top-level like utop:

# #require "mirage-flow";;
# #require "mirage-clock-unix";;
# #require "lwt.syntax";;

# let a = Mirage_flow.Fun.(make ~input:(input_string "hellooooo") ());;
val a : Mirage_flow.Fun.flow = <abstr>

# let buffer = String.make 20 ' ';;
val buffer : bytes = "                    "
# let b = Mirage_flow.Fun.(make ~output:(output_string buffer) ());;
val b : Mirage_flow.Fun.flow = <abstr>

# lwt results = Mirage_flow.copy (module Clock) (module Mirage_flow.Fun) a (module Mirage_flow.Fun) b ();;
val results : [ `Error of [ `Msg of bytes ] | `Ok of Mirage_flow.CopyStats.t ] =  `Ok {Mirage_flow.CopyStats.read_bytes = 9L; read_ops = 1L; write_bytes = 9L; write_ops = 1L; duration = 6.9141387939453125e-06}
# buffer;;
- : bytes = "hellooooo           "

Dependencies (8)

  1. mirage-flow = version
  2. mirage-clock >= "3.0.0"
  3. cstruct >= "4.0.0" & < "6.1.0"
  4. logs
  5. lwt >= "4.0.0"
  6. fmt
  7. dune >= "1.0"
  8. ocaml >= "4.06.0"

Dev Dependencies

None

Used by (4)

  1. conduit-mirage >= "2.0.2" & != "3.0.0"
  2. hvsock >= "3.0.0"
  3. mirage-channel >= "4.0.0"
  4. mirage-flow-unix = "2.0.1"

Conflicts

None

OCaml

Innovation. Community. Security.