BeBits Information Developer Central Submit Application Your Account Web Links Contact Us
BeBits
Please support our sponsors!
MUSCLE
version 4.30
contact publisher
home page
screenshots
version history
other reviews
send updates for this application
talkback
52 comments
 Published by Level Control Systems
   Click here for more information about this publisher...
 Date Posted:   March 29th, 2000
 Last Updated:   September 18th, 2008
 License: BSD/MIT
 Downloads: 19,981 total; 2 recently
 Page Views: 135,082 total
 User Rating: Give this application a rating
8.89 / 10, with 106 votes
 Jump to the Downloads section
About MUSCLE:
The MUSCLE system is a robust, somewhat scalable, cross-platform client-server solution for dynamic distributed applications for BeOS and other operating systems. It's distributed in source code form, and includes a ready-to-compile server, utility classes, and example clients. Tested under BeOS and Linux, but should compile and run under any POSIX compliant OS with a C++ compiler.

With MUSCLE, you can:

- Use BMessage-like PortableMessages under any operating system.

- Send flattened PortableMessages from one computer to another over TCP streams, eliminating compatibility and protocol versioning hassles.

- Run a "muscled server" on a central machine, or write/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 PortableMessages to other clients, and store PortableMessages 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, multicast, and broadcast messaging are all supported via an intelligent regular-expression based 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)

- Or just use the included message, string, dataIO, hashtable, dequeue, string-tokenizer, reference-count, regular expression parser, and object-pool classes 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.

- See the Beginner's Guide to MUSCLE (available in the archive or on the support page) for a more detailed description of the system and its capabilites.

Note: All source code in this archive is Copyright 2000 Level Control Systems. However, it is released as open source with an unrestricted license.
Latest Version
   
Details about this version:
4.30 Released 9/18/2008
*** WARNING - THIS RELEASE CHANGES THE PulseNode API IN a NON ***
*** BACKWARDS COMPATIBLE WAY. BE SURE TO READ THE ENTRY ABOUT ***
*** PulseNode BELOW AND UPDATE YOUR CODE TO MATCH THE NEW API. ***
- ChildProcessDataIO class now has SetChildProcessInheritFileDescriptors()
and GetChildProcessInheritFileDescriptors() methods to control whether
child processes spawned should inherit the parent\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s file descriptors or
not. Note that these methods have no effect under Windows.
- When receiving UDP packets, hexterm now prints out the source of the
UDP packets it received (in addition to the data).
- Added a IsNormalized() method to the Queue class.
- Added a IsMessageDeflated() method to ZLibUtilityFunctions.h.
- Added Message::BecomeLightWeightCopyOf(const Message &), for making
lightweight copies of Messages, with shared fields.
- Added Message::ShareName() (like CopyName() except the data isn\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'t
copied, rather only a reference is shared)
- Added Queue::AddHeadAndGet() and Queue::AddTailAndGet() methods,
for when you want to add an item to a Queue and then write to the
added object directly afterwards.
- Added an optional (retPort) argument to
MessageTransceiverThread::PutAcceptFactory() so that you can now
use dynamic port assignment with it.
o PulseNode::GetPulseTime() and PulseNode::Pulse() now take a single
(const PulseArgs &) argument instead of two uint64s. This makes
implementing the PulseNode interface less verbose, and calling
the Pulse callbacks more efficient. However, this breaks compatibility
with earlier code that expects (uint64, uint64) arguments for those
methods, so be sure to update your code when upgrading to this
version of MUSCLE.
o Fixed some compiler warnings under gcc (thanks to Monni for pointing
these out)
o Trying to use MUSCLE\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s logging system when there is not a SetupSystem
object on the stack (e.g. before or after main()) is no longer a fatal error.
Instead, muscle will degrade to output only to the built-in log services
(stdout and/or output-to-file) when called under these conditions.

 
Intel Version - requires R5   (1.7 MB) 38 downloads
 
 
Dev LinkLink reliability rating  [rating: 10]    Download this app  Report bad link LCS Canada
 
Add Additional Location
 
PowerPC Version - requires R5   (1.7 MB) 7 downloads
 
 
Dev LinkLink reliability rating  [rating: 10]    Download this app  Report bad link LCS Canada
 
Add Additional Location
  Source Included
 
Recent Talkback comments:
  • It is not so hard to compiling muscle by yourself - lelldorin
  • people need compiled version - lukesky
  • HashFunctor<QString> - Monni

    Post your own comment to the Talkback for this application!
    Report a problem with the listing for this application!
  • Like this app? Have questions or comments?
    Why not tell the author? Use the "e-mail publisher" link to get in touch with the publisher; they usually love getting feedback.
     
    The Green Board
      Recent Downloads  -  # 363
    Total Downloads  -  # 106
    Total Views  -  # 32
    User Ratings  -  # 56
      Class Libraries
    Instant Messaging Servers
    Miscellaneous Servers
    1.  QEMU - 9.62
    2.  ScummVM - 9.50
    3.  cpu_fix - 9.42
    4.  Jukebox - 9.36
    5.  Haiku AGP busm... - 9.35
    6.  vim6 - 9.31
    7.  Beezer - 9.25
    8.  BeeF - 9.25
    9.  HandBrake - 9.24
    10.  DOSBox - 9.22
    1.  Ati Radeon Grap... - 275
    2.  BeOS 5 Personal... - 260
    3.  Realtek RTL8139... - 212
    4.  USB Serial driver - 150
    5.  ATI Rage 128 Pr... - 150
    6.  Ensoniq AudioPC... - 112
    7.  VLC Media Player - 98
    8.  Broadcom 440x 10... - 94
    9.  DjVu Viewer - 85
    10.  Intel Extreme Gr... - 83
    You are not logged in.
     Login or create an account...
    Hosted by NetConnect

     
    Unless otherwise noted, everything is copyright © 1999-2002 Fifth Ace Productions, LLC. All Rights Reserved.
    For more legal trivia, take a gander at our
    Legal Stuff page and our Privacy Statement.
    Fifth Ace Productions