Phoenix (web framework)

Phoenix
software
GenereFramework per applicazioni web (non in lista)
SviluppatoreChris McCord
Ultima versione1.8.7 (6 maggio 2026)
Sistema operativoMultipiattaforma
Linguaggioelixir
Elixir (non in lista)
LicenzaMIT
(licenza libera)
Sito webwww.phoenixframework.org/

Phoenix è un framework per applicazioni web scritto nel linguaggio di programmazione funzionale Elixir, basato sul paradigma model-view-controller (MVC) lato server. Si appoggia alla libreria Plug e, a un livello più basso, a un server web della piattaforma Erlang, storicamente Cowboy; è progettato per applicazioni web ad alte prestazioni e scalabili.

Oltre al ciclo di richiesta e risposta gestito dal server sottostante, Phoenix consente la comunicazione in tempo reale con i client tramite WebSocket o long polling, attraverso i cosiddetti channels, utilizzabili da client scritti in qualsiasi linguaggio.

Storia

Phoenix è stato creato da Chris McCord, con il contributo di José Valim, creatore di Elixir ed ex membro del core team di Ruby on Rails. La versione 1.0 è stata pubblicata nell'agosto 2015.

Con la versione 1.5, del 2020, Phoenix ha integrato LiveView, una libreria per la realizzazione di interfacce interattive in tempo reale gestite lato server. LiveView mantiene una connessione persistente con il server tramite WebSocket per generare e aggiornare il contenuto visualizzato lato client: a ogni modifica il server invia soltanto le porzioni di HTML effettivamente cambiate, anziché l'intera pagina. Ciò è possibile perché in Phoenix i template sono compilati in funzioni Elixir, e non trattati come semplici file HTML.

Con la versione 1.6, del 2021, è stato introdotto un generatore di codice per il sistema di autenticazione degli utenti, in precedenza affidato a librerie esterne.

Caratteristiche

Phoenix si basa sull'ecosistema Elixir, eseguito sulla macchina virtuale BEAM di Erlang. Il suo punto di forza sono le applicazioni in tempo reale: in un test del 2015 gli sviluppatori hanno mantenuto due milioni di connessioni WebSocket simultanee su una singola macchina. Fra le altre funzionalità figurano:

Note

  1. 1 2 (EN) Paul Krill, Phoenix Web framework rises to 1.0 status, in JavaWorld. URL consultato l'8 maggio 2018 (archiviato dall'url originale il 29 giugno 2018).
  2. ↑ (EN) Chris McCord, Bruce Tate e José Valim, Programming Phoenix, Pragmatic Bookshelf, 2016, p. 18, ISBN 9781680504361.
  3. ↑ (EN) Sophie DeBenedetto, Building a real-time app with Phoenix, su Timber.io. URL consultato il 26 febbraio 2019 (archiviato dall'url originale il 9 novembre 2020).
  4. ↑ (EN) Phoenix v1.0.0, su GitHub.
  5. ↑ (EN) Phoenix.LiveView behaviour, su HexDocs. URL consultato il 16 giugno 2020.
  6. ↑ (EN) The Road to 2 Million Websocket Connections in Phoenix, su Phoenix Framework.

Voci correlate

Collegamenti esterni