YABT (Yet Another Backup Tool) is an object-store archival synchronization tool scaffold. It is intended to replicate ordinary folders into directly browsable archive targets without turning the archive into a proprietary backup repository.
The initial target runtime is .NET 10 on Windows. The architecture keeps platform-specific concerns behind interfaces so Linux support, NAS workflows, WebDAV targets, Azure Blob Storage, and alternate storage targets can be added without changing the archive format.
- Mirror the original folder hierarchy into directly browsable object stores.
- Keep a configurable logical live branch for current state and a configurable history branch for preserved historical state.
- Prefer append-mostly behavior for replaced or deleted content.
- Store intent and metadata in human-readable JSON files.
- Use standard archive formats such as zip when packaging folders.
- Keep archive targets directly browsable with ordinary tools such as the filesystem, Azure Storage Explorer, or WebDAV clients.
- Make restore symmetrical with sync wherever possible.
- Avoid metadata caching initially. Any future cache must be disposable and never the source of truth.
- No proprietary repository format.
- No hidden mandatory catalog database.
- No opaque block store for the logical live branch.
- No initial deduplication implementation.
- No initial metadata cache.
- No full synchronization engine in this scaffold.
Many backup systems optimize for compactness, snapshots, and application-controlled restore workflows. YABT optimizes for inspectability and long-term durability. The archive should still make sense if the original tool is gone: files remain visible, packages use standard formats, manifests are JSON, and folder policies travel with the data they describe.
The filesystem plus metadata files are the source of truth. Object stores such as a plain filesystem, Azure Blob Storage, or WebDAV are durable replica/archive targets. A cache may accelerate reconciliation later, but it must always be rebuildable from durable metadata and object-store contents.
src/Yabt.Corecontains durable domain concepts and cross-platform abstractions.src/Yabt.Commoncontains shared cross-cutting primitives such as the base exception type.src/Yabt.Metadatareads and writes human-readable JSON metadata.src/Yabt.Packagingdefines package building contracts and naming rules.- Format projector projects own representations such as
mirrorandzip. - Object-store provider projects will adapt stores such as the filesystem, Azure Blob Storage, and WebDAV.
src/Yabt.Syncholds orchestration contracts.src/Yabt.Cliexposes the future command surface.docscontains architecture and format notes.speccontains draft JSON schemas.examplescontains a sample root descriptor and folder policy files.
Future commands are scaffolded:
yabt sync
yabt restore
yabt scan
yabt verify
yabt pack
yabt reconcileThese commands currently report that implementation is pending.