Vydání serverové JavaScriptové platformy Node.js 13.0

Dostupné vydání Node.js 13.0, platforma pro provozování síťových aplikací v jazyce JavaScript. Dodatečně byla stabilizována předchozí větev Node.js 12.x, která byla převedena do kategorie vydání s dlouhodobou podporou, na jejichž aktualizacích se pracuje po dobu 4 let. Podpora bývalé LTS-větve Node.js 10.0 bude trvat do dubna 2021, zatímco podpora předchozí LTS-větve 8.0 potrvá do ledna 2020.

Hlavní vylepšení:

  • Engine V8 byl aktualizován na verzi 7.8, ve které jsou využívány nové metody optimalizace výkonu, vylepšena destrukturalizace objektů, snížena spotřeba paměti a zkrácena doba přípravy k provedení WebAssembly;
  • Ve výchozím nastavení je aktivována plná podpora internacionalizace a Unicode na základě knihoven ICU (International Components for Unicode), která umožňuje vývojářům psát kód, podporující práci s různými jazyky a lokalitami. Modul full-icu je nyní nastavena jako výchozí;
  • Stabilizováno API Workers Threads, umožňující vytváření vícerozměrných cyklů zpracování událostí (event loop). Implementace je založena na modulu worker_threads, který umožňuje spouštění JavaScriptového kódu ve více paralelních vláknech. Stabilní podpora API Workers Threads byla také zpětně portována do LTS-větve Node.js 12.x;
  • Byly zvýšeny požadavky na platformy. Pro sestavení je nyní je vyžadováno alespoň macOS 10.11 (vyžaduje Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Byla vylepšena podpora Pythonu 3. Pokud je v systému nainstalován Python 2 a Python 3, bude se nadále používat Python 2, ale byla přidána možnost sestavení pouze s Pythonem 3;
  • Byla odstraněna stará implementace HTTP-parsovací knihovny („—http-parser=legacy“). Byly odstraněny nebo převedeny do kategorie zastaralých volání a vlastnosti FSWatcher.prototype.start(), ChildProcess._channel, metoda open() v objektech ReadStream a WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Následně bylo vydáno byla vydána verze 13.0.1, která ihned opravila několik chyb. Mezi nimi byla vyřešena jev upozornění v npm 6.12.0 o použití nepodporované verze.

Připomínáme, že platforma Node.js může být použita jak pro serverové zajištění provozu webových aplikací, tak pro vytváření běžných klientských a serverových síťových programů. Pro rozšíření funkcionality aplikací pro Node.js je připravena velká sbírka modulů, ve které lze najít moduly s realizací serverů a klientů HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly pro integraci s různými webovými frameworky, zpracovatele WebSocket a Ajax, konektory k DBMS (MySQL, PostgreSQL, SQLite, MongoDB), šablonovací nástroje, CSS engine, implementace kryptologických algoritmů a systémů autorizace (OAuth), XML parserů.

Pro zajištění zpracování velkého počtu paralelních požadavků Node.js využívá asynchronní model spuštění kódu, založený na zpracování událostí v neblokujícím režimu a definování callback zpracovatelů. Jako způsoby multiplexování připojení jsou podporovány metody jako epoll, kqueue, /dev/poll a select. Pro multiplexování připojení se používá knihovna libuv, která je nadstavbou nad libev v systémech Unix a nad IOCP ve Windows. Pro vytváření bazénu vláken (thread pool) je využita knihovna libeio, pro provádění DNS dotazů v neblokujícím režimu je integrován c-ares. Všechny systémové volání, která by mohla blokovat, jsou prováděna uvnitř bazénu vláken a poté, stejně jako zpracovatelé signálů, předávají výsledek své práce zpět přes anonymní kanál (pipe). Vykonávání JavaScript kódu je zajištěno prostřednictvím zapojení engine vyvinutého společností Google V8 (navíc Microsoft vyvíjí variantu Node.js s engine chakra-core).

Ve své podstatě je Node.js podobný frameworkům Perl AnyEvent, Ruby Event Machine, Python Twisted a realizaci Události v Tcl, ale smyčka zpracování událostí (event loop) v Node.js je skryta před vývojářem a připomíná zpracování událostí ve webové aplikaci běžící v prohlížeči. Při psaní aplikací pro Node.js je třeba brát v úvahu specifika událostmi orientovaného programování, například místo provedení „var result = db.query(„select..“);“ s čekáním na dokončení a následným zpracováním výsledků, Node.js používá princip asynchronního provádění, tj. kód je transformován na „db.query(„select..“, function (result) {zpracování výsledku});“, při kterém se řízení okamžitě převede na další kód a výsledek dotazu bude zpracován, jakmile data přijdou.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster