Skip to main content

Module incremental_backup

Module incremental_backup 

Source
Expand description

Incremental Backup System

Provides efficient backups with only changed events, reducing storage requirements and backup times.

§Example

use azoth::prelude::*;
use azoth::incremental_backup::{IncrementalBackup, IncrementalBackupConfig, BackupRetention};
use std::time::Duration;
use std::sync::Arc;

let db = Arc::new(AzothDb::open("./data")?);

let config = IncrementalBackupConfig {
    full_backup_interval: Duration::from_secs(86400), // Daily full backup
    incremental_interval: Duration::from_secs(3600),  // Hourly incrementals
    compression: true,
    encryption_key: None,
    retention: BackupRetention {
        full_backups: 7,        // Keep last 7 full backups
        incremental_days: 30,   // Keep incrementals for 30 days
    },
    backup_dir: "./backups".into(),
};

let backup_mgr = IncrementalBackup::new(db.clone(), config);

// Create backup (automatically chooses full or incremental)
backup_mgr.create_backup().await?;

// Restore to specific event
backup_mgr.restore_to_event(12345).await?;

Structs§

BackupRetention
Backup retention policy
IncrementalBackup
Incremental backup manager
IncrementalBackupConfig
Incremental backup configuration
IncrementalBackupManifest
Incremental backup manifest

Enums§

BackupType
Backup type