Wasmer 2.0, WebAssembly-ಆಧಾರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಟೂಲ್‌ಕಿಟ್ ಲಭ್ಯವಿದೆ

ವಾಸ್ಮರ್ ಪ್ರಾಜೆಕ್ಟ್ ತನ್ನ ಎರಡನೇ ಪ್ರಮುಖ ಬಿಡುಗಡೆಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ, ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ರನ್‌ಟೈಮ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ, ಇದನ್ನು ವಿವಿಧ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ರನ್ ಮಾಡಬಹುದಾದ ಸಾರ್ವತ್ರಿಕ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಕೋಡ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಚಲಾಯಿಸಲು ಬಳಸಬಹುದು. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ.

ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಅನ್ನು ಕಡಿಮೆ-ಮಟ್ಟದ ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಮಧ್ಯಂತರ ಕೋಡ್‌ಗೆ ಕಂಪೈಲ್ ಮಾಡುವ ಮೂಲಕ ಪೋರ್ಟಬಿಲಿಟಿ ಸಾಧಿಸಲಾಗುತ್ತದೆ, ಇದು ಯಾವುದೇ OS ನಲ್ಲಿ ರನ್ ಆಗಬಹುದು ಅಥವಾ ಇತರ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಪ್ರೋಗ್ರಾಂಗಳಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಬಹುದು. ಪ್ರೋಗ್ರಾಂಗಳು WebAssembly ಸೂಡೊಕೋಡ್ ಅನ್ನು ರನ್ ಮಾಡುವ ಹಗುರವಾದ ಕಂಟೇನರ್ಗಳಾಗಿವೆ. ಈ ಕಂಟೈನರ್‌ಗಳನ್ನು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗೆ ಜೋಡಿಸಲಾಗಿಲ್ಲ ಮತ್ತು ಮೂಲತಃ ಯಾವುದೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾದ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. WebAssembly ಗೆ ಕಂಪೈಲ್ ಮಾಡಲು ಎಂಸ್ಕ್ರಿಪ್ಟನ್ ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಬಳಸಬಹುದು. WebAssembly ಅನ್ನು ಪ್ರಸ್ತುತ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಯಂತ್ರ ಕೋಡ್‌ಗೆ ಭಾಷಾಂತರಿಸಲು, ಇದು ವಿವಿಧ ಸಂಕಲನ ಬ್ಯಾಕೆಂಡ್‌ಗಳು (Singlepass, Cranelift, LLVM) ಮತ್ತು ಎಂಜಿನ್‌ಗಳ (JIT ಅಥವಾ ಯಂತ್ರ ಕೋಡ್ ಉತ್ಪಾದನೆಯನ್ನು ಬಳಸಿಕೊಂಡು) ಸಂಪರ್ಕವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.

ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಮತ್ತು ಸಂವಹನವನ್ನು WASI (ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಸಿಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್) API ಬಳಸಿಕೊಂಡು ಒದಗಿಸಲಾಗುತ್ತದೆ, ಇದು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಒದಗಿಸಿದ ಫೈಲ್‌ಗಳು, ಸಾಕೆಟ್‌ಗಳು ಮತ್ತು ಇತರ ಕಾರ್ಯಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪರಿಸರದಲ್ಲಿ ಮುಖ್ಯ ವ್ಯವಸ್ಥೆಯಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ ಮತ್ತು ಘೋಷಿತ ಕಾರ್ಯಕ್ಕೆ ಮಾತ್ರ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತದೆ (ಸಾಮರ್ಥ್ಯ ನಿರ್ವಹಣೆಯ ಆಧಾರದ ಮೇಲೆ ಭದ್ರತಾ ಕಾರ್ಯವಿಧಾನ - ಪ್ರತಿಯೊಂದು ಸಂಪನ್ಮೂಲಗಳೊಂದಿಗಿನ ಕ್ರಿಯೆಗಳಿಗೆ (ಫೈಲ್‌ಗಳು, ಡೈರೆಕ್ಟರಿಗಳು, ಸಾಕೆಟ್‌ಗಳು, ಸಿಸ್ಟಮ್ ಕರೆಗಳು, ಇತ್ಯಾದಿ), ಅರ್ಜಿಗೆ ಸೂಕ್ತ ಅಧಿಕಾರ ನೀಡಬೇಕು).

