MUSCLE

צילום מסך תוכנה:
MUSCLE
פרטי תוכנה:
גרסה: 6.82 מעודכן
טען תאריך: 22 Jun 18
מפתחים: Jeremy Friesner
רשיון: ללא תשלום
פופולריות: 26

Rating: 5.0/5 (Total Votes: 1)

MUSCLE מייצג את 'סביבת חיבור לקוח מרובת משתמשים', והיא מערכת קוד פתוח, חופשית, ניתנת להרחבה ופלטפורמות חוצות הכוללות רכיבי שרתים ורכיבי לקוח. זה יעזור לך לכתוב כל מיני תוכנות מבוזרות, מתוך משחקים מרובי משתתפים ו- IRC לקוחות צ 'אט, כדי יישומי חישוב SETI.


תכונות במבט אחד

עם MUSCLE, משתמשים יוכלו בקלות להתאים אישית את "שרת שרירי" כללה על ידי הגדרת ההיגיון הפגישה שלהם או פרוטוקול זרימת הודעות. התוכנה מסייעת לך לכתוב את קוד הלקוח שלך באחת משפות התכנות C ++, C, C #, Java, Delphi או Python.

התוכנית משתמשת בשריר דמוי BMESS :: הודעות, תמיכה בשליחה של שרירים שטוחים :: הודעות בין מחשבים באמצעות TCP (שידור Control Protocol) זרמים, פריסות שרת & ldquo; שרירים & rdquo; במחשב שרת, המאפשר לך לכתוב תוכניות לקוח שניתן להשתמש בהן כדי לתקשר עם השרת.

בנוסף, הוא כולל ממשקי API להעברת הודעות יחיד ורב-הליכי התומכים בכל שפות התכנות הנ"ל. שרת & ldquo; שרירים & rdquo; יכול להיות מותאם אישית בקלות על ידי הגדרת פרוטוקול זרימת הודעה או היגיון הפעלה.

תחילת העבודה עם MUSCLE

לאחר כניסה מוצלחת, תוכניות הלקוח יכול לקבוע מי עוד מחובר לשרת המרכזי, כמו גם לאחסן שרירים :: הודעות ב- RAM (זיכרון המערכת) ולשלוח שרירים :: הודעות ללקוחות אחרים מחוברים לשרת. שים לב שתוכניות הלקוח יכולות להירשם כמנוי לנתונים ספציפיים בשרת ולקבל הודעות מיידיות כאשר הנתונים משתנים.


תומך במגוון רחב של ניתוב הודעות

התוכנה תוכננה כך שתתמוך במגוון רחב של ניתוב הודעות, כולל סגנון שידור ליעד בודד, סגנון שידור ושיטת שידור לקבוצה, באמצעות מנגנון ניתוב אינטליגנטי בהיררכית התבנית.


מערכות הפעלה נתמכות וזמינות

MUSCLE פועל על כל מערכת הפעלה תואמת POSIX. הוא מופץ כארכיון מקורות אוניברסלי יחיד המאפשר למשתמשים לייעל את היישום עבור מערכת גנו / לינוקס שלהם. הן פלטפורמות החומרה של 32 סיביות והן של 64 סיביות נתמכות בשלב זה.

