MUSCLE is a cross-platform, robust, somewhat scalable client-server messaging system for dynamic distributed applications that runs under any POSIX-compliant operating system.
MUSCLE has been developed, used, and refined as the networking component of BeShare, CueConsole, CueStation, and various other audio control applications at Level Control Systems (now Meyer Sound Laboratories) for over six years.
Installation: Detailed installation instructions are available in the HOWTOBUILD.txt file inside the downloaded archive.
Here are some key features of "MUSCLE":
· Use BMessage-like muscle::Messages under any operating system.
· Send flattened muscle::Messages from one computer to another over TCP streams, eliminating unnecessary compatibility and protocol-versioning hassles.
· Run a 'muscled server' on a central machine, and write (or download) client programs to log in to the server and communicate through it. Once logged in, client programs can discover who else is logged in, send muscle::Messages to other clients, and store muscle::Messages in the server's RAM for other clients to download later. Clients can also 'subscribe' to selected data on the server, and be automatically notified whenever it changes. Unicast-style, multicast-style, and broadcast-style Message routing are all supported via an intelligent hierarchical pattern-matching routing mechanism. Writing multiplayer games, IRC style chat applications, SETI style distributed calculation apps, or any other type of distributed software is made easy because MUSCLE handles all the dirty work for you!
· Customize the included 'muscled server' by defining your own session logic or message-streaming protocol. (Note that this is only necessary for certain specialized applications--the standard server provides sufficient functionality for most things)
· Write your client code in C , C, Java, Delphi, or Python. Single-threaded and multi-threaded messaging APIs are provided for all of the aforementioned languages.
· Or just use the included message, string, dataIO, hashtable, dequeue, string-tokenizer, reference-count, regular expression and pattern matching parser, and object-pool code by themselves, as handy cross-platform utility classes. All source code is included, and you are free to use and abuse it any way you wish.
Requirements:
· Apple Xcode (to build MUSCLE from source)
What's New in This Release: [ read full changelog ]
· NodePathMatcher::DoTraversal() now returns the number of DataNodes that the traversal visited.
· Fixed a bug in Queue::Clear() that would cause it only to reset the first item in the queue rather than all of the items.
· Range-checking in DenybblizeData was incorrect (it would spuriously reject characters 'G' through 'P'). Fixed.