Izdanje JavaScript platforme na strani servera Node.js 16.0

Objavljena je Node.js 16.0, platforma za pokretanje mrežnih aplikacija u JavaScript-u. Node.js 16.0 je klasifikovan kao grana za dugoročnu podršku, ali će ovaj status biti dodijeljen tek u oktobru, nakon stabilizacije. Node.js 16.0 će biti podržan do aprila 2023. Održavanje prethodne LTS grane Node.js 14.0 trajaće do aprila 2023., a pretprošle LTS grane 12.0 do aprila 2022. godine. Podrška za 10.0 LTS granu će biti ukinuta za 10 dana.

Glavna poboljšanja:

  • V8 motor je ažuriran na verziju 9.0 (Node.js 15 koristi izdanje 8.6), što omogućava implementaciju karakteristika kao što je svojstvo “indeksi” za regularne izraze (uključuje niz sa početnim i završnim pozicijama grupa podudaranja) , Atomics metoda u Node.js 16 .waitAsync (async verzija Atomics.wait), podrška za korištenje ključne riječi await u modulima najvišeg nivoa. Pozivi funkcija su ubrzani u situacijama kada broj proslijeđenih argumenata ne odgovara parametrima definiranim u funkciji.
  • API Timers Promises je stabiliziran, pružajući alternativni skup funkcija za rad sa tajmerima koji vraćaju Promise objekte kao izlaz, što eliminira potrebu za korištenjem util.promisify(). import { setTimeout } iz 'tajmera/promises'; async funkcija run() { await setTimeout(5000); console.log('Zdravo, svijet!'); } run();
  • Dodana je eksperimentalna implementacija Web Crypto API-ja, dizajnirana za obavljanje osnovnih kriptografskih operacija na strani web aplikacija, kao što je manipulacija kriptografskim hashovima, generiranje i provjera digitalnih potpisa, kodiranje i dekodiranje podataka korištenjem različitih metoda šifriranja i generiranje kriptografski sigurnih slučajni brojevi. API također pruža funkcije za generiranje i upravljanje ključevima.
  • N-API (API za razvoj dodataka) je ažuriran na verziju 8.
  • Prelazak na novo izdanje menadžera paketa NPM 7.10 je napravljen.
  • Stabilizirana je implementacija klase AbortController, koja je zasnovana na AbortController Web API-ju i omogućava poništavanje signala u odabranim API-jima zasnovanim na obećanju.
  • Podrška za treću verziju formata Source Map, koja se koristi za poređenje generisanih, obrađenih ili upakovanih modula sa originalnim izvornim kodom, je stabilizovana.
  • Za kompatibilnost sa naslijeđenim Web API-jima, dodane su metode buffer.atob(data) i buffer.btoa(data).
  • Počelo je formiranje sklopova za nove Apple uređaje opremljene M1 ARM čipom.
  • Na Linux platformi, zahtjevi za verziju kompajlera su podignuti na GCC 8.3.

Podsjetimo da se platforma Node.js može koristiti i za podršku web aplikacija na strani servera i za kreiranje običnih klijentskih i serverskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js, pripremljena je velika zbirka modula u kojoj se mogu pronaći moduli sa implementacijom HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 servera i klijenata, moduli za integraciju sa raznim web okvirima, WebSocket i Ajax rukovaocima, konektorima za DBMS (MySQL, PostgreSQL, SQLite, MongoDB), šablonskim mašinama, CSS mašinama, implementacijama kriptografskih algoritama i sistema autorizacije (OAuth), XML parserima.

Da bi se osigurala obrada velikog broja paralelnih zahtjeva, Node.js koristi model izvršavanja asinhronog koda zasnovan na rukovanju događajima bez blokiranja i definiciji rukovatelja povratnim pozivima. Podržane metode za multipleksiranje veza su epoll, kqueue, /dev/poll i select. Za multipleksiranje veze koristi se biblioteka libuv, koja je dodatak za libev na Unix sistemima i IOCP na Windows. Biblioteka libeio se koristi za kreiranje spremišta niti, a c-ares je integriran za obavljanje DNS upita u neblokirajućem načinu. Svi sistemski pozivi koji uzrokuju blokiranje izvode se unutar spremišta niti, a zatim, kao rukovaoci signala, prenose rezultat svog rada nazad kroz neimenovanu cijev (cijev). Izvršenje JavaScript koda je obezbeđeno korišćenjem V8 motora koji je razvio Google (pored toga, Microsoft razvija verziju Node.js sa Chakra-Core motorom).

U svojoj srži, Node.js je sličan Perl AnyEvent, Ruby Event Machine, Python Twisted framework-u i Tcl implementaciji događaja, ali je petlja događaja u Node.js skrivena od programera i nalikuje rukovanju događajima u web aplikaciji koja radi u pretraživaču. Kada pišete aplikacije za node.js, morate uzeti u obzir specifičnosti programiranja vođenog događajima, na primjer, umjesto da radite "var result = db.query("select..");" uz čekanje završetka rada i naknadnu obradu rezultata, Node.js koristi princip asinhronog izvršavanja, tj. kod se transformira u "db.query("select..", function (result) {result processing});", u kojem će kontrola trenutno proći daljem kodu, a rezultat upita će biti obrađen kako podaci stignu.

Dodatno, može se primijetiti da je kompanija Deno, koju je osnovao kreator Node.js za razvoj nove generacije Deno platforme, dobila 4.9 miliona dolara investicija. Po svojoj namjeni, Deno je sličan Node.js, ali pokušava eliminirati konceptualne greške napravljene u arhitekturi Node.js i korisnicima pružiti sigurnije okruženje. Napominje se da će Denoova poslovna rješenja biti izgrađena na potpuno otvorenim proizvodima, a Open Core model s odvojenom plaćenom funkcionalnošću percipira se kao neprihvatljiv za Deno platformu.

izvor: opennet.ru

Dodajte komentar