מה חדש במהדורה זו:

  • בדיקות / Makefile-mt כבר לא מנסה להרכיב testreflectsession למעט כאשר ביצוע במערכת ההפעלה כי testreflectsession תומך.
  • האם עריכה ועריכה מחדש של הקטע & quot; MUSCLE על ידי דוגמה & quot; דפים.
  • הוחלף מספר 'תגים' ב- MkDocs עם [URL] (...)
  • הוסר הירושה הפרטית של CountedObject מכל השיעורים שהיו בה - כעת הם כוללים משתנה חבר פרטי של CountedObject במקום זאת. דבר זה נעשה רק משום שכל הירושה הפרטית הזאת העמיסה את תרשימי הירושה של דו-חמצן.
  • הוספת מאקרו DECLARE_COUNTED_OBJECT ל- CountedObject.h כך שכל תקרת זיכרון פוטנציאלית של CountedObjects ניתנת לביטול במקרים שבהם ספירת אובייקטים אינה רצויה.
  • הוסר התמיכה עבור -DMUSCLE_AVOID_OBJECT_COUNTING והוסיף במקומו מאקרו aDMUSCLE_ENABLE_OBJECT_COUNTING במקומו. (כלומר, המחלקה CountedObject מושבתת כעת כברירת מחדל ויש להפעיל אותה באופן מפורש כדי להשתמש בה)
  • נוסף & quot; MUSCLE לפי דוגמה & quot; תיעוד עבור 'פעולות שונות'. {cpp, h}
  • שינו מספר 'תגים' במקוד MUSDLE לפי דוגמת MkDocs לתוך כתובות [urls], כך שניתן יהיה לבדוק במהירות את השיטות שהם מזכירים.
  • server / Makefile מציין כעת את libmuscle.a אחרי הקובץ הראשי () .o
  • תוקנו כמה אזהרות GCC בתיקיית הבדיקות (לפי הצעותיה של מיקה)
  • UnparseFile () לא ציטט מילות מפתח עם רווחים כראוי. תוקן.
  • תוקן את התלות ב & quot; MUSCLE לפי דוגמה & quot; דוגמאות 'Makefiles.

מה חדש בגרסה:

  • הוספת שיטת נוחות ShrinkToFit () לתור, Hashtable, ואת מחרוזות מחלקות. שיטה זו מכווצת את האובייקט כך שכמות הזיכרון שהקצתה פנימית מתאימה לגודל הנתונים שהוא מחזיק בפועל.
  • Hashtable :: EnsureSize () ו תור :: EnsureSize () עכשיו לקחת טיעון אופציונלי (allowShrink), כי (אם מוגדר נכון) מאפשר מערך שהוקצה פנימי של אובייקט להיות הקצאת קטן יותר אם הוא גדול יותר מן הצורך.
  • שינתה את התנהגות ההתרחבות של מחרוזת המחלקה מחרוזת כדי להיות קצת יותר יעילה.
  • נוסף שומר מפני רקורסיה אינסופית פוטנציאלית שעלולה להתרחש בעת כניסה אל & quot; OUT OF MEMORY & quot; שגיאה לאחר כשל בהקצאת זיכרון, אם LogCallback ניסה להקצות זיכרון.

מה חדש בגירסה 6.01:

  • הוספת שיטת נוחות PrependWord () למחלקה String.
  • שיטות נוחות שנוספות באמצעות החלפת נתונים למחלקת מחרוזת.
  • הוספת שיטה SetExplicitDelayMicros () לקבוצת DetectNetworkConfigChangesSession.
  • הוספת שיטה של ​​IsCopperDetected () ל- NetworkInterfaceInfo, כך שהקוד יוכל לקבוע אם לשקע Ethernet יש כבל המחובר אליו.
  • נוסף & quot; quietsend & quot; טיעון כדי hexterm.
  • השיטה הווירטואלית NetworkInterfacesChanged () של המחלקה DetectNetworkConfigChangesSession השתנתה כדי לקחת טיעון שמקרא אילו ממשקי רשת בפרט השתנו. פונקציונליות זו מיושמת כיום רק תחת לינוקס, MacOS / X ו- Windows. עבור מערכת הפעלה אחרת, הטיעון תמיד יהיה רשימה ריקה.
  • תוקן באג ביישום לינוקס של DetectNetworkConfigChangesSession שעלול לגרום לשגיאה של פילוח אם recvmsg () החזיר שגיאה (למשל עקב קבלת אות).

