Byla vydána platforma Node.js 25.0.0 pro spouštění síťových aplikací v JavaScriptu. Node.js 25.0 je přechodná větev, podporovaná sedm měsíců (do června 2026). Stabilizace Node.js 24 bude dokončena v nadcházejících dnech a na konci října získá status LTS a bude podporována do dubna 2028. Podpora předchozích LTS větví, Node.js 22.x a 20.x, bude pokračovat do dubna 2027, respektive 2026.
Hlavní vylepšení:
- Engine V8 byl aktualizován na verzi 14.1, která se používá v Chromu 141. Mezi vylepšení oproti předchozí verzi Node.js patří výrazné zvýšení výkonu metody JSON.stringify, optimalizace WebAssembly a JIT a implementace metod pro převod mezi Uint8Array a base64 nebo hexadecimálními daty.
- Mechanismus modelu oprávnění (Permission Model), který umožňuje omezit přístup k určitým zdrojům za běhu, byl aktualizován a nyní obsahuje volbu „--allow-net“ pro povolení přístupu k síti (pokud volba „--allow-net“ není zadána, spuštění Node.js v režimu „--permission“ vrátí chybu ERR_ACCESS_DENIED při pokusu o provedení síťových operací).
- Ve výchozím nastavení povoleno kompatibilní s prohlížeči Rozhraní Web Storage API určené pro trvalé (třída localStorage) nebo dočasné (třída sessionStorage) ukládání dat typu klíč/hodnota. Označení experimentálního vývoje rozhraní Web Storage API bylo odstraněno.
- Třída ErrorEvent, která poskytuje rozhraní kompatibilní s prohlížečem pro zpracování událostí obsahujících informace o chybách, byla přesunuta do kategorie globálně přístupných (lze použít bez explicitního importu).
- WebAssembly nyní podporuje rozhraní JavaScript Promise Integration (JSPI) API, které umožňuje přístup k asynchronním webovým API ze sekvenčně spouštěného kódu kompilovaného do WebAssembly.
- Pro přenosné použití kompilované mezipaměti objektů byla přidána možnost „NODE_COMPILE_CACHE_RELATIVE_PATH“. V tomto režimu se hash pro identifikaci objektů počítají pomocí relativních cest k souborům, což umožňuje přesun a vložení obsahu adresáře s kódem spolu s mezipamětí.
- Přidána možnost profilovat zatížení CPU.
- Správce balíčků NPM byl aktualizován na verzi 11.6.2.
- Přidána podpora pro Python 3.14.
- Minimální podporované verze jsou Clang 19 a Xcode 16.4.
- Objekt SlowBuffer, dříve zastaralý z důvodu potenciálních bezpečnostních problémů, byl zastaralý. Použijte místo něj metodu Buffer.allocUnsafeSlow().
Platformu Node.js lze použít jak pro podporu webových aplikací na straně serveru, tak pro tvorbu standardních síťových programů na straně klienta a serveru. Pro rozšíření funkcionality aplikací Node.js byla připravena rozsáhlá kolekce modulů, včetně těch, které implementují servery a klienty HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduly pro integraci s různými webovými frameworky, obslužné rutiny WebSocket a Ajax, konektory k DBMS (MySQL, PostgreSQL, SQLite, MongoDB), šablonovací enginy, CSS enginy, implementace kryptografických algoritmů a autorizačních systémů (OAuth), XML parsery.
Pro zpracování velkého počtu souběžných požadavků používá Node.js asynchronní model spouštění kódu založený na zpracování neblokujících událostí a obslužných rutinách zpětných volání. Mezi podporované metody multiplexování připojení patří epoll, kqueue, /dev/poll a select. Multiplexování připojení používá knihovnu libuv, která je nadstavbou libev na unixových systémech a IOCP na... WindowsKnihovna libeio se používá k vytvoření poolu vláken a c-ares je integrován pro provádění DNS dotazů v neblokujícím režimu. Všechna blokující systémová volání se provádějí v rámci poolu vláken a poté, stejně jako obslužné rutiny signálů, vracejí své výsledky prostřednictvím nepojmenovaného kanálu.
Spouštění kódu JavaScript je zajištěno pomocí enginu V8 vyvinutého společností Google (Microsoft navíc vyvíjí verzi Node.js s enginem Chakra-Core). Ve svém jádru je Node.js podobný frameworkům Perl AnyEvent, Ruby Event Machine, Python Twisted a implementaci událostí v Tcl, ale smyčka událostí v Node.js je před vývojářem skrytá a připomíná zpracování událostí ve webové aplikaci. běžící v prohlížeči.
Zdroj: opennet.ru
