NASA Logo, National Aeronautics and Space Administration



Growler is a C++-based distributed object and event architecture. It is written in C++, and supports serialization of C++ objects as part of its Remote Method Invocation, Event Channels, and in its Interface Definition Language. Its primary application has been in support of interactive, distributed visualization, computational steering, and concurrent visualization, but it is a general purpose system for distributed programming. Growler is suitable for application to high-performance LAN environments as well the internet. Its features include strong integration with C++, selective distributed reference counting, and efficient well-typed event channels for local as well as remote event broadcast, with support for low-latency/low-perturbation events via a loss-tolerant event model.

Several key aspects of growler distinguish it from existing software tools, particularly when taken together:

  • A C++-based distributed object architecture, based on an Interface Definition Language, plus user-defined object serialization.
  • A component-oriented framework for local and distributed components.
  • A "reader-writer buffer" (rwbuffer) communication model for high-performance event channels.
  • A "Signal/Selector" notification model for concurrent, event-driven programming.
  • Event channels supporting "composite state representations", for synchronized access to interrelated events.
  • Efficient and robust access transparency, via user-defined serialization and copy-minimizing event channels.

Growler provides the architectural underpinnings for another open source project developed within NASA: NodeMon. It was also instrumental in the development of the Concurrent Visualization pipeline described in [1]. [1] Concurrent Visualization in a Production Supercomputing Environment David Ellsworth, Bryan Green, Chris Henze, Patrick Moran, Timothy Sandstrom IEEE Transactions on Visualization and Computer Graphics. 2006.


This software is released under the terms and conditions of the NASA Open Source Agreement (NOSA) Version 1.1 or later.
[Growler NOSA Software Agreement](../../nosa/growler)
First Gov logo
NASA Logo -