Wasmer 3.0, WebAssembly-ఆధారిత అప్లికేషన్‌లను రూపొందించడానికి టూల్‌కిట్ అందుబాటులో ఉంది

వాస్మర్ ప్రాజెక్ట్ యొక్క మూడవ ప్రధాన విడుదల పరిచయం చేయబడింది, ఇది వెబ్‌అసెంబ్లీ మాడ్యూల్‌లను అమలు చేయడానికి రన్‌టైమ్‌ను అభివృద్ధి చేస్తుంది, ఇది వివిధ ఆపరేటింగ్ సిస్టమ్‌లలో అమలు చేయగల యూనివర్సల్ అప్లికేషన్‌లను సృష్టించడానికి అలాగే అవిశ్వసనీయ కోడ్‌ను ఒంటరిగా అమలు చేయడానికి ఉపయోగించవచ్చు. ప్రాజెక్ట్ కోడ్ రస్ట్‌లో వ్రాయబడింది మరియు MIT లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.

వివిధ ప్లాట్‌ఫారమ్‌లలో ఒక అప్లికేషన్‌ను అమలు చేయగల సామర్థ్యం తక్కువ-స్థాయి WebAssembly ఇంటర్మీడియట్ కోడ్‌గా కోడ్‌ను కంపైల్ చేయడం ద్వారా అందించబడుతుంది, ఇది ఏదైనా OSలో అమలు చేయగలదు లేదా ఇతర ప్రోగ్రామింగ్ భాషల్లోని ప్రోగ్రామ్‌లలో పొందుపరచబడుతుంది. ప్రోగ్రామ్‌లు WebAssembly సూడోకోడ్‌ని అమలు చేసే తేలికపాటి కంటైనర్‌లు. ఈ కంటైనర్లు ఆపరేటింగ్ సిస్టమ్‌తో ముడిపడి ఉండవు మరియు వాస్తవానికి ఏదైనా ప్రోగ్రామింగ్ భాషలో వ్రాసిన కోడ్‌ను కలిగి ఉంటాయి. WebAssemblyకి కంపైల్ చేయడానికి Emscripten టూల్‌కిట్‌ను ఉపయోగించవచ్చు. WebAssemblyని ప్రస్తుత ప్లాట్‌ఫారమ్ యొక్క మెషిన్ కోడ్‌గా అనువదించడానికి, ఇది వివిధ కంపైలేషన్ బ్యాకెండ్‌లు (Singlepass, Cranelift, LLVM) మరియు ఇంజిన్‌ల (JIT లేదా మెషిన్ కోడ్ ఉత్పత్తిని ఉపయోగించి) కనెక్షన్‌కు మద్దతు ఇస్తుంది.

అప్లికేషన్‌లు శాండ్‌బాక్స్ వాతావరణంలో ప్రధాన సిస్టమ్ నుండి వేరు చేయబడతాయి మరియు డిక్లేర్డ్ ఫంక్షనాలిటీకి మాత్రమే యాక్సెస్ కలిగి ఉంటాయి (సామర్థ్య నిర్వహణపై ఆధారపడిన భద్రతా యంత్రాంగం - ప్రతి వనరులతో (ఫైళ్లు, డైరెక్టరీలు, సాకెట్‌లు, సిస్టమ్ కాల్‌లు మొదలైనవి) చర్యల కోసం, దరఖాస్తుకు తగిన అధికారాలు ఇవ్వాలి). సిస్టమ్‌తో యాక్సెస్ నియంత్రణ మరియు పరస్పర చర్య WASI (వెబ్‌అసెంబ్లీ సిస్టమ్ ఇంటర్‌ఫేస్) APIని ఉపయోగించి అందించబడుతుంది, ఇది ఆపరేటింగ్ సిస్టమ్ అందించిన ఫైల్‌లు, సాకెట్లు మరియు ఇతర ఫంక్షన్‌లతో పనిచేయడానికి ప్రోగ్రామింగ్ ఇంటర్‌ఫేస్‌లను అందిస్తుంది.

స్థానిక సమావేశాలకు దగ్గరగా అప్లికేషన్ ఎగ్జిక్యూషన్ పనితీరును సాధించడానికి ప్లాట్‌ఫారమ్ మిమ్మల్ని అనుమతిస్తుంది. WebAssembly మాడ్యూల్ కోసం స్థానిక ఆబ్జెక్ట్ ఇంజిన్‌ని ఉపయోగించి, మీరు మెషీన్ కోడ్‌ను రూపొందించవచ్చు ("wasmer compile -native" ప్రీకంపైల్డ్ .so, .dylib మరియు .dll ఆబ్జెక్ట్ ఫైల్‌లను రూపొందించడానికి), ఇది అమలు చేయడానికి కనీస రన్‌టైమ్ అవసరం, కానీ మొత్తం శాండ్‌బాక్స్ ఐసోలేషన్‌ను కలిగి ఉంటుంది. లక్షణాలు. అంతర్నిర్మిత వాస్మర్‌తో ప్రీకంపైల్డ్ ప్రోగ్రామ్‌లను సరఫరా చేయడం సాధ్యపడుతుంది. యాడ్-ఆన్‌లు మరియు పొడిగింపులను సృష్టించడం కోసం రస్ట్ API మరియు Wasm-C-API అందించబడతాయి.

