anyback 0.5.0

Backup and restore for Anytype
Documentation

anyback

release docs.rs crates.io

Anytype Toolbox documentation · Backup and restore guide · Rust API

The anyback package supplies the anyback_reader Rust library and the archive commands embedded in anyr backup. It does not install an anyback executable. See the backup and restore guide for command usage.

Status: alpha. Test restores before relying on an archive as your only copy.

Library surface

anyback_reader reads ZIP archives and unpacked archive directories. Its public modules provide archive traversal, protobuf snapshot inspection, and Markdown rendering. The default cli feature also builds the command types and run_command entry point used by anyr; default-features = false excludes those dependencies.

The tui feature adds the interactive inspector used by anyr backup inspect.

Archive and restore design

Backups use Anytype's protobuf exporter by default and publish a ZIP archive plus a sibling manifest. The manifest binds the staged archive's byte length and SHA-256 digest before the archive becomes visible at its final path. Readers also accept archives without a manifest, including archives created by Anytype desktop and direct pre-delete backups.

Full restores pass the archive path to Heart's import operation. Selective restore uses snapshot import behind the snapshot-import feature. Snapshot import accepts protobuf snapshots; JSON-encoded protobuf snapshots are not supported.

Create and restore operations share an absolute workflow deadline. Local archive, manifest, report, and result publication use staged writes under that deadline. Restore completion is correlated with the import process when Heart returns a collection identifier; ordinary object imports without one are bound to the dispatch generation.

anyr backup create|export and non-dry-run restore|import require a running Anytype CLI server and gRPC credentials. Restore and import with --dry-run validate the local archive and resolve the destination space over HTTP without dispatching an import.

Development

Run the offline crate checks:

cargo test -p anyback
cargo clippy -p anyback --all-targets
cargo fmt --all -- --check

The ignored live and integrity suites require a disposable, authenticated Anytype server. Their admission variables and exact test commands are defined next to the test targets and in the workspace CI configuration.