{"id":28460889,"url":"https://github.com/parlaynu/snappit","last_synced_at":"2025-08-13T11:52:15.873Z","repository":{"id":294187290,"uuid":"985617353","full_name":"parlaynu/snappit","owner":"parlaynu","description":"Create and manage manual filesystem snapshots.","archived":false,"fork":false,"pushed_at":"2025-05-28T21:23:14.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-03T03:38:50.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parlaynu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-18T06:42:10.000Z","updated_at":"2025-05-28T21:23:18.000Z","dependencies_parsed_at":"2025-05-20T00:02:12.418Z","dependency_job_id":null,"html_url":"https://github.com/parlaynu/snappit","commit_stats":null,"previous_names":["parlaynu/snappit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/parlaynu/snappit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fsnappit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fsnappit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fsnappit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fsnappit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parlaynu","download_url":"https://codeload.github.com/parlaynu/snappit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fsnappit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270235534,"owners_count":24550185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-07T02:39:52.020Z","updated_at":"2025-08-13T11:52:15.836Z","avatar_url":"https://github.com/parlaynu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Directory Snapshots\n\nThis project contains a tool to create and restore user-managed snapshots of filesystem directories.\n\nIt is derived from the project [s3backup](https://github.com/parlaynu/s3backup), rearranging the core operators\nand algorithm to work for user-space snapshots instead of backups.\n\nThe snapshot is configured through a yaml configuration file, with an example shown [here](config/config.yaml).\nThe default location for the configuration file is `~/.config/snappit/config.yaml`; this can be overridden\non the command line.\n\n## Concepts\n\nArena - this is the area that contains the snapshots. There are multiple snapshots in an arena.\nThe arena is defined in the configuration file.\n\nSnapshot - this contains one or more archives as defined in the configuration file. The snapshot\nname is a directory within the arena.\n\nArchive - this is the basic unit that is snapshotted. The archives are defined in the config file. \nIt consists of a manifest file with the full list of files included in the snapshot\nalong with each file's metadata such as size, modify time and, importantly, the content hash.\n\nArena data - the actual files are stored in the data location within the arena in files named\nby the content hash of the file. This provides deduplication by default. The content hash in the\nmanifest file is used to locate the file within the data directory.\n\n## Quick Start\n\nFor a quick demonstration of it's use, take the example configuration file and customise it to create\nsome snapshots.\n\nTo create the baseline snapshot, run:\n\n    $ snappit create baseline\n\nThen modify some files in the source directories and create a new snapshot:\n\n    $ snappit create v001\n\nTo list the snapshots available, run the list command:\n\n    $ snappit list\n\nTo restore to the baseline snapshot:\n\n    $ snappit restore baseline\n\nThis last command will restore the source directories to how they were when the baseline\nsnapshot was created.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparlaynu%2Fsnappit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparlaynu%2Fsnappit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparlaynu%2Fsnappit/lists"}