Ridge Intégré API
Utilisez le package ridge Grove lorsqu'un processus seed doit posséder la base de données. Le handle de base de données est une ressource de déplacement uniquement avec un nettoyage déterministe.
Application minimale
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)
}
Exécutez les vérifications actuelles du compilateur seed avant de copier un exemple dans une application :
./seed/seed check path/to/application
./seed/seed test path/to/application
Opérations de base
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 ligne héritée directe API stocke une clé primaire i64 et une charge utile binaire sécurisée. Les packages relationnels et SQL fournissent des lignes multicolonnes typées de génération 2. Choisissez un chemin de données cohérent pour une application plutôt que de mélanger des hypothèses de visibilité héritées et relationnelles.
Propriété et erreurs
- Traitez la base de données et les descripteurs de transaction comme des ressources possédées.
- Propagez
ridge_erroravec?ou gérez-le explicitement. - Conservez les vues de lignes et de tampons empruntées dans leur portée lexicale valide.
- Ne dupliquez ou ne modifiez jamais les fichiers de stockage Ridge lorsque la base de données est ouverte.
- Utilisez les API de sauvegarde et de restauration Ridge pour des copies cohérentes.
Utilisez le seed-lang compétence avec ridgedb lorsqu'un agent IA écrit ou révise .sd code.
Observabilité
db.commit_stats() renvoie les compteurs WAL, page, cache, split/merge, réutilisation, I/O, synchronisation, allocation et transfert par validation. db.stats() renvoie les statistiques cumulées du cache et du tampon appartenant au moteur depuis l'ouverture. Interprétez-les comme des diagnostics locaux et non comme une télémétrie de flotte.