Доступна платформа Deno 2.0, развиваемая автором Node.js

Opublikowano wydanie platformy Deno 2.0, przeznaczonej do izolowanego uruchamiania aplikacji serwerowych w językach JavaScript i TypeScript z użyciem silnika V8, stosowanego w przeglądarkach opartych na Chromium. Projekt Deno rozwija Ryan Dahl, twórca Node.js, w celu zapewnienia bardziej bezpiecznego środowiska i usunięcia błędów koncepcyjnych popełnionych w architekturze Node.js. W celu zwiększenia bezpieczeństwa, otoczka wokół silnika V8 została napisana w języku Rust, a do obsługi zapytań w trybie nienaładowanym wykorzystano platformę Tokio. Kod projektu jest udostępniany na licencji MIT. Wersje są dostępne dla systemów Linux, Windows i macOS.

Podczas przygotowania nowej gałęzi główną uwagę poświęcono zgodności ze starą infrastrukturą JavaScript oraz rozszerzeniu zakresu obsługiwanych projektów JavaScript bez uszczerbku dla zapewnienia bezpieczeństwa. Wśród zmian:

  • Zrealizowano wsteczną zgodność z Node.js i npm, co pozwala na uruchamianie niemodyfikowanych aplikacji stworzonych dla Node.js. Wsparcie dla Node.js umożliwia także stopniowe przenoszenie istniejących projektów z Node.js na Deno lub podłączanie do projektów Deno zależności z NPM poprzez wskazanie specyfikatora „npm:” podczas importu pakietów w deno.json.
  • Dodano wbudowane wsparcie dla pliku package.json oraz katalogu z modułami node_modules, które są używane w Node.js.
  • Zapewniono wsparcie dla prywatnych repozytoriów NPM, określonych za pomocą plików „.npmrc”.
  • Dodano wsparcie dla popularnych frameworków JavaScript, takich jak Next.js, Astro, Remix, Angular, SvelteKit i QwikCity.
  • Dodano wsparcie dla przestrzeni roboczych npm (workspace) oraz monorepo, z oddzielnym przetwarzaniem zależności.
  • Dodano nowe polecenia zarządzania pakietami: „deno install” do instalacji zależności, „deno add” do dodawania pakietów do package.json lub deno.json, „deno remove” do usuwania pakietów. Zauważono, że „deno install” działa około 15 razy szybciej niż npm w przypadku braku pakietów w pamięci podręcznej i o 90% szybciej przy dostępności pakietu w pamięci podręcznej (wsparcie zarówno dla node_modules, jak i własnej globalnej pamięci podręcznej).
  • Stabilizowano standardową bibliotekę.
  • Zapewniono długi cykl wsparcia (LTS).
  • Wprowadzono JSR — repozytorium z bibliotekami JavaScript i TypeScript, które można wykorzystać w różnych czasach wykonania JavaScript.
  • W poleceniu „deno fmt” pojawiła się możliwość formatowania treści w formatach HTML, CSS i YAML.
  • Do zespołu „deno lint” dodano wsparcie dla reguł i poprawek specyficznych dla Node.js.
  • W zespole „deno test” wprowadzono możliwość uruchamiania testów stworzonych z wykorzystaniem node:test.
  • W zespole „deno task” wprowadzono wsparcie dla uruchamiania skryptów przez package.json.
  • W zespole „deno compile” pojawiła się możliwość podpisania kodu cyfrowym podpisem.
  • W zespole „deno serve” zrealizowano równoległe przetwarzanie operacji HTTP serwerów z wykorzystaniem wielu rdzeni CPU.
  • W zespole „deno coverage” dodano wsparcie dla zapisywania raportów w formacie HTML.
  • Przeprowadzono optymalizację wydajności.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Główne cechy Deno:

  • Skoncentrowanie na bezpieczeństwie w konfiguracji domyślnej. Dostęp do plików, możliwości sieciowe i dostęp do zmiennych środowiskowych są domyślnie zablokowane i wymagają jawnego włączenia. Aplikacje domyślnie uruchamiane są w izolowanych środowiskach sandbox i nie mogą uzyskać dostępu do możliwości systemowych bez przyznania jawnych uprawnień;
  • Wbudowane wsparcie dla języka TypeScript oprócz JavaScript. Do weryfikacji typów i generacji JavaScript wykorzystywany jest standardowy kompilator TypeScript, co prowadzi do spadku wydajności w porównaniu do analizy JavaScript w V8;
  • Runtime dostarczane jest w formie jednego samowystarczalnego pliku wykonywalnego („deno”). Aby uruchomić aplikacje za pomocą Deno, wystarczy pobrać dla swojej platformy jeden plik wykonywalny o wielkości około 40 MB, który nie ma zewnętrznych zależności i nie wymaga specjalnej instalacji w systemie. Deno nie jest monolityczną aplikacją, ale kolekcją pakietów crate w Rust (deno_core, rusty_v8), które mogą być używane oddzielnie.
  • Podczas uruchamiania programu, a także do ładowania modułów można użyć adresacji przez URL. Na przykład, aby uruchomić program welcome.js, można użyć polecenia „deno https://deno.land/std/examples/welcome.js”. Kod z zewnętrznych źródeł jest pobierany i buforowany na lokalnym systemie, ale nigdy nie jest automatycznie aktualizowany (aby go zaktualizować, należy wyraźnie uruchomić aplikację z flagą „—reload”);
  • Skuteczna obsługa żądań sieciowych HTTP w aplikacjach, platforma jest zaprojektowana do tworzenia wysokowydajnych aplikacji sieciowych;
  • Możliwość tworzenia uniwersalnych aplikacji webowych, które mogą działać zarówno w Deno, jak i w zwykłej przeglądarce internetowej;
  • Posiadanie standardowego zestawu modułów, których użycie nie wymaga powiązania z zewnętrznymi zależnościami. Moduły ze standardowej kolekcji przeszły dodatkowy audyt i sprawdzenie na zgodność;
  • Oprócz runtime platforma Deno pełni również rolę menedżera pakietów i pozwala na odwoływanie się do modułów w kodzie przez URL. Na przykład, aby załadować moduł, można w kodzie użyć „import * as log from "https://deno.land/std/log/mod.ts". Pliki pobrane z zewnętrznych serwerów URL są buforowane. Powiązania z wersjami modułów określane są poprzez wskazanie numerów wersji w URL, na przykład „https://unpkg.com/liltest@0.0.5/dist/liltest.js”;
  • Orientacja na wykorzystanie standardów Web, wsparcie dla Promise, fetch i modułów ECMAScript.
  • Kompatybilność z pakietami umieszczonymi w repozytorium NPM i stworzonymi dla platformy Node.js.
  • W skład integracji wchodzi system inspekcji zależności (komenda „deno info”) oraz narzędzie do formatowania kodu (deno fmt);
  • Wszystkie skrypty aplikacji mogą być łączone w jeden plik JavaScript.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster