Sengoli sa Node.js se hlahisitse sethala se sireletsehileng sa JavaScript Deno 1.0

Kamora lilemo tse peli tsa nts'etsopele hlahisoa tokollo e kholo ea pele Mphe 1.0, sethala sa ts'ebetso e ikemetseng ea lits'ebetso ho JavaScript le TypeScript, e ka sebelisoang ho theha li- handlers tse sebetsang ho seva. Sethala se hlahisoa ke Ryan Dahl (MOKHATLO OA MOSEBETSI: Ryan Dahl), moetsi oa Node.js. Joalo ka Node.js, Deno e sebelisa enjene ea JavaScript V8, e sebelisoang hape ho libatli tse thehiloeng ho Chromium. Ka nako e ts'oanang, Deno ha se fereko ea Node.js, empa ke morero o mocha o entsoeng ho tloha qalong. Khoutu ea morero ajoa ke tlas'a laesense ea MIT. Likopano lokisitsoe bakeng sa Linux, Windows le macOS.

Nomoro ea bohlokoa ea phetolelo e amahanngoa le botsitso ba li-API sebakeng sa mabitso sa Deno, tse ikarabellang bakeng sa tšebelisano ea likopo le OS. Lisebelisoa tsa software tse teng ho fihlela joale e sa tsitsang, li patiloe ka ho sa feleng 'me li fumaneha feela ha li sebetsa ka mokhoa oa "--unstable". Ha liphetolelo tse ncha li ntse li thehoa, li-API tse joalo li tla tsitsa butle-butle. API sebakeng sa mabitso sa lefats'e, se kenyelletsang mesebetsi e tloaelehileng joalo ka setTimeout() le fetch(), e haufi ka moo ho ka khonehang le API ea libatli tse tloaelehileng tsa marang-rang mme e ntlafatsoa ho latela maemo a Marang-rang bakeng sa libatli. Li-API tse fanoeng ke Rust, tse sebelisoang ka ho toba ka khoutu ea sethaleng, hammoho le sebopeho sa ho hlahisa li-plugins bakeng sa nako ea ho sebetsa ea Deno, ha e e-s'o tsitsa le ho tsoela pele ho ntlafatsa.

Sepheo sa mantlha sa ho theha sethala se secha sa JavaScript e ne e le takatso ea ho felisa liphoso tsa mohopolo, amohetsoe moahong oa Node.js, le ho fa basebelisi tikoloho e sireletsehileng haholoanyane. Ho ntlafatsa ts'ireletso, enjene ea V8 e ngotsoe ka Rust, e qobang bofokoli bo bongata bo hlahang ho tsoa taolong ea mohopolo o tlase, joalo ka phihlello ea mahala, litšupiso tse se nang letho, le li-buffer overruns. Sethala se sebelisetsoa ho sebetsana le likopo ka mokhoa o sa thibeleng Tokyo, hape e ngotsoe ka Rust. Tokio e u lumella ho etsa lits'ebetso tse sebetsang hantle tse ipapisitseng le meaho e tsamaisoang ke liketsahalo, e ts'ehetsang likhoele tse ngata le ho sebetsana le likopo tsa marang-rang ka mokhoa oa asynchronous.

