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: This release adds spaces around macro names so that the code will compile under C++11. It adds some initial C++11 support (active only if -DMUSCLE_USE_CPLUSPLUS11 is specified). StringMatcher's numeric-range feature can now handle multiple numeric ranges in a string (e.g. "<1-5,20,30-32>"). Functions have been added to convert GetRunTime64()-style timestamp values to GetCurrentTime64()-style and vice-versa. This release fixes some deprecation warnings under OS X 10.8.x. It fixes a syntax issue that would prevent ByteBuffer.cpp from compiling on a big-endian host. There are other minor tweaks and bugfixes.


Release Notes: This is a very minor release. It just fixes one bug related to IP address string formatting, adds a couple of convenience functions, and includes some code cleanup.


Release Notes: This version updates the Hashtable class to use less memory when the hash table's array size is less than 65,535 entries.


Release Notes: This is a minor release. The main change is that the ZlibUtilityFunctions implementation now uses ThreadLocalStorage to store its internal state, rather than sharing ZLibCodec objects across threads. This has the advantages of allowing greater parallelism and avoiding any chance of deadlocks.


Release Notes: The main change in this release is the addition of the MicroMessage API, a super-lightweight set of C function calls to support the sending and receiving of Message objects in very constrained environments. In particular, this API does absolutely no dynamic memory allocations, and almost no data copying -- instead, the flattened-data representation is read from or written to directly on demand. This release also adds some additional methods to the C++ Message class, inlines some methods in the String class, and fixes a few minor bugs.
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.