Release Notes: This version adds a Python implementation of the Message and MessageTransceiverThread classes, so it's now easy to write MUSCLE clients in Python. A demo app (pythonchat.py, a BeShare-compatible command line chat client) is included. There are also some more minor bugfixes.
Release Notes: This release adds a few minor new functions and fixes a couple of minor bugs in the Windows build.
Release Notes: Minor bugs were fixed and minor features were added.
Release Notes: The Message class has been rewritten to be more flexible. Support for Borland's C++Builder5.5 has been added. The Flattenable interface has been enhanced. Some bugs have been fixed.
Release Notes: The whole API has been gone over and made more consistent. Better multithreading support, bandwidth limiting, filtering, and more were also added.
Release Notes: The PortableHashtable class now maintains the ordering of the items you put into it. You can now safely modify or delete a PortableHashtable during a traversal. ReflectServer and PortableMessageFieldNameIterator have been made more efficient. Methods have been added to PortableHashtable to modify the ordering of contents.
Release Notes: Atomic incrementors for Windows and Linux were added, the admin tool's error handling is improved, GetPeerInfo() tries harder to find localhost's "real" IP address, and QMessageTransceiverThread now compiles under VC++.
Release Notes: PortableRefCounts no longer need or take a MessageRefPool object. PR_NAME_SESSION fields are now auto-corrected by the server to prevent message-sender 'spoofing'. A PathMatcher class was added for regex path matching.
Release Notes: A new QtMessageTransceiverThread class for easy integration with Qt-based client GUIs, better Visual-C++ compatibility, more logical output-stall detection, and use of ReflectSessionFactory objects instead of function callbacks.
Release Notes: During a memory shortage, muscled now kicks users whose output message queues have grown too large. The signature of AbstractMessageIOGateway's DoInput() and DoOutput() was changed to DoInput(uint32 & addReadBytes) and DoOutput(uint32 & addWroteBytes). muscled now keeps track of how long an output has been "stalled" (i.e. it has bytes queued to send to the client but none have actually been sent), and it will drop any clients that have been stalled for more than 20 minutes.