MessagePack
ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಒಂದು ಕಂಪ್ಯೂಟರ್ ದತ್ತಾಂಶ ವಿನಿಮಯ ಸ್ವರೂಪವಾಗಿದೆ. ಇದು ಸರಣಿಗಳು ಮತ್ತು ಸಹಾಯಕ ಸರಣಿಗಳಂತಹ ಸರಳ ದತ್ತಾಂಶ ರಚನೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ ದ್ವಿಮಾನ ರೂಪವಾಗಿದೆ. ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಸಾಧ್ಯವಾದಷ್ಟು ಕಾಂಪ್ಯಾಕ್ಟ್ ಮತ್ತು ಸರಳವಾಗಿರುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಅಧಿಕೃತ ಅನುಷ್ಠಾನವು ಸಿ, ಸಿ + +, ಸಿ #, ಡಿ, ಎರ್ಲಾಂಗ್, ಗೋ, ಹ್ಯಾಸ್ಕೆಲ್, ಜಾವಾ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ (ನೋಡ್ಜೆಎಸ್), ಲುವಾ, ಒಕ್ಯಾಮ್ಲ್, ಪರ್ಲ್, ಪಿಎಚ್ಪಿ, ಪೈಥಾನ್, ರೂಬಿ, ರಸ್ಟ್, ಸ್ಕಾಲಾ, ಸ್ಮಾಲ್ಟಾಕ್ ಮತ್ತು ಸ್ವಿಫ್ಟ್ನಂತಹ ವಿವಿಧ ಭಾಷೆಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ. ಮೆಸೇಜ್ಪ್ಯಾಕ್ನಿಂದ ಸಂಸ್ಕರಿಸಲಾದ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳು ಮತ್ತು ವಾಕ್ಯರಚನೆಯ ದತ್ತಾಂಶ ರಚನೆಗಳು ಜೆಎಸ್ಒಎನ್ ಸ್ವರೂಪದಲ್ಲಿ ಬಳಸಲಾದವುಗಳಿಗೆ ಸಡಿಲವಾಗಿ ಹೊಂದಿಕೆಯಾಗುತ್ತವೆ. ಅವು ಈ ಕೆಳಗಿನ ಅಂಶಗಳ ಪ್ರಕಾರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆಃ ನಿಲ್ ಬೂಲ್, ಬೂಲಿಯನ್ (ಟ್ರೂ ಮತ್ತು ಫಾಲ್ಸ್) ಇಂಟ್, ಪೂರ್ಣಾಂಕ (ಸಹಿ ಮಾಡಲಾದ ಅಥವಾ ಸಹಿ ಮಾಡದ 64 ಬಿಟ್ಗಳವರೆಗೆ) ಫ್ಲೋಟ್, ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಗಳು (ಐ. ಇ. ಇ. ಇ ಏಕ/ಡಬಲ್ ನಿಖರತೆ) ಎಸ್ಟಿಆರ್, ಯುಟಿಎಫ್-8 ಸ್ಟ್ರಿಂಗ್ ಬಿನ್, ಬೈನರಿ ಡೇಟಾ (232−1 ಬೈಟ್ಗಳವರೆಗೆ) ರಚನೆಯ ನಕ್ಷೆ, ಸಹಾಯಕ ರಚನೆಯ ಎಸ್ಟಿ (ಅಪ್ಲಿಕೇಶನ್-ವ್ಯಾಖ್ಯಾನಿತ ಸ್ವರೂಪದ ಅನಿಯಂತ್ರಿತ ಡೇಟಾ, 232−1 ಬೈಟ್ಗಳವರೆಗೆ) ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ (ಎಸ್ಟಿ ಟೈಪ್ = −1) (64-ಬಿಟ್ ಸೆಕೆಂಡುಗಳು ಮತ್ತು 32-ಬಿಟ್ ನ್ಯಾನೊಸೆಕೆಂಡ್ಗಳವರೆಗೆ) ಇತರ ಸ್ವರೂಪಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಸಂದೇಶ ಪ್ಯಾಕ್ ಜೆಎಸ್ಒಎನ್ಗಿಂತ ಹೆಚ್ಚು ಸಾಂದ್ರವಾಗಿರುತ್ತದೆ, ಆದರೆ ರಚನೆಯ ಮತ್ತು ಪೂರ್ಣಾಂಕದ ಗಾತ್ರಗಳ ಮೇಲೆ ಮಿತಿಗಳನ್ನು ವಿಧಿಸುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, ಇದು ಬೈನರಿ ಡೇಟಾ ಮತ್ತು ಯುಟಿಎಫ್-8 ಅಲ್ಲದ ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಜೆ. ಎಸ್. ಓ. ಎನ್. ನಲ್ಲಿ, ನಕ್ಷೆಯ ಕೀಲಿಗಳು ಸ್ಟ್ರಿಂಗ್ಗಳಾಗಿರಬೇಕು, ಆದರೆ ಮೆಸೇಜ್ಪ್ಯಾಕ್ನಲ್ಲಿ ಅಂತಹ ಯಾವುದೇ ಮಿತಿಯಿಲ್ಲ ಮತ್ತು ನಕ್ಷೆಗಳು ಮತ್ತು ಸರಣಿಗಳಂತಹ ಪ್ರಕಾರಗಳು ಮತ್ತು ವೈ. ಎ. ಎಂ. ಎಲ್. ನಂತಹ ಸಂಖ್ಯೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಯಾವುದೇ ಪ್ರಕಾರವು ನಕ್ಷೆಯ ಕೀಲಿಗಳಾಗಿರಬಹುದು. ಬಿಎಸ್ಒಎನ್ಗೆ ಹೋಲಿಸಿದರೆ, ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಹೆಚ್ಚು ಸ್ಥಳ-ದಕ್ಷವಾಗಿದೆ. ಬಿಎಸ್ಒಎನ್ ಅನ್ನು ವೇಗದ ಇನ್-ಮೆಮೊರಿ ಕುಶಲತೆಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಆದರೆ ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಅನ್ನು ತಂತಿಯ ಮೇಲೆ ಸಮರ್ಥ ಪ್ರಸರಣಕ್ಕಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಬಿಎಸ್ಒಎನ್ಗೆ ಎಲ್ಲಾ ಸ್ಟ್ರಿಂಗ್ಗಳ ಕೊನೆಯಲ್ಲಿ ಶೂನ್ಯ ಟರ್ಮಿನೇಟರ್ಗಳು ಬೇಕಾಗುತ್ತವೆ ಮತ್ತು ಪಟ್ಟಿ ಅಂಶಗಳಿಗೆ ಸ್ಟ್ರಿಂಗ್ ಸೂಚ್ಯಂಕಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ, ಆದರೆ ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಮಾಡುವುದಿಲ್ಲ. ಬಿಎಸ್ಒಎನ್ ವ್ಯೂಹಗಳು ಮತ್ತು ನಕ್ಷೆಗಳೆರಡನ್ನೂ ಆಂತರಿಕವಾಗಿ ದಾಖಲೆಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಅವು ನಕ್ಷೆಗಳಾಗಿವೆ, ಅಲ್ಲಿ ವ್ಯೂಹವು 0 ರಿಂದ ಎಣಿಸುವ ದಶಮಾಂಶ ತಂತಿಗಳಾಗಿ ಕೀಲಿಗಳನ್ನು ಹೊಂದಿರುವ ನಕ್ಷೆಯಾಗಿದೆ. ಮತ್ತೊಂದೆಡೆ ಮೆಸೇಜ್ಪ್ಯಾಕ್ ನಕ್ಷೆಗಳು ಮತ್ತು ಸರಣಿಗಳೆರಡನ್ನೂ ಸರಣಿಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಅಲ್ಲಿ ಪ್ರತಿ ನಕ್ಷೆಯ ಕೀಲಿ-ಮೌಲ್ಯದ ಜೋಡಿಯು ಸಮೀಪದಲ್ಲಿದೆ, ಇದು ಬೆಸ ವಸ್ತುಗಳ ಕೀಲಿಗಳನ್ನು ಮತ್ತು ಐಟಂಗಳ ಮೌಲ್ಯಗಳನ್ನು ಸಹ ಮಾಡುತ್ತದೆ. ಪ್ರೋಟೋಕಾಲ್ ಬಫರ್ಸ್ ಸ್ವರೂಪವು ಮೆಸೇಜ್ಪ್ಯಾಕ್ಗಿಂತ ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚು ಸಾಂದ್ರವಾದ ಪ್ರಸರಣ ಸ್ವರೂಪವನ್ನು ಒದಗಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಇದು ಕ್ಷೇತ್ರದ ಹೆಸರುಗಳನ್ನು ರವಾನಿಸುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ಜೆಎಸ್ಒಎನ್ ಮತ್ತು ಮೆಸೇಜ್ಪ್ಯಾಕ್ ವಿಧದ ಟ್ಯಾಗ್ಗಳೊಂದಿಗೆ ಅನಿಯಂತ್ರಿತ ದತ್ತಾಂಶ ರಚನೆಗಳನ್ನು ಕ್ರಮಬದ್ಧಗೊಳಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದ್ದರೂ, ಪ್ರೊಟೊಕಾಲ್ ಬಫರ್ಗಳಿಗೆ ದತ್ತಾಂಶ ಪ್ರಕಾರಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸ್ಕೀಮಾದ ಅಗತ್ಯವಿರುತ್ತದೆ. ಪ್ರೋಟೋಕಾಲ್ ಬಫರ್ಸ್ ಕಂಪೈಲರ್ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿ ಸೀರಿಯಲೈಸೇಶನ್ ಏಕೀಕರಣವನ್ನು ಸುಲಭಗೊಳಿಸಲು ಗುರಿ ಭಾಷೆಯಲ್ಲಿ ಬಾಯ್ಲರ್ ಪ್ಲೇಟ್ ಕೋಡ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ; ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಟೈಪ್ ಮಾಡಲಾದ ಡೇಟಾ ರಚನೆಯನ್ನು ಮಾತ್ರ ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಸ್ವಯಂಚಾಲಿತ ರಚನೆಯ ಪರಿಶೀಲನೆಗಳನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಮೆಸೇಜ್ ಪ್ಯಾಕ್ ಅನ್ನು ಸಿ. ಬಿ. ಓ. ಆರ್. ನಲ್ಲಿ ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ. ಅಪಾಚೆ ಥ್ರಿಫ್ಟ್ ಅಪಾಚೆ ಅವ್ರೋ ಬಿಎಸ್ಒಎನ್ ಸಿಬಿಒಆರ್ ಜೆಎಸ್ಒಎನ್ಬಿ ಜೆಎಸ್ಒಎನ್ ಪ್ರೊಟೊಕಾಲ್ ಬಫರ್ಸ್ ಸ್ಮೈಲ್ ಯುಬಿಜೆಎಸ್ಒಎನ್ ಡೇಟಾ ಸೀರಿಯಲೈಸೇಶನ್ ಫಾರ್ಮ್ಯಾಟ್ಗಳ ಹೋಲಿಕೆ ವೈಎಎಂಎಲ್ ಎಕ್ಸ್ಡಿಆರ್ ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಮೆಸೇಜ್ಪ್ಯಾಕ್ ಫಾರ್ಮ್ಯಾಟ್ ಸ್ಪೆಸಿಫಿಕೇಷನ್ ಡೇಟಾ ಸೀರಿಯಲೈಸೇಶನ್ ಫಾರ್ಮ್ಯಾಟ್ಗಳು