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), containers (>=0.4), dataflow, mtl (>=2.2), parsec [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-14T13:24:24Z
Distributions NixOS:
Executables dataflow
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-14 [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.

Getting Started

cabal install dataflow@



The objects supported by DataFlow is:

  • boundary
  • io
  • function
  • database
  • ->

These are composed in a diagram to get something printable.


diagram 'Webapp' {
  boundary 'Browser' {
    function client 'Client'
  boundary 'Amazon AWS' {
    function server 'Web Server'
    database logs 'Logs'
  io analytics 'Google<br/>Analytics'

  client -> server 'Request /' ''
  server -> logs 'Log' 'User IP'
  server -> client 'Response' 'User Profile'
  client -> analytics 'Log' 'Page Navigation'

Then generate your output with dot.

dataflow dfd webapp.flow | dot -Tsvg > webapp.svg

That should generate something like the following.

Example Output


cabal sandbox init
cabal configure --enable-tests
cabal install --only-dependencies --enable-tests

Building the Examples

make -C examples

Haskell Docs

See the Hackage site.


cabal clean && cabal build && cabal sdist && cabal upload dist/dataflow-*.tar.gz