{"id":27648350,"url":"https://github.com/dbrgn/arkivisto","last_synced_at":"2025-04-24T02:38:58.099Z","repository":{"id":289001924,"uuid":"969794217","full_name":"dbrgn/arkivisto","owner":"dbrgn","description":"Your friendly CLI based workflow for scanning and archiving documents efficiently.","archived":false,"fork":false,"pushed_at":"2025-04-21T00:19:49.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-21T01:33:37.306Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbrgn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-04-21T00:04:13.000Z","updated_at":"2025-04-21T00:19:52.000Z","dependencies_parsed_at":"2025-04-21T01:44:03.722Z","dependency_job_id":null,"html_url":"https://github.com/dbrgn/arkivisto","commit_stats":null,"previous_names":["dbrgn/arkivisto"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Farkivisto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Farkivisto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Farkivisto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Farkivisto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbrgn","download_url":"https://codeload.github.com/dbrgn/arkivisto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250549236,"owners_count":21448811,"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":"2025-04-24T02:38:56.551Z","updated_at":"2025-04-24T02:38:58.092Z","avatar_url":"https://github.com/dbrgn.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arkivisto\n\n![Logo](static/logo-v1-256.png)\n\nYour friendly CLI based workflow for scanning and archiving documents\nefficiently.\n\n[![GitHub CI][github-actions-badge]][github-actions]\n\n**PRE-ALPHA!**\n\n## Features\n\nCurrent implementation status:\n\n- [x] Interactive, user-friendly CLI interface\n- [x] Support for multiple scanners\n- [x] Scanning all from ADF\n- [x] Scanning multiple pages from flatbed\n- [ ] Scanning multiple pages from mixed sources\n- [x] Postprocessing\n- [ ] Archiving\n\n## History\n\nBack in 2014, I wrote a little Python script called\n[pydigitize](https://github.com/dbrgn/pydigitize) to simplify the scanning and\narchival of documents. It already supported most required features, such as\nscanning from ADF, straightening/cleaning of documents, running OCR on\ndocuments, generating PDF/A files and adding keywords to these files, but the\nusability of the process was not optimal. The whole scan/postprocess/archive\nprocess was slow, so I usually had multiple command line windows open at the\nsame time.\n\nAfter some time of using the tool regularly, I showed it to\n[@ubruhin](https://github.com/ubruhin), who liked the general idea but had many\nideas on how to improve the workflow. He essentially rewrote the project and\ndivided the workflow into three stages: Scanning, processing, and archiving. The\nproject was called [docscan](https://gitlab.com/ubruhin/docscan) and proved to\nbe a great time saver after the initial config file setup investment.\n\nFast forward a few more years, docscan was still very useful, the lack of strict\ntypes in Python made it difficult to maintain and extend the codebase. Since I\nstill had a few ideas on how to improve the workflow, I decided to rewrite the\nproject again (essentially the rewrite of a rewrite), this time using Rust. The\nresult is a faster, more robust and maintainable codebase that is easier to\nextend and improve.\n\n## Development Notes\n\n### Fake Scan\n\nDuring development, you can fake the scanning process with a predefined list of\ndocuments in TIFF format. This is useful for testing and debugging purposes.\n\nTo use fake scanning, pass the `--fake-scan` flag to the arkvisto binary. Note\nthat the `testdata/` directory must exist in the current working directory, and\nthat the binary must be built in debug mode.\n\n\n[github-actions]: https://github.com/dbrgn/arkivisto/actions?query=branch%3Amain\n[github-actions-badge]: https://github.com/dbrgn/arkivisto/actions/workflows/ci.yml/badge.svg?branch=main\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrgn%2Farkivisto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbrgn%2Farkivisto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrgn%2Farkivisto/lists"}