dataflow: Generate Graphviz documents from a Haskell representation.

[ bsd3, code-generation, compiler, graphs, library, program ] [ Propose Tags ]

Outputs .dot files that can be processed by the dot command. Currently it only supports the DFD output format (http:/en.wikipedia.orgwiki/Data_flow_diagram). Support for a Graphviz-like input format (instead of using the data structures in Haskell) is planned.

[Skip to Readme]
Versions [faq],,,,,,,,,,,,,,,,,
Dependencies base (>=4 && <4.8), mtl (>=2.2) [details]
License MIT
Author Oskar Wickström
Category Code Generation, Compiler, Graphs
Home page
Source repo head: git clone
Uploaded by owickstrom at 2015-04-10T08:30:28Z
Distributions NixOS:
Downloads 9876 total (9 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2015-04-10 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for dataflow-

[back to package description]


Generate Graphviz documents from a Haskell representation.

cabal configure
cabal build



The objects supported by DataFlow is:

  • TrustBoundary
  • InputOutput
  • Function
  • Flow

These are composed in a Diagram to get something printable.

For more information see the Hackage site.


module Main where

import DataFlow.Core
import DataFlow.DFD

main :: IO ()
main = printDfd $
  Diagram "My Diagram" [
    TrustBoundary "browser" "Browser" [
      Function "webapp" "Webapp"
    TrustBoundary "aws" "Amazon AWS" [
      Function "server" "Web Server",
      Database "logs" "Logs"
    InputOutput "analytics" "Google Analytics",

    Flow "webapp" "server" "Request /" "",
    Flow "server" "logs" "Log" "User IP",
    Flow "server" "webapp" "Response" "User Profile",

    Flow "webapp" "analytics" "Log" "Page Navigation"

Then generate your output with dot.

runhaskell example.hs | dot -Tsvg > example.svg

That should generate something like the following.

Example Output

Building the Examples

cabal install
make -C example