BeBits Information Developer Central Submit Application Your Account Web Links Contact Us
BeBits
MUSCLE
version 4.63
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:   July 18th, 2009
 License: BSD/MIT
 Downloads: 24,201 total; 3,956 recently
 Page Views: 160,380 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.63 Released 7/17/2009
- When compiled with MUSCLE_USE_IPV6 enabled, MUSCLE now does automatic
transparent remapping of IPv4-compatible IPv6 addresses into IPv4-mapped
IPv6 addresses. This allows MUSCLE servers to be 100% compatible with
both IPv4 and IPv6 clients (on platforms that support dual stacks, of
course) without any additional effort on the programemr's part.
- Added SetAutomaticIPv4AddressMappingEnabled() and
GetAutomaticIPv4AddressMappingEnabled() calls to
NetworkUtilityFunctions.{cpp,h}.
- Added CAdd*() and CPrepend*() convenience methods to the Message
API, to the common "add value to Message unless it's the default value"
idiom quicker and easier to express.
- Added Contains() convenience methods to the String class.
- Added an optional (optRetTotal) argument to
SharedUsageLimitProxyMemoryAllocator::GetCurrentMemoryUsage().
- Added a ParseHumanReadableTimeIntervalString() convenience function
to MiscUtilityFunctions.cpp.
- Added an static Exists() method to the Directory class.
- Added a PutOrRemove() convenience method to the Hashtable class.
- Added an IsValidIP() function to NetworkUtilityFunctions.{cpp,h}.
- GetNextEventFromInternalThread() now has an optLocation parameter that
can be used to find out the IP address and port that a session connected
to (or what accepted from).
- The SessionConnected() signals of the QMessageTransceiverThread and
QMessageTransceiverHandler classes now include an IPAddressAndPort object
indicating what the session connected to.
- The SessionAccepted() signal of the QMessageTransceiverThread class now
includes an IPAddressAndPort object indicating where the session was accepted from.
- Added SetAsyncConnectDestination() and GetAsyncConnectDestination() methods
to the AbstractReflectSession class.
- Added ToString() methods to the SegmentedStringMatcher and
StringMatcher classes.
- SegmentedStringMatcher no longer bothers to allocate a StringMatcher
object for clauses that are represented by "*".
o Renamed DataNode::CountChildren() to DataNode::GetNumChildren().
o Renamed DataNode::SetMaxKnownChildID() to DataNode::SetMaxKnownChildIDHint().
o Renamed Message::CountNames() to Message::GetNumNames().
o Rewrote the static internal function AdjustValue() in
SharedUsageLimitAllocator.cpp to give more informative error output.
o Removed Message::GetConstPointer() since you can use GetPointer()
to do the same thing (by assigning a const pointer to the result).
o Documented some methods that were previously not documented.
* Fixed a bug where SharedUsageLimitAllocator::ResetDaemonCounter()
could push the cumulative memory counter into negative territory.
* Inet_NtoA was allowing the IPv6-specific "@3" interface-index
suffix into IPv4-style address strings. Fixed.
* SetupSystem.cpp's Muscle_GetCurrentThread() wasn't working properly
on 64-bit OS's. Fixed.


 
Intel Version - requires R5   (1.8 MB) 152 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) 43 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  -  # 173
    Total Downloads  -  # 103
    Total Views  -  # 32
    User Ratings  -  # 52
      Class Libraries
    Instant Messaging Servers
    Miscellaneous Servers
    1.  BePodder - 9.73
    2.  QEMU - 9.68
    3.  ScummVM - 9.57
    4.  Haiku AGP busm... - 9.35
    5.  cpu_fix - 9.31
    6.  vim6 - 9.31
    7.  VNCServer - 9.30
    8.  Beezer - 9.26
    9.  HandBrake - 9.25
    10.  BeeF - 9.25
    1.  Ati Radeon G... - 40,932
    2.  BeOS 5 Perso... - 36,763
    3.  BePDF - 22,622
    4.  Realtek RTL8... - 20,774
    5.  Ensoniq Audi... - 19,390
    6.  USB Joystick... - 17,833
    7.  ATI Rage 128... - 13,762
    8.  VLC Media Pl... - 12,318
    9.  DOSBox - 11,388
    10.  S3 Trio 64 v... - 10,962
    You are not logged in.
     Login

     
    Unless otherwise noted, everything is copyright © 1999-2013 Haikuware. All Rights Reserved.
    For more legal trivia, take a gander at our
    Legal Stuff page and our Privacy Statement.
    Website Deisgn: NumbDesign