WebAssembly ಕಂಟೇನರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು, ರನ್‌ಟೈಮ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ವಾಸ್ಮರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ, ಅದು ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳಿಲ್ಲದೆ ಬರುತ್ತದೆ (“ಕರ್ಲ್ https://get.wasmer.io -sSfL | sh”), ಮತ್ತು ಅಗತ್ಯ ಫೈಲ್ ಅನ್ನು ರನ್ ಮಾಡಿ (“wasmer test.wasm” ) ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಸಾಮಾನ್ಯ ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಮಾಡ್ಯೂಲ್‌ಗಳ ರೂಪದಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ, ಇದನ್ನು WAPM ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಬಳಸಿ ನಿರ್ವಹಿಸಬಹುದು. ರಸ್ಟ್, ಸಿ/ಸಿ++, ಸಿ#, ಡಿ, ಪೈಥಾನ್, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್, ಗೋ, ಪಿಎಚ್‌ಪಿ, ರೂಬಿ, ಎಲಿಕ್ಸಿರ್ ಮತ್ತು ಜಾವಾ ಪ್ರೊಗ್ರಾಮ್‌ಗಳಲ್ಲಿ ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಕೋಡ್ ಅನ್ನು ಎಂಬೆಡ್ ಮಾಡಲು ಬಳಸಬಹುದಾದ ಲೈಬ್ರರಿಯಾಗಿ ವಾಸ್ಮರ್ ಲಭ್ಯವಿದೆ.

ಸ್ಥಳೀಯ ಅಸೆಂಬ್ಲಿಗಳಿಗೆ ಸಮೀಪವಿರುವ ಅಪ್ಲಿಕೇಶನ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. WebAssembly ಮಾಡ್ಯೂಲ್‌ಗಾಗಿ ಸ್ಥಳೀಯ ಆಬ್ಜೆಕ್ಟ್ ಇಂಜಿನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು, ನೀವು ಮೆಷಿನ್ ಕೋಡ್ ಅನ್ನು ರಚಿಸಬಹುದು ("wasmer compile -native" precompiled .so, .dylib ಮತ್ತು .dll ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು), ಇದು ರನ್ ಮಾಡಲು ಕನಿಷ್ಠ ರನ್‌ಟೈಮ್ ಅಗತ್ಯವಿರುತ್ತದೆ, ಆದರೆ ಎಲ್ಲಾ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ ವೈಶಿಷ್ಟ್ಯಗಳು. ಅಂತರ್ನಿರ್ಮಿತ ವಾಸ್ಮರ್ನೊಂದಿಗೆ ಪೂರ್ವಸಂಯೋಜಿತ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೂರೈಸಲು ಸಾಧ್ಯವಿದೆ. ಆಡ್-ಆನ್‌ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳನ್ನು ರಚಿಸಲು ರಸ್ಟ್ API ಮತ್ತು Wasm-C-API ಅನ್ನು ನೀಡಲಾಗುತ್ತದೆ.

ವಾಸ್ಮರ್‌ನ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯಲ್ಲಿ ಗಮನಾರ್ಹ ಬದಲಾವಣೆಯು ಆಂತರಿಕ API ಗೆ ಹೊಂದಾಣಿಕೆಯಾಗದ ಬದಲಾವಣೆಗಳ ಪರಿಚಯದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ, ಇದು ಡೆವಲಪರ್‌ಗಳ ಪ್ರಕಾರ, 99% ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಬಳಕೆದಾರರ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ಹೊಂದಾಣಿಕೆಯನ್ನು ಮುರಿಯುವ ಬದಲಾವಣೆಗಳಲ್ಲಿ, ಧಾರಾವಾಹಿ ವಾಸ್ಮ್ ಮಾಡ್ಯೂಲ್‌ಗಳ ಸ್ವರೂಪದಲ್ಲಿ ಬದಲಾವಣೆಯೂ ಇದೆ (ವಾಸ್ಮರ್ 1.0 ನಲ್ಲಿ ಧಾರಾವಾಹಿ ಮಾಡಲಾದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ವಾಸ್ಮರ್ 2.0 ನಲ್ಲಿ ಬಳಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ). ಇತರ ಬದಲಾವಣೆಗಳು:

  • SIMD (ಸಿಂಗಲ್ ಇನ್‌ಸ್ಟ್ರಕ್ಷನ್, ಬಹು ಡೇಟಾ) ಸೂಚನೆಗಳಿಗೆ ಬೆಂಬಲ, ಡೇಟಾ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಮಾನಾಂತರತೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ. SIMD ಬಳಕೆಯು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಣನೀಯವಾಗಿ ಸುಧಾರಿಸಬಹುದಾದ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಯಂತ್ರ ಕಲಿಕೆ, ವೀಡಿಯೊ ಎನ್‌ಕೋಡಿಂಗ್ ಮತ್ತು ಡಿಕೋಡಿಂಗ್, ಇಮೇಜ್ ಪ್ರೊಸೆಸಿಂಗ್, ಭೌತಿಕ ಪ್ರಕ್ರಿಯೆಯ ಸಿಮ್ಯುಲೇಶನ್ ಮತ್ತು ಗ್ರಾಫಿಕ್ಸ್ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ ಸೇರಿವೆ.
  • ಉಲ್ಲೇಖದ ಪ್ರಕಾರಗಳಿಗೆ ಬೆಂಬಲ, ಇತರ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಅಥವಾ ಆಧಾರವಾಗಿರುವ ಪರಿಸರದಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು Wasm ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  • ಗಮನಾರ್ಹವಾದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳನ್ನು ಮಾಡಲಾಗಿದೆ. ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ LLVM ರನ್‌ಟೈಮ್‌ನ ವೇಗವನ್ನು ಸರಿಸುಮಾರು 50% ಹೆಚ್ಚಿಸಲಾಗಿದೆ. ಕರ್ನಲ್‌ಗೆ ಪ್ರವೇಶದ ಅಗತ್ಯವಿರುವ ಸಂದರ್ಭಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಕಾರ್ಯ ಕರೆಗಳನ್ನು ಗಮನಾರ್ಹವಾಗಿ ವೇಗಗೊಳಿಸಲಾಗಿದೆ. ಕ್ರೇನ್‌ಲಿಫ್ಟ್ ಕೋಡ್ ಜನರೇಟರ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು 40% ಹೆಚ್ಚಿಸಲಾಗಿದೆ. ಕಡಿಮೆಯಾದ ಡೇಟಾ ಡೀಸರಲೈಸೇಶನ್ ಸಮಯ.
    Wasmer 2.0, WebAssembly-ಆಧಾರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಟೂಲ್‌ಕಿಟ್ ಲಭ್ಯವಿದೆ
    Wasmer 2.0, WebAssembly-ಆಧಾರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಟೂಲ್‌ಕಿಟ್ ಲಭ್ಯವಿದೆ
  • ಸಾರವನ್ನು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ಪ್ರತಿಬಿಂಬಿಸಲು, ಎಂಜಿನ್‌ಗಳ ಹೆಸರುಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ: JIT → ಯುನಿವರ್ಸಲ್, ಸ್ಥಳೀಯ → Dylib (ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿ), ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ → StaticLib (ಸ್ಟ್ಯಾಟಿಕ್ ಲೈಬ್ರರಿ).

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