{"id":25453163,"url":"https://github.com/nlopes/arq","last_synced_at":"2025-11-02T06:30:37.589Z","repository":{"id":34817871,"uuid":"183412122","full_name":"nlopes/arq","owner":"nlopes","description":"Library to interact with Arq data files","archived":false,"fork":false,"pushed_at":"2023-10-03T03:41:03.000Z","size":135,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T20:17:26.789Z","etag":null,"topics":["arq","backup"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/nlopes.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}},"created_at":"2019-04-25T10:29:11.000Z","updated_at":"2023-01-13T11:39:56.000Z","dependencies_parsed_at":"2023-02-16T23:15:53.301Z","dependency_job_id":null,"html_url":"https://github.com/nlopes/arq","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlopes%2Farq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlopes%2Farq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlopes%2Farq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nlopes%2Farq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nlopes","download_url":"https://codeload.github.com/nlopes/arq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239384733,"owners_count":19629509,"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","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":["arq","backup"],"created_at":"2025-02-17T23:49:29.412Z","updated_at":"2025-11-02T06:30:37.546Z","avatar_url":"https://github.com/nlopes.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![docs.rs](https://docs.rs/arq/badge.svg)](https://docs.rs/arq)\n[![crates.io](https://img.shields.io/crates/v/arq.svg)](https://crates.io/crates/arq)\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/nlopes/arq/blob/master/LICENSE)\n[![Workflow Status](https://github.com/nlopes/arq/workflows/CI/badge.svg)](https://github.com/nlopes/arq/actions?query=workflow%3A%22CI%22)\n\n# arq\n\nArq is a library to simplify interactions with files backed up by\n[Arqbackup](https://www.arqbackup.com/).\n\nCurrently it supports only files generated by Arq (the program) versions 4.5 and above.\n\nIn its present state, this library allows reading files but never writing, so it's not\npossible to build a full replacement of Arq (the program) with this library.\n\nNOTE: A lot of the documentation, especially the one describing the data formats,\ncomes from [https://arqbackup.com](https://www.arqbackup.com/arq_data_format.txt). All\ncredit should go to those folks.\n\n### Installation\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\narq = \"0.1\"\n```\n\n### Examples\n\n1. Reading a computer info entry:\n\n```rust\nextern crate arq;\nlet reader = std::io::Cursor::new(\"\u003cplist version=\\\"1.0\\\"\u003e\n   \u003cdict\u003e\n       \u003ckey\u003euserName\u003c/key\u003e\n       \u003cstring\u003esomeuser\u003c/string\u003e\n       \u003ckey\u003ecomputerName\u003c/key\u003e\n       \u003cstring\u003esomecomputer\u003c/string\u003e\n   \u003c/dict\u003e\n   \u003c/plist\u003e\");\nlet data = arq::computer::ComputerInfo::new(reader, \"someuuid\".to_string()).unwrap();\nassert_eq!(data.computer_name, \"somecomputer\".to_string());\nassert_eq!(data.user_name, \"someuser\".to_string());\nassert_eq!(data.uuid, \"someuuid\".to_string());\n```\n\n2. Reading a tree\n\nNote: Usually one reads this from a file, not used directly like shown here.\n\n```rust\nlet tree_bytes = [0, 0, 2, 182, 159, 84, 114, 101, 101, 86, 48, 50, 50, 0, 1, 0, 30, 255, 11, 1, 245, 0, 0, 0, 20, 0, 0, 65, 237, 0, 0, 0, 0, 92, 197, 219, 103, 0, 0, 0, 0, 16, 90, 33, 177, 75, 0, 1, 132, 2, 77, 81, 191, 0, 0, 0, 4, 28, 0, 15, 48, 0, 3, 17, 16, 31, 0, 193, 92, 197, 219, 84, 0, 0, 0, 0, 48, 246, 52, 114, 17, 0, 67, 0, 0, 2, 1, 9, 0, 145, 8, 115, 111, 109, 101, 102, 105, 108, 101, 16, 0, 17, 2, 6, 0, 2, 2, 0, 20, 1, 35, 0, 244, 30, 40, 100, 97, 56, 97, 48, 48, 51, 53, 55, 54, 52, 51, 100, 52, 56, 49, 98, 53, 98, 52, 54, 99, 57, 100, 99, 57, 99, 52, 49, 50, 55, 55, 98, 51, 53, 98, 57, 101, 56, 53, 1, 0, 0, 0, 53, 0, 6, 2, 0, 22, 12, 11, 0, 15, 2, 0, 13, 4, 3, 1, 41, 129, 164, 3, 1, 60, 92, 158, 217, 58, 0, 5, 103, 0, 5, 9, 0, 146, 0, 1, 0, 0, 4, 2, 77, 81, 220, 11, 0, 2, 2, 0, 5, 22, 1, 3, 67, 0, 5, 16, 0, 50, 89, 212, 77, 34, 0, 85, 0, 8, 0, 0, 16, 182, 0, 177, 10, 116, 111, 112, 95, 102, 111, 108, 100, 101, 114, 89, 0, 15, 16, 1, 3, 255, 25, 99, 48, 53, 55, 49, 53, 51, 55, 100, 53, 55, 100, 57, 52, 56, 56, 49, 54, 52, 51, 48, 51, 57, 53, 48, 100, 102, 100, 101, 100, 53, 99, 98, 54, 99, 102, 99, 100, 50, 48, 16, 1, 3, 19, 39, 121, 0, 15, 2, 0, 116, 80, 0, 0, 0, 0, 0];\nlet tree = arq::tree::Tree::new(\u0026tree_bytes, arq::compression::CompressionType::LZ4).unwrap();\nassert_eq!(tree.version, 22);\n```\n\n**For a more complex example, please check a command line tool (`evu`) built using this\nlibrary at [https://github.com/nlopes/evu](https://github.com/nlopes/evu).**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlopes%2Farq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnlopes%2Farq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnlopes%2Farq/lists"}