מה חדש בגרסה 6.00:

  • לשכתב את המחלקה SSLSocketDataIO לעבוד טוב יותר עם I / O ללא חסימה (יחד עם מחלקה חדשה SSLSocketAdapterGateway).
  • הוספת יישומים של SSLSocketDataIO :: SetPrivateKey () ו- SSLSocketDataIO :: SetCertificate () שלוקחים את ByteBuffer כארגומנט.
  • נוסף מחלקה SSLSocketAdapterGateway המשמשת לניהול המחשב הפנימי של OpenSSL בעת שימוש במחלקה SSLSocketDataIO עם השער.
  • הוספת שיטות SetSSLPrivateKey () ו GetSSLPrivateKey () למחלקת ReflectServer, לצורך הפעלה קלה יותר של אימות SSL בכל חיבורי TCP נכנסים. שיטות אלה זמינות אם ההגדרה MUSCLE_ENABLE_SSL מוגדרת.
  • הוספת השיטות SetSSLPublicKeyCertificate () ו GetSSLPublicKeyCertificate () למחלקת ReflectServer, לצורך הפעלה קלה יותר של אימות SSL בחיבורי TCP יוצאים. שיטות אלה זמינות אם ההגדרה MUSCLE_ENABLE_SSL מוגדרת.
  • הוספת שיטות SetSSLPrivateKey () ו SetSSLPublicKeyCertificate () למחלקה MessageTransceiverThread, לצורך הפעלה קלה יותר של פונקציונליות SSL בעת שימוש ברצף I / O.
  • נוסף תיקיה ssl_data עם מידע על יצירת keypairs ציבורי / פרטי של OpenSSL, וכן keypair לדוגמה לשימוש בבדיקת OpenSSL.
  • כאשר MUSCLE_ENABLE_SSL מוגדר, muscled מקבל כעת ארגומנט אופציונלי 'privatekey = filename'. כאשר צוין, מצב SSL יופעל ושרירים יקבלו רק חיבורי TCP נכנסים המציגים מפתחות ציבוריים התואמים את המפתח / האישור הפרטי.
  • כאשר MUSCLE_ENABLE_SSL מוגדר, portablereflectclient ו- qt_example יקבלו כעת ארגומנט אופציונלי 'publickey = filename'. כאשר צוין, מצב SSL יופעל והלקוחות האלה יחברו לשרירים באמצעות OpenSSL ויציגו קובץ זה כאישורי הכניסה שלהם.
  • נוסף & quot; הנפשת & quot; תיבת הסימון הדגמה qt_example. בדיקה זו גורמת לחלון להזיז את המחוון שלו באופן אוטומטי. זה כיף וגם שימושי אם אתה רוצה לבדוק תרחיש שבו לקוחות מרובים הם יצירת תנועה בו זמנית.
  • עשה את הדגמה qt_example יפה יותר.
  • שינו את שמות המאקרו של C + 11-Helper ב- Hashtable.h ו- Queue.h כדי לגרום להם פחות להתנגש עם פקודות מאקרו של חבילות אחרות. * תוקנו כמה שגיאות קלות בכיתה SSLSocketDataIO. o שינו את שם ה- SSLSocketDataIO :: SetKey () ל- SetPrivateKey (). o שינוי שם של SSLSocketDataIO :: SetCertificate () ל SetPublicKeyCertificate (). o AbstractMessageIOGateway :: SetDataIO () הוא כעת שיטה וירטואלית.

מה חדש בגירסה 5.92:

  • תמיכה משופרת בסלנטיקה של C + 11 בשורות תור ו- Hashtable (מופעלת רק כאשר -DMUSCLE_USE_CPLUSPLUS11 מוגדר)
  • נוסף חלק מהכלים למחלקת מחרוזות כדי שאוכל לראות כמה פעמים אובייקט מחרוזת, מועבר וכו '(מופעל רק כאשר -DMUSCLE_COUNT_STRING_COPY_OPERATIONS מוגדר)
  • נוסף פונקציה PrintAndClearStringCopyCounts () אשר תדפיס את נתוני פעולת המיתרים שנאספו לעיל.
  • הוסיף כמה קסמים SFINAE כדי muscleSwap (), כך שזה יהיה להחליף על ידי קורא SwapContents () כאשר אפשרי, ולא על ידי העתקה לאובייקט זמני.
  • הוספת בנאי רשימת-עלים ועומס יתר של המחלקה AddTailMulti () לתור (זמין רק כאשר -DMUSCLE_USE_CPLUSPLUS11 מוגדר, כמובן)
  • שינו את שם התור ואת עומסי המערך של תור :: AddTail () ל- AddTailMulti (), כדי למנוע התנגשויות עם התמיכה החדשה בתכנות C + 11.
  • שינו את שם התור ואת עומסי המערך של תור :: AddHead () ל- AddHeadMulti (), כדי למנוע התנגשויות עם התמיכה החדשה בתכנות C + 11.
  • הוחלף מאקרו MCRASH_IMPL עם שיחה כדי לטעון (שקר).
  • עוד קצת תאימות ל- Android.
  • רבות מהתוכניות בתיקיית הבדיקות לא נאספו תחת C + 11. תוקן.
  • תוקנו מספר באגים פוטנציאליים שזוהו על ידי כלי הניתוח הסטטי של Clang.

