MUSCLE (Multi User Server Client Linking Environment) is an N-way messaging server and networking API. It includes client-side networking APIs for various languages, including C, C++, C#, Delphi, Java, and Python. MUSCLE lets programs communicate over a network via streams of serialized Message objects. The included server program ("muscled") lets its clients message each other and store information in its server-side hierarchical database. The database supports flexible queries via hierarchical wildcarding, and "live" updates via a subscription mechanism.
| Tags | Database Database Engines/Servers Software Development Libraries Application Frameworks Communications Java Libraries |
|---|---|
| Licenses | BSD Revised |
| Operating Systems | BeOS Mac OS X Windows Windows Windows OS Independent POSIX |
| Implementation | C C# C++ Java Python |
Recent releases


Release Notes: Minor bugs were fixed. Memory usage of the Message class was reduced a bit, better control over the zlib-encoding of outgoing compressed Message objects was provided, and a deprecated Queue method was removed (GetItemPointer()).


Release Notes: This version adds a couple of gateway subclasses that keep track of the number of bytes currently in their output queues, adds a couple of additional callbacks to the ReflectServer class, and fixes a couple of minor bugs.


Release Notes: This release adds two more implementations of the SocketMultiplexer class, one based on BSD's kqueue()/kevent(), and another based on Linux's epoll().


Release Notes: This release adds a SocketMultiplexer class which hides the details of select() and poll() behind a simpler and more consistent API. It also fixes a bug in Message::FindFlat() which could cause it to return incorrect results when called on locally-created Messages containing FlatCountableRef-referenced objects.


Release Notes: This release adds optional support for basing the ReflectServer event loop around poll() instead of select. It also makes the socket-pair in the Thread class optional, adds a couple of new methods to the Queue class, and makes the multicast API enabled by default.
Recent comments
06 Aug 2003 16:22
Mailing list created
FYI, there is now a MUSCLE mailing list covering development
and use of the MUSCLE toolkit. You can subscribe to it by
sending an email to with the word muscle-request@freelis...
"subscribe" in the subject line, or you can search the mailing
list archives here.
30 Jun 2003 01:24
Re: Rudimentary BeShare-compatible command line chat client available
> New version of Clyde is v1.04. It's
> been tweaked to compile with MUSCLE
> v1.30+.
You need to add QueryFilter.o and ByteBuffer.o to the Makefile to get it to compile with latest MUSCLE's.
02 Mar 2003 23:08
Re: Rudimentary BeShare-compatible command line chat client available
New version of Clyde is v1.04. It's
been tweaked to compile with MUSCLE v1.30+.
16 Oct 2002 08:05
Confusing name
The name of this project is rather confusing. MUSCLE is already the name of the de-facto standard smartcard environment for Linux. (Google for "muscle linux" and you'll see what I mean.)
10 Apr 2002 11:35
Re: Rudimentary BeShare-compatible command line chat client available
Clyde 1.01 is
here. It fixes a nasty crashing bug and adds a few minor features.
A program to analyze your databases and check your data quality.