BeBits Information Developer Central Submit Application Your Account Web Links Contact Us
BeBits
MUSCLE
version 4.62
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:   June 17th, 2009
 License: BSD/MIT
 Downloads: 20,768 total; 523 recently
 Page Views: 145,056 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.62 Released 6/17/2009
- Added a ThreadLocalStorage class to the muscle/system
sub-folder. This class makes it easy for each thread
to access its own local copy of a global object, without
any need for Mutex locking/unlocking overhead.
- Added a Thread::GetCurrentThread() static method, so that
any Thread can access its Thread object conveniently.
- Added additional fields to the PR_RESULT_PARAMETERS Message:
PR_NAME_SERVER_CURRENTTIMEUTC (server's GetCurrentTime(UTC))
PR_NAME_SERVER_CURRENTTIMELOCAL (server's GetCurrentTime(LOCAL))
PR_NAME_SERVER_RUNTIME (server's GetRunTime64())
- Added a AddApplicationSpecificParametersToParametersResultMessage()
method to the StorageReflectSession class. It allows a subclass
to add fields to the PR_RESULT_PARAMETERS Message before it
goes back to the client.
- Added an IsIPv4Address() function to NetworkUtilityFunctions.{cpp,h}
- Added GetSendDestinations() methods to the UDPSocketDataIO object.
With these methods you can have the UDPSocketDataIO object send the
same UDP packet to multiple destinations whenever Write() is called.
- Added a GetDefaultItem() method to the Queue class.
- Added GetDefaultKey() and GetDefaultValue() methods to the
Hashtable class.
- If TARGET_PLATFORM_XENOMAI is defined, GetRunTime64() now
uses Xenomai's rt_timer_read() function to determine its result.
- GetNetworkInterfaceInfos() and GetNetworkInterfaceAddresses() now
accept a bit-chord of GNII_INCLUDE_* bits as their second argument,
rather than a simple boolean. This allows the caller to express
in a bit more detail which sorts of interfaces he is interested in.
- Added a convenience constructor to the AndOrQueryFilter class.
o Added testthread.cpp back in to the test/Makefile.
o Modified testthread.cpp to test the ThreadLocalStorage class also.
o Reorganized the ObjectPool.h class implementation.
o Simplified the Qt implementation of the Thread class.
* system/Mutex.h now #includes support/MuscleSupport.h,
so that the Win32 build environment is detected properly
even when system/Mutex.h is the first #include.



 
Intel Version - requires R5   (1.8 MB) 8 downloads
 
 
Dev LinkLink reliability rating  [rating: 10]    Download this app  Report bad link LCS Canada
 
Add Additional Location
 
PowerPC Version - requires R5   (1.8 MB) 1 download
 
 
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.
     
    BeGroovy
      Recent Downloads  -  # 173
    Total Downloads  -  # 103
    Total Views  -  # 32
    User Ratings  -  # 52
      Class Libraries
    Instant Messaging Servers
    Miscellaneous Servers
    1.  BePodder - 9.80
    2.  QEMU - 9.67
    3.  ScummVM - 9.57
    4.  cpu_fix - 9.42
    5.  Jukebox - 9.40
    6.  Haiku AGP busm... - 9.35
    7.  vim6 - 9.31
    8.  Beezer - 9.26
    9.  HandBrake - 9.25
    10.  BeeF - 9.25
    1.  Realtek RTL81... - 8,720
    2.  BeOS 5 Person... - 8,123
    3.  Ati Radeon Gr... - 7,711
    4.  ATI Rage 128... - 5,191
    5.  Ensoniq Audio... - 4,403
    6.  Broadcom 440x... - 3,166
    7.  USB Serial dr... - 3,095
    8.  USB Joystick... - 2,975
    9.  S3 Trio 64 v2... - 2,776
    10.  VLC Media Pla... - 2,676
    You are not logged in.
     Login

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