{"id":20882307,"url":"https://github.com/ab/paperback","last_synced_at":"2025-05-12T18:30:50.495Z","repository":{"id":56887367,"uuid":"144669548","full_name":"ab/paperback","owner":"ab","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-18T04:41:45.000Z","size":1669,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T05:41:51.096Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-14T04:42:25.000Z","updated_at":"2023-01-18T02:53:24.000Z","dependencies_parsed_at":"2023-02-10T13:15:53.289Z","dependency_job_id":null,"html_url":"https://github.com/ab/paperback","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab%2Fpaperback","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab%2Fpaperback/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab%2Fpaperback/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ab%2Fpaperback/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ab","download_url":"https://codeload.github.com/ab/paperback/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253797898,"owners_count":21965976,"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":[],"created_at":"2024-11-18T07:30:59.247Z","updated_at":"2025-05-12T18:30:50.038Z","avatar_url":"https://github.com/ab.png","language":"Ruby","readme":" # Paperback\n\n[![Gem Version](https://badge.fury.io/rb/paperback.svg)](https://rubygems.org/gems/paperback)\n[![Inline Docs](http://inch-ci.org/github/ab/paperback.svg?branch=master)](http://www.rubydoc.info/github/ab/paperback/master)\n[![Test status](https://github.com/ab/paperback/actions/workflows/tests.yml/badge.svg)](https://github.com/ab/paperback/actions/workflows/tests.yml)\n\n*Paperback* is a library that facilitates the creation of paper offline backups\nof small amounts of important data, such as encryption keys.\n\nIt is designed to be used for long-term paper storage. Arbitrary data to be\nbacked up is encoded using QR codes,\n[sixword](https://github.com/ab/sixword) English text, and Base64.\n\nNothing else approaches the durability and inexpensiveness of paper. This\nlibrary is designed to facilitate the restoration process, which would be\ntedious and error-prone when using human typists or even OCR.\n\nThe QR code is easily machine readible, the sixword text is easiest to\ntranscribe for humans, and the Base64 serves as a fallback for broadest\ncompatibility.\n\nBy default, the backup data is GPG-encrypted with a symmetric passphrase to\navoid exposing data to the printer (or scanner, assuming you cover the\npassphrase when scanning).\n\nThe printed document does contain the SHA256 digest of the original content for\nerror correction, which is not a problem for random data like keys. But if you\nare backing up low-entropy secrets and want to preserve the printer-blindness\nproperty, pad the content with a random salt or encrypt it before using\npaperback.\n\n## Usage\n\nTypical usage will be through the `paperback` executable. Use the `--help`\noption for a usage menu.\n\n```sh\n# Back up the content in data.key\npaperback data.key out.pdf\n```\n\n### Sample output\n\nSee [sample directory](./sample)\n\n![sample page one](./sample/sample.pg1.png)\n![sample page two](./sample/sample.pg2.png)\n\n### More complex patterns\n\nSee the [YARD documentation](http://www.rubydoc.info/github/ab/paperback/master).\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fab%2Fpaperback","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fab%2Fpaperback","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fab%2Fpaperback/lists"}