Wasmer 3.0, WebAssembly ላይ የተመሰረቱ አፕሊኬሽኖችን ለመገንባት የሚያስችል መሳሪያ አለ።

ሦስተኛው ዋና የተለቀቀው የ Wasmer ፕሮጀክት የ WebAssembly ሞጁሎችን በተለያዩ ኦፕሬቲንግ ሲስተሞች ላይ የሚሰሩ ሁለንተናዊ አፕሊኬሽኖችን ለመፍጠር እንዲሁም ታማኝ ያልሆኑትን ኮድ በተናጥል ለማስፈፀም የሚያስችል የሩጫ ጊዜ ያዘጋጃል። የፕሮጀክት ኮድ በሩስት ውስጥ የተፃፈ እና በ MIT ፈቃድ ስር ይሰራጫል።

አንድ አፕሊኬሽን በተለያዩ መድረኮች የማሄድ ችሎታ ዝቅተኛ ደረጃ ዌብአሴምብሊ መካከለኛ ኮድ በማዘጋጀት የሚሰጥ ሲሆን ይህም በማንኛውም ስርዓተ ክወና ላይ ሊሰራ የሚችል ወይም በሌሎች የፕሮግራም አወጣጥ ቋንቋዎች ውስጥ ባሉ ፕሮግራሞች ውስጥ ሊካተት ይችላል። ፕሮግራሞቹ WebAssembly pseudocode የሚያሄዱ ቀላል ክብደት ያላቸው መያዣዎች ናቸው። እነዚህ ኮንቴይነሮች ከኦፕሬቲንግ ሲስተም ጋር የተሳሰሩ አይደሉም እና በማንኛውም የፕሮግራም አወጣጥ ቋንቋ የተጻፈውን ኮድ ሊያካትቱ ይችላሉ። የEmscripten Toolkit ወደ WebAssembly ለማጠናቀር ሊያገለግል ይችላል። WebAssemblyን ወደ የአሁኑ የመሳሪያ ስርዓት የማሽን ኮድ ለመተርጎም የተለያዩ የተጠናቀረ የጀርባ አጀማመርን (Singlepass፣ Cranelift፣ LLVM) እና ሞተሮችን (ጂት ወይም የማሽን ኮድ ማመንጨትን በመጠቀም) ግንኙነትን ይደግፋል።

አፕሊኬሽኖች በማጠሪያ አከባቢ ውስጥ ከዋናው ስርዓት ተለይተዋል እና የታወጀውን ተግባር ብቻ ማግኘት ይችላሉ (በችሎታ አስተዳደር ላይ የተመሠረተ የደህንነት ዘዴ - ከእያንዳንዱ ሀብቶች (ፋይሎች ፣ ማውጫዎች ፣ ሶኬቶች ፣ የስርዓት ጥሪዎች ፣ ወዘተ) ጋር ለሚደረጉ እርምጃዎች) ማመልከቻው ተገቢውን ስልጣን መሰጠት አለበት). ከስርአቱ ጋር የመዳረሻ ቁጥጥር እና መስተጋብር የሚቀርበው በ WASI (WebAssembly System Interface) API በመጠቀም ነው፣ ይህም ከፋይሎች፣ ሶኬቶች እና ሌሎች በስርዓተ ክወናው ከሚሰጡ ተግባራት ጋር ለመስራት የፕሮግራም አወጣጥ በይነገጽ ያቀርባል።

የመሳሪያ ስርዓቱ ከአገሬው ተወላጅ ስብሰባዎች አቅራቢያ የመተግበሪያ አፈፃፀም አፈፃፀምን እንዲያሳኩ ይፈቅድልዎታል። Native Object Engine ለ WebAssembly ሞጁል በመጠቀም የማሽን ኮድ ማመንጨት ይችላሉ ("wasmer compile -native" ቀድሞ የተጠናቀሩ .so፣ .dylib እና .dll የነገር ፋይሎችን ለማመንጨት) ይህም ለማሄድ አነስተኛ ጊዜ የሚጠይቅ ነገር ግን ሁሉንም የአሸዋ ሳጥን ማግለል ይይዛል። ዋና መለያ ጸባያት. አብሮ በተሰራው ዋስመር ቀድሞ የተጠናቀሩ ፕሮግራሞችን ማቅረብ ይቻላል። የ Rust API እና Wasm-C-API ተጨማሪዎችን እና ቅጥያዎችን ለመፍጠር ቀርቧል።

