{"id":17658650,"url":"https://github.com/ruuda/tako","last_synced_at":"2025-05-07T12:44:49.643Z","repository":{"id":66191286,"uuid":"129533459","full_name":"ruuda/tako","owner":"ruuda","description":"Updater for single files","archived":false,"fork":false,"pushed_at":"2023-11-20T22:23:35.000Z","size":711,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-31T10:11:19.850Z","etag":null,"topics":["container-image","containers","updater"],"latest_commit_sha":null,"homepage":"https://docs.ruuda.nl/tako/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruuda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-04-14T16:14:12.000Z","updated_at":"2022-12-22T22:40:46.000Z","dependencies_parsed_at":"2023-11-20T23:28:29.225Z","dependency_job_id":"e05a77c2-4015-40da-aec3-1f760d2c744a","html_url":"https://github.com/ruuda/tako","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/ruuda%2Ftako","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Ftako/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Ftako/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruuda%2Ftako/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruuda","download_url":"https://codeload.github.com/ruuda/tako/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252881320,"owners_count":21819146,"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":["container-image","containers","updater"],"created_at":"2024-10-23T15:27:53.110Z","updated_at":"2025-05-07T12:44:49.622Z","avatar_url":"https://github.com/ruuda.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tako\n\nTako: take container image.\n\nTako securely downloads and updates binary files such as container images. It\nis intended as a lightweight delivery mechanism for signed versioned images.\nThrough version bounds Tako enables automatic security updates while avoiding\nbreaking changes. Ed25519 signatures ensure that images come from a trusted\nsource.\n\nTako is a short-lived process that downloads images specified in its\nconfiguration and then exits. Optionally Tako restarts configured systemd units\nwhen it downloads a newer version of an image.\n\nTako can be used in conjunction with systemd as a more flexible alternative\nto container runtimes. [Systemd can take care of the sandboxing\npart][containers-systemd]. Tako takes care of versioned image acquisition and\nautomatic updates.\n\n## Documentation\n\n * [Overview](docs/index.md)\n * [Downloading Images](docs/downloading-images.md)\n * [Distributing Images](docs/distributing-images.md)\n * [Configuration](docs/configuration.md)\n * [Versions](docs/versions.md)\n * [`tako fetch`](docs/tako-fetch.md)\n * [`tako store`](docs/tako-store.md)\n * [`tako gen-key`](docs/tako-gen-key.md)\n * [Manifest Format](docs/manifest-format.md)\n\n## Goals\n\nGoals:\n\n * Securely downloading signed images.\n * Implement a versioning policy, to be able to download the latest compatible\n   version of an image. Automatic security updates, but not new versions with\n   breaking changes without manual intervention.\n\nNon-goals:\n\n * Reinvent apt packaging. In particular: no scriptable install steps or\n   extensive metadata. Just a signed filesystem image. Not even systemd unit\n   files.\n * Delivering multiple files. Tako can download a tar archive, but it will not\n   extract it for you.\n * Be a container runtime. Systemd is a decent container runtime.\n\n## Building\n\n    cargo build --release\n    target/release/tako --help\n\n## Future work\n\n * GC'ing the local store.\n * Differential updates. (Bsdiff, Casync?)\n\n[containers-systemd]: https://media.ccc.de/v/ASG2017-101-containers_without_a_container_manager_with_systemd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruuda%2Ftako","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruuda%2Ftako","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruuda%2Ftako/lists"}