Il DB EdgeDB è stato rinominato in Gel. Uscita di Gel 6.0

Gli sviluppatori del database EdgeDB hanno annunciato il rinominamento del progetto in Gel. Allo stesso tempo, è stata rilasciata una nuova versione significativa: Gel 6.0. La ragione del cambio di nome è legata al desiderio di eliminare le connotazioni fuorvianti create dall'uso della parola "edge", che porta molti a percepire il progetto come un database per il calcolo edge o come un database orientato ai grafi. Il rinomino ha riguardato solo gli elementi del marchio. La struttura del progetto, gli obiettivi e il team sono rimasti invariati. Gli strumenti e le librerie nella nuova versione sono stati rinominati, ma per garantire la retrocompatibilità è stata mantenuta la possibilità di utilizzare i vecchi nomi tramite collegamenti simbolici e wrapper.

Il progetto si sviluppa come un'estensione di PostgreSQL, implementando un modello di dati relazionale-grafico e un linguaggio di query EdgeQL, ottimizzato per lavorare con dati gerarchici complessi. Il codice è scritto nei linguaggi Python e Rust (parser e parti critiche in termini di prestazioni) e distribuito con licenza Apache 2.0. Sono disponibili librerie client per Python, Go, Rust, .NET, Elixir e TypeScript/Javascript. Viene fornito un toolkit da riga di comando per la gestione del DBMS e per l'esecuzione interattiva delle query (REPL).

In Gel, viene utilizzato un sistema dichiarativo basato su tipi di oggetti anziché un modello di dati basato su tabelle. Al posto delle chiavi esterne (foreign key) per definire le relazioni tra i tipi, si utilizza un collegamento tramite riferimenti (un oggetto può essere utilizzato come proprietà di un altro oggetto).

type Person { required name: str; } type Movie { required title: str; multi actors: Person; }

Sono supportate funzionalità come la tipizzazione rigorosa delle proprietà, le restrizioni sui valori delle proprietà, le proprietà calcolate e le procedure memorizzate. Tra le caratteristiche dello schema oggettuale di memorizzazione Gel, che ricorda in parte un ORM, si evidenziano la possibilità di mescolare schemi, di collegare proprietà di oggetti diversi e il supporto integrato per JSON. Gli indici possono essere utilizzati per accelerare l'elaborazione delle query.

Sono forniti strumenti integrati per la migrazione dello schema di memorizzazione: dopo aver modificato lo schema definito in un file esdl separato, è sufficiente eseguire il comando "gel migration create" e il DBMS analizzerà le differenze nello schema generando interattivamente uno script per la transizione verso il nuovo schema. La cronologia delle modifiche allo schema viene tracciata automaticamente.

Per la formulazione delle query è supportato il linguaggio di query GraphQL e un proprio linguaggio EdgeQL, che rappresenta un adattamento di SQL per dati gerarchici. Invece di liste, i risultati delle query vengono presentati in formato strutturato, e invece delle sottoquery e delle operazioni JOIN, è possibile specificare una query EdgeQL come espressione all'interno di un'altra query. Sono supportate transazioni e cicli.

select Movie { title, actors: { name } } filter .title = «The Matrix» insert Movie { title := «The Matrix Resurrections», actors := ( select Person filter .name in { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }

Principali novità in Gel 6.0:

  • È stata aggiunta la possibilità di utilizzare query SQL tradizionali quando ci si collega a un DBMS tramite il protocollo Gel o in modalità protocollo PostgreSQL. Si prevede che il supporto di SQL semplifichi la migrazione a Gel di progetti esistenti, che ora possono essere trasferiti gradualmente da SQL, continuando a utilizzare i vecchi client SQL e SQL ORM. I progetti che utilizzano originariamente EdgeQL potranno sfruttare ulteriori funzionalità disponibili in SQL, ma non ancora implementate in EdgeQL, come funzioni di finestra, query ricorsive e blocchi espliciti.
  • È stata aggiunta la supporto per l'aggiornamento in loco, che non richiede la creazione e il caricamento di un dump del database durante la transizione a una nuova versione significativa. Durante l'aggiornamento da EdgeDB 5.x a Gil 6.0 è necessario utilizzare il vecchio metodo, ma non sarà necessario ricaricare il dump durante il passaggio da Gil 6.x a 7.0.
  • È stato garantito il salvataggio delle statistiche sulle prestazioni delle query, disponibili tramite gli oggetti sys::QueryStats.
  • È stata aggiunta la supporto per l'estensione PostgreSQL PostGIS per la memorizzazione di dati spaziali, utilizzati nei sistemi informativi geografici.
  • È stata aggiunta la libreria std::net per inviare richieste di rete (supporta HTTP) in modalità asincrona.
  • In aggiunta a ext::auth, è stato aggiunto il supporto per la configurazione dei provider OpenID Connect.
  • Nell'aggiunta ext::ai, è stata aggiornata la lista delle grandi modelli linguistici supportati da OpenAI, Anthropic e Mistral.
  • È stata fornita la possibilità di connettere gestori aggiuntivi per i comandi nell'utility gel.
  • In EdgeQL è stata semplificata la semantica per trovare percorsi tra i nodi del grafo.
  • In gel.toml è stata aggiunta l'impostazione '[[watch]]', che consente di eseguire script al cambiamento dei file specificati.
  • Nell'ORM Drizzle è stata implementata la supporto per Gel.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster