Siena Software

Siena (Scalable Internet Event Notification Architecture) is a research project aimed at designing and constructing a generic scalable event notification service. For full details on the Siena project follow this link. This page contains source and binary packages as well as user documentation for the implementation of Siena. Other Siena software is available from the Siena contrib page.


17 May 2015
Released version 2.0.4 of the Siena API and router implementation. This version includes bugfixes and improvements. Please, see the change log for details. Binary, source, and documentation packages are available for download here. The Git source-code repository for Siena 2.0 is also readable with:
git clone

If you are a Siena user, or even if you are just evaluating or studying Siena, please consider registering with us by submitting a Siena User Registration Form.

License and Credits

Copyright © 1998-2004 University of Colorado.
Copyright © 2005-2015 Antonio Carzaniga.

Siena is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Siena is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


Siena is primarily the work of Antonio Carzaniga and Alexander L. Wolf.

Significant contributions to the implementation and improvement of Siena are also due to Mauro Caporuscio, Jing Deng, John Giacomoni, Cyrus Hall, Giovanni Toffetti Carughi, and Amir Malekpour.


If you are using Siena, you may want to submit a Siena User Registration Form. Any sort of feedback is much appreciated. Bug reports and/or technical questions should be directed to Antonio Carzaniga ([email protected]).


We thank David S. Rosenblum for his foundational contribution to this project.


This implementation of Siena consists of two classes of components: The current prototype includes three variants of servers and two variants of interfaces. The interfaces are for Java and C++. The Java language interface also works as a server, and implements both a hierarchical architecture and a general network architecture. The other server, which at this point should be considered obsolete, implements a peer-to-peer architecture and is programmed in C++. Notice that the two server and API implementations are not mutually compatible.

In summary, there are two implementations that, for lack of better terms, I will call Current and Old respectively. These include the following components:

Current Version
a Siena router capable of supporting a general network topology plus an application programming interface for Java. This implementation also includes the previous Siena router which is based on a hierarchical network.
Old Version
a peer-to-peer server implemented in C++ and a C++ API.
Unless you intend to experiment with the "Old" implementation, you should download and use the "Current" version.


Installation instructions are available in each package.

Packages Download

Current Version

Siena 2.x
Siena 1.x

"Old" Version

C++ server
this page is maintained by Antonio Carzaniga and was updated on January 12, 2016