{"id":26475339,"url":"https://github.com/josiahbull/dds","last_synced_at":"2026-05-16T11:04:01.945Z","repository":{"id":61510155,"uuid":"550145114","full_name":"JosiahBull/dds","owner":"JosiahBull","description":"A precise, conservative, read-intensive file syncing utility.","archived":false,"fork":false,"pushed_at":"2022-10-26T04:25:30.000Z","size":45,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-15T14:59:03.194Z","etag":null,"topics":["dd","jetson","raspberry-pi","rust","sd-card","sync"],"latest_commit_sha":null,"homepage":"","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/JosiahBull.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":"2022-10-12T09:20:30.000Z","updated_at":"2022-10-15T22:30:26.000Z","dependencies_parsed_at":"2022-10-19T00:30:47.865Z","dependency_job_id":null,"html_url":"https://github.com/JosiahBull/dds","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/JosiahBull/dds","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosiahBull%2Fdds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosiahBull%2Fdds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosiahBull%2Fdds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosiahBull%2Fdds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JosiahBull","download_url":"https://codeload.github.com/JosiahBull/dds/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosiahBull%2Fdds/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33100319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["dd","jetson","raspberry-pi","rust","sd-card","sync"],"created_at":"2025-03-19T23:16:49.492Z","updated_at":"2026-05-16T11:04:01.931Z","avatar_url":"https://github.com/JosiahBull.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DDS Disk Destroyer (is) Slow\n\n![Test](https://github.com/josiahbull/dds/actions/workflows/precommit.yaml/badge.svg)\n![Build](https://github.com/josiahbull/dds/actions/workflows/prerelease.yml/badge.svg)\n\nDDS is a tool to restore data to sd-cards. It is optimized for writing to\ndevices with high read speeds, and low write speeds, where the majority of\nthe destination data will match the source data. This is useful for\nrestoring an sd-card to a previous version. It works by having a read head\nmove ahead of the write head in chunks, finding modified blocks and marking\nthem to be overwritten. This will also reduce the wear on the sd-card.\n\nThis tool was written specifically for rolling back Jetson Nano sd-cards, but\nit should work for any device (e.g. Rapsberry Pi).\n\nNote that for creating a disk image, it is still recommended to use `dd`, as\nit is more resource-efficient than this tool for creating a large block backup.\n\nThis tool does support multithreading, using separate processes for reading and\nwriting. This isn't especially useful in 99% of situations - but if you're\nexpecting \u003e70% of your sd card to be overwritten it could be useful to enable.\n\n## Usage\n\n```bash\n# Create a backup of the sd-card\nsudo dd if=/dev/sda of=$HOME/sda.img status=progress\n\n# Restore the backup to the sd-card\nsudo dds --input=$HOME/sda.img --output=/dev/sda\n```\n\n## Installation\n\n```bash\ncurl https://raw.githubusercontent.com/josiahbull/dds/main/install.sh | bash\n```\n\n## Compile from Source\n\n```bash\n# install rust\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n\n# clone and build from source\ngit clone https://github.com/josiahbull/dds/\ncd dds\ncargo build --release\n./target/release/dds --help\n```\n\n## Contribution and Licensing\n\nContribution is welcomed, and will be licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosiahbull%2Fdds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosiahbull%2Fdds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosiahbull%2Fdds/lists"}