Confronto: PgArachne vs. PostgREST

FunzionalitàPgArachne (+ Funzioni Universali)PostgREST
Velocità di configurazioneAlta. Le funzioni universali permettono CRUD istantaneo simile a PostgREST.Alta. Genera automaticamente endpoint per tutte le tabelle.
Flessibilità logicaIllimitata. Capacità di combinare CRUD universale con funzioni RPC specifiche.Limitata. La maggior parte della logica deve risiedere nei filtri URL o nelle Viste del Database.
Gestione degli schemiNativa. Accesso via schema.funzione.Piatta/Globale. Richiede il cambio di profili negli header HTTP per cambiare schema.
AstrazioneOpzionale. Puoi esporre i dati direttamente (proxy) o incapsularli in modo sicuro.Bassa. L’API è essenzialmente uno specchio dello schema del database.
Pronto per AI e LLMEstrema. JSON-RPC e capacità di definire funzioni «Tool» specificamente per agenti AI.Media. L’AI deve lottare con la sintassi rigida dei parametri URL.
File staticiSì. Serve HTML/JS/CSS direttamente da un singolo binario.No. Devi configurare e gestire un Nginx esterno davanti ad esso.
Tempo reale (SSE)Sì. Endpoint SSE integrato per PostgreSQL NOTIFY.No. Richiede wiring dedicato (LISTEN/NOTIFY + servizio separato).
Supporto Multi-DatabaseA livello di server (N:1). Una singola istanza di PgArachne si connette al server (IP:Porta) e può servire tutti i database ospitati lì.Per Database (1:1). Un’istanza è legata a un database specifico. Servire più database richiede l’esecuzione di più istanze su porte diverse.
AutenticazioneJWT e Chiavi API. Supporta nativamente entrambi i mondi.Principalmente JWT.
Rate limitingSì. Limite di login integrato (configurabile).No. Richiede proxy o middleware esterno.

Perché «PgArachne Ibrido» è il Vincitore?

Grazie alle Funzioni Universali (che agiscono come un emulatore), ottieni il meglio di entrambi i mondi:

  • Fase di Avvio (MVP): Distribuisci PgArachne con poche funzioni proxy (come quelle in universal_table_access.sql) e in pochi minuti hai un’API funzionale per tutte le tabelle. In questa fase, si comporta esattamente come PostgREST.
  • Fase di Produzione: Man mano che l’applicazione cresce, inizia a scrivere funzioni dedicate per operazioni sensibili (es. process_payment). Questo aumenta la sicurezza e le prestazioni senza cambiare lo stack tecnologico sottostante.
  • Frontend e AI: Allo stesso tempo, la tua applicazione gira sulla stessa porta dell’API (grazie al servizio di file statici) e gli agenti AI possono chiamare le tue funzioni direttamente via JSON-RPC.

Nota: Le «Funzioni Universali» sono un set di funzioni PL/pgSQL standard che puoi aggiungere al tuo database per abilitare operazioni generiche di Lettura, Creazione, Aggiornamento ed Eliminazione su qualsiasi tabella.