STREAM Prototype Source Code


This page contains information about the latest (as of Feb. '05) source code release of the Stanford Stream Data Manager prototype (STREAM). More information about the STREAM project can be found here . This release contains the code for the main STREAM server and for a GUI client to interact with the server over a network. The server can also be used as a library, and directly linked from a C++ program. The code release includes an extensive user manual, that contains detailed information about the functionality and design of the STREAM prototype. The stream source code is released under the BSD license.

Downloading the code

Building the Server

The code has been packaged using the standard GNU tools, so the usual technique for installing such packages works. For illustration, we assume that the code will be extracted, built, and installed in the following set of directories: System Requirements: GNU build tools, bison, and flex. The code has been built and tested only on Linux platforms.


  1. cd /home/user/stream-0.6.0

  2. ./configure --prefix=/home/user/stream

  3. make

  4. make install

These four steps generate:
  1. /home/user/stream/bin/net_server: The main server that talks to the GUI client.

  2. /home/user/stream/bin/gen_client: A standalone server with a thin command line client

  3. /home/user/stream/lib/ The stream library that can be directly linked to your C++ program.

  4. /home/user/stream/include/*: The header files for use with the library.

The configure script accepts other options for more fine-grained control of the installation; run ./configure --help for a list of these options.

Testing the Server

We have provided a collection of test scripts to check if the server has been built properly. To run the tests:
  1. cd /home/user/stream-0.6.0/test

  2. ./

To remove the temporary files produced while testing:
  1. cd /home/user/stream-0.6.0/test

  2. ./

Building the Client

System Requirements:
  1. Java 5.0 Runtime Environment/JDK 1.5.0 compiler. Earlier versions of JDK are probably fine too, but we haven't tested these.

  2. Apache Ant 1.6.2.

Steps: The following steps assume for illustration that the client code has been extracted to /home/user/stream-vis-0.3.0/.

  1. cd /home/user/stream-vis-0.3.0/

  2. chmod +x

  3. ./

  4. ant

These four steps generate the jar file STREAMvis.jar at /home/user/stream-vis-0.3.0/lib.

Using the System

The most convenient way of using STREAM is to start the net-version of the server (net_server) and connect to it using the GUI client. The GUI client allows you to register streams and queries with the server, view the query plans generated by the server, and monitor the performance of the server. The links below provide information on how to start the server and use the client. There are two other ways of using the STREAM prototype: You can use the command-line version of the server (gen_client) or directly link server library to a C++ program. These two methods are more suitable for profiling purposes. Please see the user manual for more details.


Please send your questions and comments to
Last modified: Nov. 08, 2004.