Projektet pgrust har publicerats med en implementering av databashanteringssystemet PostgreSQL, omskriven pÄ Rust med hjÀlp av översÀttaren c2rust och en AI-assistent. Det har meddelats att projektet Ànnu inte Àr klart för anvÀndning i arbetsprojekt, men det passerar redan alla regressionstester för PostgreSQL, Àr kompatibelt med dataformatet frÄn PostgreSQL 18.3 och kan anvÀnda datakatalogen frÄn PostgreSQL 18.3. Koden för projektet distribueras under AGPLv3-licensen, till skillnad frÄn den ursprungliga PostgreSQL som tillhandahÄlls under en permissiv PostgreSQL-licens, liknande BSD- och MIT-licenserna. En online-demonstration av funktionerna, baserad pÄ en WebAssembly-build, samt en Docker-image för snabb installation, Àr tillgÀnglig.
Som utvecklingsmÄl nÀmns att uppnÄ full kompatibilitet med PostgreSQL 18.3, samt att genomföra experiment för att förÀndra den interna strukturen och skapa en version av PostgreSQL som Àr fri frÄn de arkitektoniska begrÀnsningar som inte kan övervinnas av historiska skÀl. Projektet passerar framgÄngsrikt en uppsÀttning av mer Àn 46 000 regressionstester för PostgreSQL, men Àr för nÀrvarande inkompatibelt med tillÀgg till PostgreSQL, ger inte de önskade prestandaoptimeringarna och implementerar inte helt de procedurala sprÄken PL/Python, PL/Perl och PL/Tcl.
Framtidsplaner:
- ĂversĂ€ttning till en flertrĂ„dad internarkitektur.
- Implementering av anslutningspoolning.
- Optimering för arbetsflöden som aktivt anvÀnder JSON.
- Möjlighet att skapa kopior och grenar av databasobjekt i Copy-on-Write-lÀge utan att kopiera data.
- Experiment med en arkitektur som inte krÀver att VACUUM-operationen utförs.
- Ett system för SQL-frÄgebegrÀnsningar som kan blockera överdriven resursanvÀndning vid utförande av dÄligt formulerade frÄgor.
- Skydd mot att optimizern vÀxlar till mindre effektiva exekveringsplaner.
Enligt projektets författare pÄgÄr arbete med nÀsta version av pgrust, dÀr en flertrÄdad modell för anslutningshantering implementeras istÀllet för en arbetsprocesspool, samt införandet av ytterligare optimeringar som batchbehandling av rader i tabeller och förutsÀgande dataladdning. Vid testning av verktyget percona-tpcc, nÀr transaktioner hanteras, visade sig den nya versionen av pgrust vara 50 % snabbare Àn den standardiserade PostgreSQL, och vid behandling av analytiska förfrÄgningar var den 300 gÄnger snabbare.
Vid översÀttningen till Rust anvÀndes en hybridmetod dÀr PostgreSQL-koden först bearbetades med hjÀlp av översÀttaren c2rust, som genererade en osÀker Rust-representation som Àr nÀra i struktur till den ursprungliga C-koden. Efter bearbetning i c2rust skapades cirka 1000 crate-paket som parallellt översattes till idiomatisk Rust med hjÀlp av AI-modellen Claude och verktyget Conductor för att fördela uppgifter mellan samtidigt körande underagenter.
KĂ€lla: opennet.ru
