Ise agbese Deno n ṣe idagbasoke iru ẹrọ JavaScript to ni aabo ti o jọra si Node.js

Wa idasilẹ ise agbese Fun mi 0.33, eyiti o funni ni ipilẹ Node.js-like fun ipaniyan ohun elo imurasilẹ-nikan ni JavaScript ati TypeScript ti o le ṣee lo lati ṣiṣe awọn ohun elo laisi a so mọ ẹrọ aṣawakiri kan, gẹgẹbi ṣiṣẹda awọn oluṣakoso ti nṣiṣẹ lori olupin naa. Deno nlo ẹrọ JavaScript kan V8, eyiti o tun lo ni Node.js ati awọn aṣawakiri ti o da lori iṣẹ akanṣe Chromium. koodu ise agbese pin nipasẹ labẹ MIT iwe-ašẹ. Ise agbese na ni idagbasoke nipasẹ Ryan Dahl (Ryan Dahl), Eleda ti Node.js JavaScript Syeed.

Ọkan ninu awọn ibi-afẹde akọkọ ti ṣiṣẹda akoko asiko tuntun fun JavaScript ni lati pese agbegbe to ni aabo diẹ sii. Lati mu aabo dara sii, ẹrọ V8 ti wa ni kikọ ni Rust, eyiti o yago fun ọpọlọpọ awọn ailagbara ti o dide lati ifọwọyi iranti ipele kekere, gẹgẹbi iraye si lẹhin-ọfẹ, awọn ifọkasi itọka asan, ati awọn agbekọja buffer. Syeed jẹ lilo lati ṣe ilana awọn ibeere ni ipo ti kii ṣe idinamọ Tokyo, tun kọ ni ipata. Tokio ngbanilaaye lati ṣẹda awọn ohun elo iṣẹ ṣiṣe giga ti o da lori faaji ti o dari iṣẹlẹ, n ṣe atilẹyin titẹ-pupọ ati ṣiṣe awọn ibeere nẹtiwọọki ni ipo asynchronous.

akọkọ awọn ẹya Deno:

  • Aabo-Oorun iṣeto ni aiyipada. Wiwọle faili, netiwọki, ati iraye si awọn oniyipada ayika jẹ alaabo nipasẹ aiyipada ati pe o gbọdọ ṣiṣẹ ni gbangba;
  • Atilẹyin ti a ṣe sinu fun ede TypeScript ni afikun si JavaScript;
  • Akoko ṣiṣe wa ni irisi faili ti o le ṣiṣẹ ti ara-ẹni kan ṣoṣo (“deno”). Lati ṣiṣẹ awọn ohun elo nipa lilo Deno o ti to download fun iru ẹrọ rẹ ọkan faili ti o ṣiṣẹ, nipa 10 MB ni iwọn, eyiti ko ni awọn igbẹkẹle ita ati pe ko nilo eyikeyi fifi sori ẹrọ pataki lori eto naa;
  • Nigbati o ba bẹrẹ eto naa, bakannaa lati gbe awọn modulu, o le lo adirẹsi URL. Fun apẹẹrẹ, lati ṣiṣẹ eto welcome.js, o le lo aṣẹ “deno https://deno.land/std/examples/welcome.js”. Koodu lati awọn orisun ita jẹ igbasilẹ ati fipamọ sori eto agbegbe, ṣugbọn kii ṣe imudojuiwọn laifọwọyi (imudojuiwọn nilo ṣiṣe ohun elo ni gbangba pẹlu asia “--tun gbee”);
  • Ṣiṣẹ daradara ti awọn ibeere nẹtiwọọki nipasẹ HTTP ni awọn ohun elo; Syeed jẹ apẹrẹ fun ṣiṣẹda awọn ohun elo nẹtiwọọki iṣẹ giga;
  • Agbara lati ṣẹda awọn ohun elo wẹẹbu agbaye ti o le ṣe mejeeji ni Deno ati ni aṣawakiri wẹẹbu deede;
  • Ni afikun si akoko asiko, pẹpẹ Deno tun ṣe bi oluṣakoso package ati gba ọ laaye lati wọle si awọn modulu nipasẹ URL inu koodu naa. Fun apẹẹrẹ, lati fifuye a module, o le pato ninu awọn koodu "gbe wọle * bi log lati "https://deno.land/std/log/mod.ts". Awọn faili ti a ṣe igbasilẹ lati awọn olupin ita nipasẹ URL ti wa ni ipamọ. Isopọmọ si awọn ẹya module jẹ ipinnu nipasẹ sisọ awọn nọmba ẹya inu URL naa, fun apẹẹrẹ, “https://unpkg.com/[imeeli ni idaabobo]/dist/liltest.js";
  • Eto naa pẹlu eto ayewo igbẹkẹle iṣọpọ (aṣẹ “deno info”) ati ohun elo fun kika koodu (deno fmt).
  • Fun ohun elo Difelopa daba ṣeto ti awọn modulu boṣewa ti o ti ṣe ayewo afikun ati idanwo ibamu;
  • Gbogbo awọn iwe afọwọkọ ohun elo le ni idapo sinu faili JavaScript kan.

Awọn iyatọ lati Node.js:

  • Deno ko lo oluṣakoso package npm
    ati pe ko ni asopọ si awọn ibi ipamọ, awọn modulu ti wa ni idojukọ nipasẹ URL tabi nipasẹ ọna faili, ati awọn modulu funrararẹ le gbe sori aaye ayelujara eyikeyi;

  • Deno ko lo "package.json" lati setumo awọn module;
  • Iyatọ API, gbogbo awọn iṣe asynchronous ni Deno pada ileri kan;
  • Deno nilo alaye ti o fojuhan ti gbogbo awọn igbanilaaye pataki fun awọn faili, nẹtiwọọki ati awọn oniyipada ayika;
  • Gbogbo awọn aṣiṣe ti a ko pese pẹlu awọn olutọpa yori si ifopinsi ohun elo naa;
  • Deno nlo ECMAScript module eto ati ki o ko ni atilẹyin beere ().

orisun: opennet.ru

Fi ọrọìwòye kun