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

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

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

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

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

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

ವಾಸ್ಮರ್ 3.0 ನಲ್ಲಿನ ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • ಯಾವುದೇ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಸ್ಥಳೀಯ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. WebAssembly ಮಧ್ಯಂತರ ಕೋಡ್ ಫೈಲ್ ಅನ್ನು Linux, Windows ಮತ್ತು MacOS ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗಾಗಿ ಸ್ವಯಂ-ಒಳಗೊಂಡಿರುವ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಗಳಾಗಿ ಪರಿವರ್ತಿಸಲು "wasmer create-exe" ಆಜ್ಞೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮರುವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಅದು Wasmer ಅನ್ನು ಸ್ಥಾಪಿಸದೆಯೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.
  • "wasmer run" ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು wapm.io ಡೈರೆಕ್ಟರಿಯಲ್ಲಿರುವ WAPM ಪ್ಯಾಕೇಜುಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಿದೆ. ಉದಾಹರಣೆಗೆ, "wasmer run python/python" ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದು wapm.io ರೆಪೊಸಿಟರಿಯಿಂದ ಪೈಥಾನ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ರನ್ ಮಾಡುತ್ತದೆ.
  • ವಾಸ್ಮರ್ ರಸ್ಟ್ API ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮರುವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಮೆಮೊರಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಶೈಲಿಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಟೋರ್ ರಚನೆಯಲ್ಲಿ ವಾಸ್ಮ್ ವಸ್ತುಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಉಳಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಹೊಸ MemoryView ರಚನೆಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ ಅದು ರೇಖಾತ್ಮಕ ಮೆಮೊರಿ ಪ್ರದೇಶಕ್ಕೆ ಡೇಟಾವನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ.
  • ವೆಬ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ವಾಸ್ಮರ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಮತ್ತು ವಾಸ್ಮ್-ಬೈಂಡ್ಜೆನ್ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಿಂದ ಅದರೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ವಾಸ್ಮರ್-ಜೆಎಸ್ ಘಟಕಗಳ ಒಂದು ಸೆಟ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಅದರ ಸಾಮರ್ಥ್ಯಗಳಲ್ಲಿ, ವಾಸ್ಮರ್-ಜೆಎಸ್ ಸಾಮಾನ್ಯ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ವಾಸ್ಮರ್ ಅನ್ನು ಚಲಾಯಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ವಾಸ್ಮರ್-ಸಿಸ್ ಘಟಕಗಳಿಗೆ ಅನುರೂಪವಾಗಿದೆ.
  • ಎಂಜಿನ್‌ಗಳನ್ನು ಸರಳೀಕರಿಸಲಾಗಿದೆ. JIT, ಡೈನಾಮಿಕ್ ಮತ್ತು ಸ್ಟ್ಯಾಟಿಕ್ ಲಿಂಕ್ (ಯೂನಿವರ್ಸಲ್, ಡೈಲಿಬ್, ಸ್ಟ್ಯಾಟಿಕ್‌ಲಿಬ್) ಗಾಗಿ ಪ್ರತ್ಯೇಕ ಎಂಜಿನ್‌ಗಳಿಗೆ ಬದಲಾಗಿ, ಒಂದು ಸಾಮಾನ್ಯ ಎಂಜಿನ್ ಅನ್ನು ಈಗ ನೀಡಲಾಗಿದೆ ಮತ್ತು ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಹೊಂದಿಸುವ ಮಟ್ಟದಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುವುದು ಮತ್ತು ಉಳಿಸುವುದನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ.
  • ಕಲಾಕೃತಿಗಳನ್ನು ನಿರ್ಮೂಲನೆ ಮಾಡಲು, rkyv ಚೌಕಟ್ಟನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ಶೂನ್ಯ-ನಕಲು ಕ್ರಮದಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಅಂದರೆ. ಇದಕ್ಕೆ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಮೆಮೊರಿ ಹಂಚಿಕೆ ಅಗತ್ಯವಿಲ್ಲ ಮತ್ತು ಆರಂಭದಲ್ಲಿ ಒದಗಿಸಿದ ಬಫರ್ ಬಳಸಿ ಮಾತ್ರ ಡೀರಿಯಲೈಸೇಶನ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. rkyv ಬಳಕೆಯು ಆರಂಭಿಕ ವೇಗವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸಿದೆ.
  • Singlepass ಏಕ-ಪಾಸ್ ಕಂಪೈಲರ್ ಅನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ, ಬಹು-ಮೌಲ್ಯದ ಕಾರ್ಯಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುತ್ತದೆ, ಸುಧಾರಿತ ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ವಿನಾಯಿತಿ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಫ್ರೇಮ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • WASI (ವೆಬ್ ಅಸೆಂಬ್ಲಿ ಸಿಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್) API ಯ ಸುಧಾರಿತ ಅನುಷ್ಠಾನ. ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು WASI ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಟರ್ಫೇಸ್‌ನಲ್ಲಿನ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ. WAI (WebAssembly Interfaces) ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆಂತರಿಕ ಪ್ರಕಾರಗಳನ್ನು ಮರುವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದು ಭವಿಷ್ಯದಲ್ಲಿ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳ ಸರಣಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.

ಮೂಲ: opennet.ru

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