WebAssembly కంటైనర్‌ను ప్రారంభించడానికి, బాహ్య డిపెండెన్సీలు లేకుండా వచ్చే రన్‌టైమ్ సిస్టమ్‌లో Wasmerని ఇన్‌స్టాల్ చేయండి (“curl https://get.wasmer.io -sSfL | sh”), మరియు అవసరమైన ఫైల్‌ను (“wasmer test.wasm” రన్ చేయండి. ) ప్రోగ్రామ్‌లు సాధారణ WebAssembly మాడ్యూల్స్ రూపంలో పంపిణీ చేయబడతాయి, వీటిని WAPM ప్యాకేజీ మేనేజర్‌ని ఉపయోగించి నిర్వహించవచ్చు. రస్ట్, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir మరియు Java ప్రోగ్రామ్‌లలో WebAssembly కోడ్‌ను పొందుపరచడానికి ఉపయోగించే లైబ్రరీగా Wasmer కూడా అందుబాటులో ఉంది.

వాస్మర్ 3.0లో ప్రధాన మార్పులు:

  • ఏదైనా ప్లాట్‌ఫారమ్ కోసం స్థానిక ఎక్జిక్యూటబుల్ ఫైల్‌లను సృష్టించగల సామర్థ్యం జోడించబడింది. Linux, Windows మరియు MacOS ప్లాట్‌ఫారమ్‌ల కోసం WebAssembly ఇంటర్మీడియట్ కోడ్ ఫైల్‌ను స్వీయ-నియంత్రణ ఎక్జిక్యూటబుల్‌లుగా మార్చడానికి "wasmer create-exe" ఆదేశం పూర్తిగా పునఃరూపకల్పన చేయబడింది, అది Wasmerని ఇన్‌స్టాల్ చేయకుండానే అమలు చేయగలదు.
  • “wasmer run” ఆదేశాన్ని ఉపయోగించి wapm.io డైరెక్టరీలో ఉన్న WAPM ప్యాకేజీలను ప్రారంభించడం సాధ్యమవుతుంది. ఉదాహరణకు, "wasmer run python/python"ని అమలు చేయడం వలన wapm.io రిపోజిటరీ నుండి పైథాన్ ప్యాకేజీని డౌన్‌లోడ్ చేసి, దాన్ని రన్ చేస్తుంది.
  • Wasmer Rust API పూర్తిగా పునఃరూపకల్పన చేయబడింది, మెమరీతో పని చేసే శైలిని మారుస్తుంది మరియు స్టోర్ నిర్మాణంలో Wasm వస్తువులను సురక్షితంగా సేవ్ చేసే సామర్థ్యాన్ని అందిస్తుంది. ఒక కొత్త MemoryView నిర్మాణం ప్రతిపాదించబడింది, ఇది ఒక లీనియర్ మెమరీ ప్రాంతానికి డేటాను చదవడానికి మరియు వ్రాయడానికి అనుమతిస్తుంది.
  • Wasmerని వెబ్ బ్రౌజర్‌లో అమలు చేయడానికి మరియు వాస్మ్-బైండ్జెన్ లైబ్రరీని ఉపయోగించి జావాస్క్రిప్ట్ నుండి దానితో ఇంటరాక్ట్ చేయడానికి, Wasmer-js భాగాల సమితి అమలు చేయబడింది. దాని సామర్థ్యాలలో, వాస్మర్-జెఎస్ సాధారణ ఆపరేటింగ్ సిస్టమ్‌లలో వాస్మర్‌ను అమలు చేయడానికి రూపొందించిన వాస్మర్-సిస్ కాంపోనెంట్‌లకు అనుగుణంగా ఉంటుంది.
  • ఇంజిన్లు సరళీకృతం చేయబడ్డాయి. JIT, డైనమిక్ మరియు స్టాటిక్ లింకింగ్ (యూనివర్సల్, డైలిబ్, స్టాటిక్‌లిబ్) కోసం ప్రత్యేక ఇంజిన్‌లకు బదులుగా, ఇప్పుడు ఒక సాధారణ ఇంజిన్ అందించబడుతుంది మరియు లోడ్ చేయడం మరియు సేవ్ చేయడం పారామితులను సెట్ చేసే స్థాయిలో నియంత్రించబడుతుంది.
  • కళాఖండాలను డీరియలైజ్ చేయడానికి, rkyv ఫ్రేమ్‌వర్క్ ఉపయోగించబడుతుంది, ఇది జీరో-కాపీ మోడ్‌లో ఆపరేషన్‌ను నిర్ధారిస్తుంది, అనగా. దీనికి అదనపు మెమరీ కేటాయింపు అవసరం లేదు మరియు మొదట అందించిన బఫర్‌ను ఉపయోగించి మాత్రమే డీరియలైజేషన్‌ను నిర్వహిస్తుంది. rkyv వాడకం ప్రారంభ వేగాన్ని గణనీయంగా పెంచింది.
  • సింగిల్‌పాస్ సింగిల్-పాస్ కంపైలర్ మెరుగుపరచబడింది, బహుళ-విలువ ఫంక్షన్‌లకు మద్దతు, మెరుగైన విశ్వసనీయత మరియు మినహాయింపు నిర్వహణ ఫ్రేమ్‌లకు మద్దతు జోడించబడింది.
  • WASI (వెబ్‌అసెంబ్లీ సిస్టమ్ ఇంటర్‌ఫేస్) API యొక్క మెరుగైన అమలు. ఫైల్ సిస్టమ్‌తో పనిచేయడానికి WASI సాఫ్ట్‌వేర్ ఇంటర్‌ఫేస్‌లోని సమస్యలు పరిష్కరించబడ్డాయి. WAI (WebAssembly Interfaces)ని ఉపయోగించి అంతర్గత రకాలు పునఃరూపకల్పన చేయబడ్డాయి, ఇది భవిష్యత్తులో కొత్త ఫీచర్ల శ్రేణిని ప్రారంభిస్తుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి