| Phoenix software | |
|---|---|
| Genere | Framework per applicazioni web (non in lista) |
| Sviluppatore | Chris McCord |
| Ultima versione | 1.8.7 (6 maggio 2026) |
| Sistema operativo | Multipiattaforma |
| Linguaggio | elixir Elixir (non in lista) |
| Licenza | MIT (licenza libera) |
| Sito web | www.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.
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.
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: