Flow is a programming library intended to fulfill three roles:

  1. A lightweight streaming framework for data and objects.
  2. A set of pre-made stream elements for various tasks, including network and file system interaction.
  3. High-level API for easy-to-use network access, hiding the complexity of the underlying stream model.

Flow is written in C using the GObject model for object orientation, and ensures quality through numerous unit tests.


We haven't yet made an official release, but you can check the code out from the version control system - we use Git - with the following command:

git clone http://nanosleep.org/git/flow

The code is usually kept in a buildable state.


We welcome ideas, bug reports, code and other contributions. If you want to file bugs or edit the wiki, please register yourself first. Access will be granted immediately.

If you keep your own public Flow repository, please list it on the repositories page.


The main developer and current maintainer is Hans Petter Jansson <hpj@copyleft.no>. You can mail him any questions or comments you may have.