מה חדש בגירסה 5.91:

  • הוספת שיטת הנוחות של AssureCanPut () לשיעור Hashtable.
  • נוסף שיטת הנוחות של ConfureCanAd () לשיעור התור.
  • השתנה DoMutexAtomicIncrement () כדי להיות פונקציה inline כדי להפוך אותו קורא יעיל יותר.
  • השתנה QMessageTransceiverThread ו QAcceptSocketsThread כדי לקרוא QCoreApplication :: postEvent () ולא על ידי QApplication :: postEvent (), כדי לאפשר יישומים שאינם GUI QT.
  • עודכן מסמך המדריך למתחילים כדי לשקף את תמיכת UDP המשופרת של MUSCLE.
  • התמזגה בכמה שינויי תאימות ב- Android שסופקו על ידי ז'אן-פראנסואה מולה.
  • השימוש ב MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS דגל הידור יגרום למוסקל לקרוס בעת האתחול עקב בעיה בהזמנת פעולות. זה תוקן עכשיו.
  • הדגל של MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS שימש בעבר רק אם לא היה יישום אחר של AtomicCounter זמין. עכשיו הדגל יש עדיפות גבוהה יותר, ולכן הגדרת הדגל פירושו כי Mutexes ישמש, גם אם מנגנון אחר (יעיל יותר) זמין.