የWebAssembly ኮንቴይነርን ለመክፈት፣ ያለ ውጫዊ ጥገኝነት የሚመጣውን በ runtime ሲስተም ("curl https://get.wasmer.io -sSfL | sh") ላይ ብቻ Wasmerን ይጫኑ እና አስፈላጊውን ፋይል ያሂዱ ("wasmer test.wasm" ). ፕሮግራሞች የሚከፋፈሉት በመደበኛ WebAssembly ሞጁሎች ነው፣ ይህም የ WAPM ጥቅል አስተዳዳሪን በመጠቀም ሊተዳደር ይችላል። Wasmer እንደ ቤተ-መጽሐፍት ሆኖ ይገኛል WebAssembly ኮድ ወደ Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir እና Java ፕሮግራሞች.

በ Wasmer 3.0 ውስጥ ዋና ለውጦች፡-

  • ለማንኛውም መድረክ ቤተኛ ተፈጻሚ የሆኑ ፋይሎችን የመፍጠር ችሎታ ታክሏል። የ"wasmer create-exe" ትዕዛዝ ሙሉ ለሙሉ ተዘጋጅቷል WebAssembly መካከለኛ ኮድ ፋይል ወደ ራሳቸው ወደተሰሩ executables ለሊኑክስ፣ ዊንዶውስ እና ማክሮስ ፕላትፎርሞች ዋስመርን ሳይጭኑ ሊሄዱ ይችላሉ።
  • የ "wasmer run" ትዕዛዝን በመጠቀም በ wapm.io ማውጫ ውስጥ የሚገኙትን የ WAPM ፓኬጆችን ማስጀመር ይቻላል። ለምሳሌ "wasmer run python/python"ን ማስኬድ የፓይቶን ፓኬጁን ከ wapm.io ማከማቻ አውርዶ ያስኬዳል።
  • የ Wasmer Rust API ሙሉ ለሙሉ ተዘጋጅቷል፣ከማህደረ ትውስታ ጋር የመስራት ዘይቤን በመቀየር እና የ Wasm ነገሮችን በመደብር መዋቅር ውስጥ ደህንነቱ በተጠበቀ ሁኔታ የማዳን ችሎታን ይሰጣል። መረጃን ማንበብ እና መፃፍ ወደ መስመራዊ ማህደረ ትውስታ አካባቢ የሚፈቅድ አዲስ የMemoryView መዋቅር ቀርቧል።
  • Wasmer በድር አሳሽ ውስጥ ለማስኬድ እና ከጃቫ ስክሪፕት የ wasm-bindgen ቤተ-መጽሐፍትን ለመጠቀም የ wasmer-js ክፍሎች ስብስብ ተተግብሯል። በችሎታው፣ wasmer-js Wasmerን በመደበኛ ስርዓተ ክወናዎች ላይ ለማሄድ ከተነደፉት የ wasmer-sys አካላት ጋር ይዛመዳል።
  • ሞተሮች ቀላል ሆነዋል። ለጂአይቲ ፣ተለዋዋጭ እና የማይንቀሳቀስ ማያያዣ (ዩኒቨርሳል ፣ዳይሊብ ፣ስታቲክሊብ) ከተለዩ ሞተሮች ይልቅ አንድ የተለመደ ሞተር አሁን ቀርቧል ፣ እና ኮድን የመጫን እና የማዳን ቅንጅት መለኪያዎችን ደረጃ ይቆጣጠራል።
  • ቅርሶችን ለማጥፋት የ rkyv ማዕቀፍ ጥቅም ላይ ይውላል, ይህም በዜሮ ቅጅ ሁነታ ላይ ሥራን ያረጋግጣል, ማለትም. ምንም ተጨማሪ የማህደረ ትውስታ ድልድል የማይፈልግ እና መጀመሪያ የተሰጠውን ቋት በመጠቀም ብቻ ዲሴሪያላይዜሽን የሚሰራ። የ rkyv አጠቃቀም የጅምር ፍጥነት በከፍተኛ ሁኔታ ጨምሯል።
  • የነጠላ ማለፊያ ነጠላ ማለፊያ ማጠናከሪያ ተሻሽሏል፣ ለባለብዙ እሴት ተግባራት ድጋፍ፣ የተሻሻለ አስተማማኝነት እና ለየት ያለ አያያዝ ክፈፎች ድጋፍን ይጨምራል።
  • የተሻሻለ የWASI (የድር ስብሰባ ስርዓት በይነገጽ) ኤፒአይ አተገባበር። ከፋይል ስርዓቱ ጋር አብሮ ለመስራት በWASI ሶፍትዌር በይነገጽ ላይ ያሉ ችግሮች ተፈትተዋል። የውስጥ ዓይነቶች WAI (WebAssembly Interfaces) በመጠቀም እንደገና ተዘጋጅተዋል፣ ይህም ለወደፊቱ ተከታታይ አዳዲስ ባህሪያትን ያስችላል።

ምንጭ: opennet.ru

አስተያየት ያክሉ