Nitro è un framework Open Source basato su TypeScript che permette di creare Web server performanti senza la necessità di complesse procedure di configurazione. Tra i maggiori vantaggi di questa soluzione vi è soprattutto il fatto che il deployment può avvenire ovunque. Si può utilizzare infatti la medesima codebase senza dover adottare configurazioni addizionali. Si tratta inoltre di un un risorsa portabile che non richiede node_modules
, gli output generati pesano infatti appena 1MB.
Le caratteristiche di Nitro
Il framework garantisce la registrazione automatica delle route di API e Web server all'interno del file system di riferimento. Dal punto di vista delle prestazioni può poi risultare molto utile il supporto per il code-splitting. Dopo la suddivisione, le varie porzioni della codebase vengono caricate in modalità asincrona e questo garantisce tempi di avvio più rapidi per i Web server. L'overhead generato è inoltre minimo grazie al design minimale di base.
Nitro è agnostico rispetto al sistema di storage della piattaforma in cui viene utilizzato. Questo lo rende facilmente portabile e trasferibile fra ambienti dotati di caratteristiche differenti. Parliamo inoltre di una soluzione facilmente personalizzabile grazie all'utilizzo di plugin per l'estensione delle funzionalità di base. I plugin vengono auto-registrati, e ordinati in base al filename, nitro può quindi caricarli sincronicamente al momento dell'inizializzazione.
Viene supportata l'importazione automatica delle utility. In questo modo la codebase non viene inquinata da elementi esterni al core quando non sono necessari. Il bundle del Web server creato conterrà soltanto quelli che vengono effettivamente utilizzati. Nitro è stato inoltre implementato per garantire la retrocompatibilità, rendendo possibile l'utilizzo di package npm legacy.
Installazione di Nitro
Per installare e avviare la versione più recente del framework basta lanciare le istruzioni da linea di comando proposte di seguito:
npx giget@latest nitro
cd nitro-app
npm install
npm run dev
Nitro è in grado di generare output in formati differenti per adattarsi a diversi provider senza modifiche alla codebase. L'output predefinito è però un server Node.JS.