מה חדש בגרסה 5.90:

  • נוסף שיטה GetPacketMaximumSize () למחלקת DataIO כדי לאפשר לקוד השער לבצע אינטליגנציה רבה יותר לטיפול בתקשורת מאוחדת מסוג UDP.
  • MessageIOGateway עכשיו עובד בצורה שימושית בשילוב עם UDPSocketDataIO.
  • נוסף CreateObjectFromArchiveMessage () פונקציות לתבניות כדי Message.h, לשמש צד משוחזרת בצד GetArchiveMessageFromPool (), וכו '
  • AtomicCounter :: AtomicIncrement () מחזירה כעת בוליאני (true iff ערך הדלפק החדש שווה לאחד).
  • שינו את המחלקה HashtableIterator כך שחידוש Hashtable לקריאה בלבד יהיו בטוחים כעת גם אם הדגל HTIT_FLAG_NOREGISTER לא צוין.
  • הוספת מחלקה muscle_thread_id ל- SetupSystem.h, כדי לייצג כהלכה מזהה מזהה בצורה נייטרלית.
  • נוסף & quot; קיפאון & quot; תכנית לתיקיית הבדיקות. תוכנית זו בכוונה סיכונים יצירת הקיפאון, כדרך לממש / להדגים את מבחן הקיפאון.
  • תמיכה נוספת עבור סימן -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS שורת פקודה, עבור אלה שמעדיפים להימנע מהתקרה של בטיחות פתילים אוטומטית ולהבטיח לספק טיעונים של HTIT_FLAG_NOREGISTER ביד לפי הצורך.
  • הוספת מטמון בדיקת LRU אופציונלי לפונקציה GetHostByName (), כך שתוכל לחזור מהר יותר כאשר אותם שמות מארחים ייפתרו שוב ושוב.
  • הוספת פונקציה SetHostNameCacheSettings () המאפשרת ומתאימה למטמון בדיקת LRU ב- GetHostByName ().
  • תמיכה נוספת עבור & quot; dnscache & quot; & quot; dnscachesize & quot; (), כדי לאפשר מפרט שורת פקודה של התנהגות המטמון של בדיקת LRU.
  • שינו את המחלקה Hashtable כך שערכי החברים _iterHead ו- _iterTail ו- _freeHead נמצאים כעת ב- uint32s במקום במצביעים, כדי להפחית את השימוש בזיכרון.
  • הסיר את המתודה ThreadLocalStorage :: SetFreeHeldObjectsOnExit () והוסיף טיעון בוליאני לבנאי שלו, מכיוון ש- pthreads לא מאפשרים לך לשנות הגדרה זו לאחר שנקראת pthread_key_create ().
  • עבר את GetCurrentThreadID () אל המחלקה muscle_thread_id כפונקציה של חבר סטטי, ושינה אותה כדי להחזיר אובייקט muscle_thread_id ולא ארוך.
  • שינה את שם המארח המשמש כברירת מחדל עבור פעילויות באתר ללא כתובת IP ידועה מ & quot; & quot; כדי & quot; _unknown_ & quot ;, כמו זוויות זווית מחרוזת לשעבר יש משמעות מיוחדת של שחרור 5.84, וזה יכול להפריע התאמת נתיב נתיב בדרכים לא מכוונות.
  • השיטות CalculateChecksum () ב- Message.cpp שונו כדי להיות חזקות יותר באיתור הבדלי טרנספוזיציה של נתונים.
  • הסיר את התמיכה של MUSCLE_USE_QT_FOR_ATOMIC_OPERATIONS מ- AtomicCounter.h, מכיוון ש- QtomicicInt של Qt אינו תומך בפונקציונליות שדורשת ערך ההחזרה החדש של השיטה AtomicIncrement ().
  • הוסר MessageIOGateway :: FlattenMessage () ו MessageIOGateway :: UnflattenMessage (). נוסף במקומם: MessageIOGateway :: FlattenHeaderAndMessage () ו MessageIOGateway :: UnflattenHeaderAndMessage (). שיטות חדשות אלה עוסקות הן בבתות הכותרת והן בגוף ההודעה בעת ובעונה אחת.
  • הוספת קובץ udpproxy.vcproj לתיקיית הבדיקות, כדי לעזור לקמפל udpproxy תחת Windows.
  • הודעה: (Flatten) () כעת הוא חוזר על השדות בהודעה פעם אחת, במקום פעמיים.
  • GetCurrentThreadID () הוא כעת פונקציה inline, שכן הוא עשוי לקבל עכשיו נקרא לעתים קרובות על ידי HashtableIterator.
  • שינו את קוד ה- deadlockfinder לשימוש ב- Queues במקום Hashtables, מכיוון ש- muscle_thread_id אינו יכול לשמש כסוג מפתח Hashtable יותר.
  • קבוע testudp.cpp להשתמש כראוי MessageIOGateway לתקשורת UDP שלה.
  • שינו את ה- ifdefs ב- FilePathInfo.cpp קצת יותר כך ש- statInfo.st_birthtimespec לא ייכנס בעת שימוש ב- MacOS / X SDKs שאינם מספקים אותו.
  • MessageDataIOGateway כבר לא מנסה לבטל את הסימון של הודעה ממאגר נתונים zlib-deflated שהוא לא הצליח לנפח מחדש.
  • תוקן באג ב- SendDataUDP () שעלולה לגרום ל- SendDataUDP () להחזיר שגיאה כששולחים לכתובת שידור לקבוצה תוך שימוש במצב שאינו חוסם, ומאגר הפלט היה מלא.

מה חדש בגירסה 5.85:

  • נוסף LogTime (MUSCLE_LOG_DEBUG) קורא לכל נתיבי השגיאה ב- MessageIOGateway :: DoInputImplementation () ו- Message :: Unlatten (), כך שקל יותר לקבוע מתי מתבצעת הפסקת חיבורי TCP עקב נתונים שחיתות.
  • הוספת פונקציה PreviousOperationHadTransientFailure (), המחזירה true if iff errno היא EINTR או ENOBUFS.
  • ציון spamspersecond = -1 יגרום כעת ל- hexterm לשלוח נתוני ספאם מהר ככל האפשר.
  • SocketMultiplexer.h של MUSCLE_USE_POLL יישום היה לספק POLLERR ל WSAPoll () אבל WSAPoll () אינו תומך POLLERR כך WSAPoll () יחזיר שגיאה כאשר זה קרה. עבדו סביב הבעיה על ידי סינון POLLERR בעת הידור תחת Windows.
  • תוקן באג שבו שלח () החזרת ENOBUFS עלולה לגרום לסיום חיבור ה- socket, למרות ש- ENOBUFS אינו מצב קטלני.
  • SocketMultiplexer.cpp לא ידרדר כאשר MUSCLE_USE_POLL הוגדר. תוקן.
  • שיטת ZLibCodec :: Deflate () נכשלה לדחוס את כל הנתונים במאגר גדול מאוד (למשל מעל 42MB). תוקן.

מה חדש בגירסה 5.84:

  • התחביר המספרי של המחלקה StringMatcher הוארך כך שתוכל כעת לציין טווחים מרובים. לדוגמה, & quot; & quot; יתאים למחרוזות & quot; 19 & quot ;, & quot; 20 & quot ;, & quot; 21 & quot ;, & quot; 25 & quot ;, & quot; 30 & quot ;, & quot; 31 & quot ;, [...] ו- & quot; 50 & quot;.
  • הוספת פונקציות המרה של GetCurrentTime64ForRunTime64 () ו- GetRunTime64ForCurrenTime64 () ל- TimeUtilityFunctions.h.
  • נוסף שיטת השירות GetDescendant () עבור המחלקה DataNode.
  • נוסף C + 11 מובילי-העברה ומפעילי העברה-העברה למחלקות Hashtable, תור, מחרוזת, הודעה ו- ByteBuffer. לקבלת תאימות לאחור עם מהדרים ישנים יותר, קוד זה יעובד רק אם -DMUSCLE_USE_CPLUSPLUS11 מצוין בקו הידור.
  • המחלקה SharedMemory תהיה כעת nerf עצמה לקבוצת זיכרון שאינה משותפת אם -DMUSCLE_FAKE_SHARED_MEMORY מצוין.
  • הוספת בדיקת testfilepathinfo לתיקיית הבדיקות.
  • עודכנו כל הכותרות על הודעות זכויות יוצרים כדי לקרוא 2000000 Meyer Sound.
  • רווחים נוספים בין אסימוני מאקרו (למשל UINT32_FORMAT_SPEC) וקבועי מחרוזות (למשל & quot; הלו & quot;) כדי להפוך את המהדרים C + 11 לשמחים.
  • ByteBuffer.cpp הייתה שגיאת תחביר שתמנע ממנה לבצע קומפילציה על מארחים גדולים. תוקן.
  • MacOS / X בלבד: שיחות פונקציה פחמן שהוצאו משימוש הוחלפו עם מקבילות מאך, כדי למנוע אזהרות פיחות מתחת ל -10.8.x.

מה חדש בגירסה 5.83:

  • גרסאות נוחות נוספות של InflateByteBuffer () ו- DeflateByteBuffer () קח את ByteBufferRef כארגומנט.
  • הוסרו כמה שיטות מיושנות / שאינן בשימוש (AssureBufferSize () ו- FreeLargeBuffer ()) ממחלקת AbstractMessageIOGateway.
  • תוקן מספר שגיאות הקלדה בהערות בתיקיית המשנה דלפי.
  • המחלקה Hashtable לא יוצרת אזהרות כאשר היא מלוקטת תחת MSVC עם -DMUSCLE_AVOID_MINIMIZED_HASHTABLES מוגדרת.
  • תוקן באג ב- IPAddressAndPort :: ToString () שגרם למחרוזות כתובת IPv4 להיות מעוצבות בצורה דו-משמעית כאשר (preferIPv4Style) הוגדר כ- false.

תוכנה דומה

HyperSQL
HyperSQL

11 May 15

Redis
Redis

28 Sep 15

תוכנות אחרות של יזם Jeremy Friesner

AudioMove
AudioMove

2 Jun 15

תגובות ל MUSCLE

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!