News
RSB 0.10
Note
Starting with this release, Ubuntu GNU/Linux lucid is no longer officially
supported. At least for C++, the CMake scripts will most likely
not work.
This RSB release is available in the following forms:
- Source archives
- Pre-compiled self-installing archives or executable binaries
- Debian packages for different Ubuntu GNU/Linux versions (currently C++ and
Common Lisp implementations only)
- Homebrew recipes
- Pypi packages for the Python implementation
- Maven package for the Java implementation
These can be downloaded from the 0.10 jobs continuous integration
server or repository
server respectively. Installation instructions and
links for downloading can be found in the RSB manual.
Changes
- C++
- Special CMake -level support for finding custom installations
of the Boost.UUID library has been dropped as this library is a
standard part of Boost since some time now.
- Incompatible API change: Moved EventQueuePushHandler and
QueuePushHandler to util namespace
- Improved logging, error messages and API for converter
selection, configuration and registration
- Converter registration is no longer necessary for the
inprocess transport
- Zip archive for Windows
- Java
- Added inprocess transport
- Fixed implementation of sequence number generation
- Some thread-safety and shutdown issues in the socket
transport have been fixed
- Default participant configuration is now available via
getDefaulParticipantConfig
- Updated internal Spread Java implementation to version 4.3.
This still allows communication with all 4.x Spread daemons.
- Python
- Participants now support the context manager
protocol (with statements)
- The Configuration file at PREFIX/etc/rsb.conf is now
processed
- Common Lisp
- Socket transport now listens on all interfaces in server
mode
- Socket transport now handles disconnected clients better
while under load
- Logging is now implemented using a more robust and more efficient
implementation. The user-visible interface remains unchanged.
- Tools
- The Common Lisp implementation of the tools now comes with scripts
for analyzing some timing-related aspects of system. These scripts
can be used by the Logger as well as the RSBag tools.
As always, bugs, feature requests and enhancement proposals can be
reported in the issue tracker.
RSB 0.9
This RSB release is available in the following forms:
- Source archives
- Pre-compiled self-installing archives or executable binaries
- Debian packages for different Ubuntu GNU/Linux versions
- Starting with this release, the development version of RSB
is packaged in the “testing” repository of our Debian repository
server (as opposed to the “main” repository). So you need to add
this repository to your apt sources list in case you want to
install the development version via Debian packages.
- Homebrew recipes and pypi packages
- Maven package for rsb-java
These can be downloaded from the 0.9 jobs continuous integration
server or repository server
respectively. Installation instructions and links
for downloading can be found in the RSB manual.
Changes
- Integration of the new RSC plugin mechanism in the C++
implementation for transports and
converters
- Encapsulation of the spread transport into a
separate plugin
- Complete overhaul of the Java implementation to be in line with the
remaining implementations
- As a consequence, the public API has slightly changed, especially
with respect to thrown exceptions
- Implementation of the socket
transport
- Fixes in all implementations of the socket transport
- The RPC API now supports some
method signatures that did not work previously
- Fixes for Windows compatibility
- Documentation improvements
As always, bugs, feature requests and enhancement proposals can be
reported in the issue tracker.
RSB 0.7
This RSB release is available in the following forms:
- Source archives
- Pre-compiled self-installing archives or executable binaries
- Debian packages for different Ubuntu GNU/Linux versions
- Prototypical homebrew recipes and pypi packages (new)
These can be downloaded from the 0.7 jobs continuous integration
server or repository server
respectively. Installation instructions and links
for downloading can be found in the RSB manual.
Changes
- The TCP-socket transport is now fully
implemented in C++, Python and Common Lisp and used by default
there.
- Error recovery, robustness and features of RSB
- End-user documentation
- Packaging and deployment
- send tool
As always, bugs, feature requests and enhancement proposals can be
reported in the issue tracker.
RSB 0.6
Note
RSB clients using the 0.6 version cannot generally
communicate with clients using a previous RSB version.
This RSB release is available in the following forms:
- Source archives
- Pre-compiled self-installing archives or executable binaries
- Debian packages for different Ubuntu GNU/Linux versions
These can be downloaded from the 0.6 jobs continuous integration
server or repository server
respectively.
As always, bugs, feature requests and enhancement proposals can be
reported in the issue tracker.
General Changes
- All core components have been relicensed to LGPLv3.
- Sub-projects have been cleaned up.
- Manuals have been created and can be accessed at
http://docs.cor-lab.org/rsb-manual/0.6/html. For a list of all
documentation, see http://docs.cor-lab.org.
- RSB programs now process PREFIX/etc/rsb.conf if such a file
exists.
Tools
- The C++ logger now has a “monitor mode”
- The C++ logger can now print event
collections
- The Common Lisp logger adjusts its display to the
width of the containing terminal
- The Common Lisp logger can now print event
collections
RSB 0.5
Note
- RSB clients using the 0.5 version of RSB cannot
generally communicate with clients using a previous RSB
version.
- The Spread transport is no longer active by
default (see below).
- The API is in some parts not backwards-compatible.
The development activities in this cycle focused primarily on API
improvements and the integration of causal vectors. Moreover, complete compatibility for MSVC 2010 is now
ensured and MacOS compatibility has been improved. In the process,
about 60 issues have been created and subsequently resolved.
This RSB release is available in the following forms:
- Source archives
- Pre-compiled self-installing archives
- Debian packages for different Ubuntu GNU/Linux versions (new)
These can be downloaded from the 0.5 jobs continuous integration
server or repository server
respectively.
As always, bugs, feature requests and enhancement proposals can be
reported in the issue tracker.
General Changes
Network Protocol and Configuration
Tools
- The C++ logger now displays causal vectors.
- The Common Lisp logger now displays causal
vectors.
- The Common Lisp logger now displays configurable
statistics.
- The Common Lisp logger now allows configuring the
columns in the “compact” formatting style.
- The call tool for performing RPCs from the commandline
has been added.
C++
- Support for causal vectors has been added.
- The client API for creation and configuration of participants and events has been simplified.
- Convenience functions for participant creation without the factory
have been added. (Suggested by: Robert Haschke)
- OriginFilter has been added.
- Compilation time has been reduced. (Suggested by: Matthias Rolf)
- A name-clash with a Qt macro has been resolved (Reported by:
Matthias Rolf)
- Event dispatching now allows multiple threading strategies.
- Performance Improvements
* Caching of Spread group names
* <-comparison of EventId s
Java
- Support for causal vectors has been added.
- OriginFilter has been added.
Python
- Support for causal vectors has been added.
- OriginFilter has been added.
Common Lisp
RSB 0.4
Note
RSB clients using the 0.4 version of RSB cannot
communicate with clients using a previous RSB version.
The development activities in this cycle focused primarily on
extending and optimizing the wire format and improving the usability
of and support for protocol buffer message objects as event
payloads. In the process, more than 30 issues have been created and
subsequently resolved.
As always, bugs, feature requests and enhancement proposals can be
reported in the issue tracker.
Network Protocol for Spread-based Communication
- The eagerly computed, mandatory unique id field of events is now lazily computed from a static id and a
sequence number. Events can be transmitted
without computing the id. This change saves 12 bytes in each
notification sent over the wire. (Thanks: Stefan
Herbrechtsmeier)
- Incompatible wire format versions can now be detected by means of a
trick which does not incur any runtime overhead in space or
time. This enabled removal of the version field in
notifications, saving four bytes in each
notification sent over the wire.
- The method field of events is now fully specified
and used in request/reply communication.
C++
- In addition to blocking request/reply invocation, a future-based
asynchronous interface is now available.
- Several performance problems related to scope and
event construction have been fixed. (Thanks: Matthias Rolf,
Arne Nordmann)
Java
- Request/reply communication with blocking and asynchronous
invocation modes has been implemented.
- A converter registration and selection mechanism and a
generic converter for Google protocol buffers data holder
classes have been added.
Python
- Request/reply communication with blocking and asynchronous
invocation modes has been implemented.
- A converter for Google protocol buffers data holder
classes has been added.
Common Lisp
- Request/reply communication with blocking and asynchronous
invocation modes has been implemented.