A N-way server and client protocol library and server for POSIX-compliant operating systems

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!

What's new in MUSCLE 6.08:

  • Added a ShrinkToFit() convenience method to the Queue, Hashtable, and String classes. This method shrinks the object so that the amount of memory it has allocated internally matches the size of the data it is actually holding.
  • Hashtable::EnsureSize() and Queue::EnsureSize() now take an optional (allowShrink) argument, that (if set to true) allows the object's internally-allocated array to be reallocated smaller if it is larger than necessary.
  • Tweaked the buffer-expansion behavior of the String class to be a bit more efficient.
  • Added a guard against a potential infinite recursion that could occur while logging an "OUT OF MEMORY" error after a memory allocation failure, if a LogCallback tried to allocate memory.
Read full changelog
send us
an update
BSD License 
Jeremy Friesner
3.3/5 26
ROOT \ Database \ Database Servers
1 MUSCLE Screenshot:
MUSCLE stands for Multi User Server Client Linkage Environment and it’s an open source, free, robust, scalable and cross-platform messaging system that comprises of server and client components. It will help you to write all sorts of distributed software, from multiplayer games and IRC chat clients, to SETI calculation apps.

Features at a glance

With MUSCLE, users will be able to easily customize the included "muscled server" by defining their own session logic or message-streaming protocol. The software helps you to write your client code in either of the C++, C, C#, Java, Delphi or Python programming languages.

The program uses BMessage-like muscle::Messages, supports sending of flattened muscle::Messages between computers via TCP (Transmission Control Protocol) streams, deploys a “muscled server” on a server machine, allowing you to write client programs that can be used to communicate with the server.

Additionally, it includes single- and multi-threaded messaging APIs that support all the aforementioned programming languages. The “muscled server” can be easily customized by defining a message-streaming protocol or a session logic.

Getting started with MUSCLE

After a successful login, the client programs can determine who else is logged into the central server, as well as to store muscle::Messages in the RAM (system memory) and send muscle::Messages to other clients that are connected to the server. Please note that client programs can subscribe to specific data on the server, and get instant notifications when the data changes.

Supports a wide range of message routings

The software has been designed to supports a wide range of message routings, including unicast-style, broadcast-style and multicast-style ones through an intelligent, hierarchical pattern-matching routing mechanism.

Supported OSes and availability

MUSCLE runs on any POSIX-compliant operating system. It is distributed as a single, universal sources archive that lets users to optimize the application for their GNU/Linux system. Both 32-bit and 64-bit hardware platforms are supported at this time.

MUSCLE was reviewed by , last updated on October 13th, 2014

#N-way client #N-way server #protocol library #messaging #server #client #N-way

Add your review!