Ridge Incorporato API
Utilizzare il pacchetto ridge Grove quando un processo seed deve possedere il database. L'handle del database è una risorsa di solo spostamento con pulizia deterministica.
Applicazione minima
use "ridge"
fn main() -> result<i64, ridge_error> {
let mut db = ridge_open("./data/app", 4096 as usize)?
db.create_table("items", 4096 as usize)?
let payload = bytes.from("hello").or_abort()
db.insert("items", 1, payload.view())?
let found = db.get("items", 1)?
match found {
some(row) => print(f"row={row.id}")
none => print("not found")
}
result.ok(0)
}
Esegui gli attuali controlli del compilatore seed prima di copiare un esempio in un'applicazione:
./seed/seed check path/to/application
./seed/seed test path/to/application
Operazioni fondamentali
ridge_open / ridge_open_with_cache
db.create_table / db.insert / db.get / db.update / db.delete
db.count / db.scan / db.find_equal / db.create_unique_index
db.begin / db.try_begin / db.transaction_put / db.transaction_delete
db.commit / db.rollback
db.integrity / db.backup / ridge_validate_backup / ridge_restore
db.commit_stats / db.stats
La riga legacy diretta API memorizza una chiave primaria i64 e un payload sicuro a livello binario. I pacchetti relazionali e SQL forniscono righe a più colonne tipizzate di seconda generazione. Scegli un percorso dati coerente per un'applicazione anziché mescolare presupposti di visibilità legacy e relazionale.
Proprietà ed errori
- Trattare il database e gli handle di transazione come risorse di proprietà.
- Propaga
ridge_errorcon?o gestiscilo in modo esplicito. - Mantenere le visualizzazioni di righe e buffer prese in prestito all'interno del loro ambito lessicale valido.
- Non duplicare o modificare mai i file di archiviazione Ridge mentre il database è aperto.
- Utilizza le API di backup e ripristino Ridge per copie coerenti.
Usa il seed-lang abilità insieme a ridgedb quando un agente AI scrive o recensisce .sd codice.
Osservabilità
db.commit_stats() restituisce contatori per commit WAL, pagina, cache, split/merge, riutilizzo, I/O, sincronizzazione, allocazione e gestione temporanea. db.stats() restituisce le statistiche cumulative del buffer di proprietà del motore e della cache dall'apertura. Interpretateli come diagnostica locale, non come telemetria della flotta.