ka sehloohong Likaroloana Deno:

  • Tlhophiso ea kamehla e shebaneng le ts'ireletso. Phihlello ea faele, marang-rang, le phihlello ea mefuta-futa ea tikoloho li koaletsoe ka mokhoa oa kamehla 'me li tlameha ho lumelloa ka mokhoa o hlakileng. Likopo ka mokhoa o ikhethileng li sebetsa libakeng tse ka thoko tsa sandbox mme ha li khone ho fihlella bokhoni ba sistimi ntle le ho fana ka tumello e hlakileng;
  • Ts'ehetso e hahelletsoeng bakeng sa TypeScript e fetang JavaScript. Sehlahisoa se tloaelehileng sa TypeScript se sebelisetsoa ho lekola mefuta le ho hlahisa JavaScript, e lebisang ho otlang ha tšebetso ha ho bapisoa le ho pharalla ha JavaScript ho V8. Nakong e tlang, re rera ho itokisetsa ts'ebetsong ea rona ea mokhoa oa ho hlahloba mofuta oa TypeScript, o tla ntlafatsa ts'ebetso ea ts'ebetso ea TypeScript ka taelo ea boholo;
  • Runtime e tla ka mokhoa oa faele e le 'ngoe e ka phethahatsoang e ikemetseng ("deno"). Ho tsamaisa lits'ebetso u sebelisa Deno ho lekane kenya bakeng sa sethala sa eona ho na le faele e le 'ngoe e ka phethisoang, e ka bang 20 MB ka boholo, e se nang litšepe tsa kantle mme ha e hloke ho kenngoa ho khethehileng ho sistimi. Ho feta moo, deno ha se sesebelisoa sa monolithic, empa ke pokello ea liphutheloana tsa crate ho Rust (deno_core, mafome_v8), e ka sebelisoang ka thoko;
  • Ha u qala lenaneo, hammoho le ho kenya li-module, u ka sebelisa aterese ea URL. Ka mohlala, ho tsamaisa lenaneo la welcome.js, u ka sebelisa taelo "deno https://deno.land/std/examples/welcome.js". Khoutu e tsoang mehloling ea kantle e jarollwa le ho bolokoa ho sistimi ea lehae, empa ha ho mohla e nchafatsoang ka bo eona (ho nchafatsa ho hloka ho sebelisa ts'ebeliso ka ho hlaka ka "--reload" folakha);
  • Ts'ebetso e nepahetseng ea likopo tsa marang-rang ka HTTP lits'ebetsong; sethala se etselitsoe ho theha lits'ebetso tsa marang-rang tse sebetsang hantle;
  • Bokhoni ba ho theha lits'ebetso tsa marang-rang tse ka etsoang ka bobeli ho Deno le ho sebatli se tloaelehileng sa webo;
  • ho fumaneha sete e tloaelehileng ea li-module, tšebeliso ea eona e sa hlokeng ho tlama ho itšetlehile ka ntle. Li-module tse tsoang pokellong e tloaelehileng li entsoe tlhahlobo ea tlatsetso le tlhahlobo ea ho lumellana;
  • Ntle le nako ea ho sebetsa, sethala sa Deno se boetse se sebetsa e le mookameli oa sephutheloana mme se u lumella ho fihlella li-module ka URL ka har'a khoutu. Mohlala, ho kenya mojule, o ka hlakisa khoutu "import * joalo ka log ho tsoa ho "https://deno.land/std/log/mod.ts". Lifaele tse jarollotsoeng ho tsoa ho li-server tsa kantle ka URL li bolokiloe. Ho tlamella liphetolelo tsa mojule ho khethoa ka ho totobatsa linomoro tsa mofuta ka har'a URL, mohlala, "https://unpkg.com/[imeile e sirelelitsoe]/dist/liltest.js";
  • Sebopeho se kenyelletsa mokhoa o kopanetsoeng oa tlhahlobo ea ho itšetleha (taelo ea "deno info") le thuso bakeng sa ho hlophisa khoutu (deno fmt);
  • Lingoliloeng tsohle tsa kopo li ka kopanngoa hore e be faele e le 'ngoe ea JavaScript.

Phapang ho tsoa ho Node.js:

  • Deno ha e sebelise molaoli oa sephutheloana sa npm
    'me ha e tlameletsoe ho li-repositories, li-module li rarolloa ka URL kapa ka tsela ea faele, 'me li-module ka botsona li ka behoa ho websaeteng leha e le efe;
  • Deno ha e sebelise "package.json" ho hlalosa li-modules;
  • Phapang ea API, liketso tsohle tsa asynchronous ho Deno li khutlisa tšepiso;
  • Deno e hloka tlhaloso e hlakileng ea litumello tsohle tse hlokahalang bakeng sa lifaele, mefuta-futa ea marang-rang le tikoloho;
  • Liphoso tsohle tse sa fuoang ba sebetsanang le tsona li lebisa ho felisoeng ha kopo;
  • Deno e sebelisa ECMAScript module system mme ha e tšehetse hloka();
  • Seva ea HTTP e hahiloeng ka har'a Deno e ngotsoe ka TypeScript 'me e matha ka holim'a li-sockets tsa TCP tsa tlhaho, ha Node.js HTTP seva e ngotsoe ka C mme e fana ka litlamo bakeng sa JavaScript. Bahlahisi ba Deno ba tsepamisitse maikutlo ho ntlafatseng sekhahla sa sokete sa TCP le ho fana ka sebopeho se akaretsang. Seva ea Deno HTTP e fana ka ts'ebetso e tlase empa e netefatsa latency e tlase e sa lebelloang. Ka mohlala, tekong, kopo e bonolo e thehiloeng ho seva sa Deno HTTP e khonne ho sebetsana le likōpo tse likete tse 25 ka motsotsoana ka latency e kholo ea 1.3 milliseconds. Ho Node.js, kopo e ts'oanang e sebelitse likopo tse likete tse 34 motsotsoana, empa li-latencies li ne li tsoa ho 2 le 300 milliseconds.
  • Deno ha e tsamaellane le liphutheloana tsa Node.js (NPM), empa e ntse e ntlafatsoa ka thoko interlayer bakeng sa ho tsamaellana le laebrari e tloaelehileng ea Node.js, ha e ntse e tsoela pele, lits'ebetso tse ngata tse ngoliloeng bakeng sa Node.js li tla khona ho sebetsa ho Deno.
  • Source: opennet.ru

Eketsa ka tlhaloso