{"id":18362384,"url":"https://github.com/minuscorp/tunisia","last_synced_at":"2025-06-14T21:33:53.135Z","repository":{"id":68063771,"uuid":"260208927","full_name":"minuscorp/Tunisia","owner":"minuscorp","description":"A local Carthage cache based on library version, toolchain, xcode and platform dependant. ","archived":false,"fork":false,"pushed_at":"2020-08-02T15:31:11.000Z","size":74,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T15:39:27.077Z","etag":null,"topics":["apple","cache","carthage","command-line-tool","framework","ios","mac","package-manager","swift","tvos","watchos"],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/minuscorp.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-30T12:43:51.000Z","updated_at":"2021-03-04T18:58:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"850234a5-5fd3-41e5-92d2-45881445feea","html_url":"https://github.com/minuscorp/Tunisia","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/minuscorp/Tunisia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minuscorp%2FTunisia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minuscorp%2FTunisia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minuscorp%2FTunisia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minuscorp%2FTunisia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minuscorp","download_url":"https://codeload.github.com/minuscorp/Tunisia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minuscorp%2FTunisia/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259887577,"owners_count":22926958,"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":["apple","cache","carthage","command-line-tool","framework","ios","mac","package-manager","swift","tvos","watchos"],"created_at":"2024-11-05T22:40:38.115Z","updated_at":"2025-06-14T21:33:53.127Z","avatar_url":"https://github.com/minuscorp.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tunisia\n![Build Status](https://github.com/minuscorp/Tunisia/workflows/Swift/badge.svg)\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/minuscorp/Tunisia)\n![License](https://img.shields.io/static/v1?label=License\u0026message=Apache\u0026color=blue)\n![Swift version](https://img.shields.io/badge/Swift-5.0-orange)\n![Twitter Follow](https://img.shields.io/twitter/follow/minuscorp?style=social)\n\nA Carthage local cache based on compiler, library and Xcode version.\n\n## What does Tunisia?\n\nTunisia caches your Carthage dependencies into a local cache using a number of common parameters that allows to have several Xcode, Swift or library versions installed and restored on demand with just **one compilation** per combination.\n\nThis means:\n\n1. ✅ No more build all dependencies with several Xcode version installed.\n2. ✅ No more recompiling over and over the same library when using different versions.\n3. ✅ Shared cache for all your projects! If a project already cached some dependency, it can be restored from a different one if a match is done.\n\n## Usage\n\n### Cache\n\nTo generate your cache with Tunisia make sure you make usage of its parameters:\n\n```\nUSAGE: tunisia cache [--force] [--destination-directory \u003cdestination-directory\u003e] [--working-directory \u003cworking-directory\u003e] \u003ccarthage-verb\u003e [\u003ccarthage-command\u003e ...]\n\nARGUMENTS:\n  \u003ccarthage-verb\u003e         The carthage verb to apply to Tunisia\n  \u003ccarthage-command\u003e      The carthage arguments to apply to Tunisia.\n\nOPTIONS:\n  --force\n  -d, --destination-directory \u003cdestination-directory\u003e\n                          The destination directory of the cache (default: file:///Users/minuscorp/Library/Caches/)\n  -w, --working-directory \u003cworking-directory\u003e\n                          The working directory from where to find the Cartfile (default:\n                          /Users/minuscorp/Documents/GitHub/Tunisia)\n  --version               Show the version.\n  -h, --help              Show help information.\n```\n\nFor example, if we're using the following carthage command to cache all of our depenedencies:\n```\ncarthage bootstrap --no-use-binaries --platform iOS\n```\nWith Tunisia you would:\n```\ntunisia bootstrap --no-use-binaries --platform iOS\n```\n\n![cache](https://media.giphy.com/media/QxXiVatN1Y72uKioOy/source.gif)\n\nThat's it. You just exchange `carthage` for `tunisia`.\n\nYou have several flags that you can prepend to the carthage verb (bootstrap, build) to configure Tunisia.\n\n### Restore\n\nTo restore a cache for your Cartfile, you can make use of Tunisia in his `restore` command:\n\n```\nUSAGE: tunisia restore [--cache-directory \u003ccache-directory\u003e] [--working-directory \u003cworking-directory\u003e] [\u003cdependencies-to-restore\u003e ...]\n\nARGUMENTS:\n  \u003cdependencies-to-restore\u003e\n                          The carthage dependencies to restore, defaults to all.\n\nOPTIONS:\n  -c, --cache-directory \u003ccache-directory\u003e\n                          The directory of the cache (default: file:///Users/minuscorp/Library/Caches/)\n  -w, --working-directory \u003cworking-directory\u003e\n                          The working directory from where to find the Cartfile (default:\n                          /Users/minuscorp/Documents/GitHub/Tunisia)\n  --version               Show the version.\n  -h, --help              Show help information.\n```\n\nThe usage of restore is even easier:\n\n```\ntunisia restore\n```\n\n![restore](https://media.giphy.com/media/fxHcOtbYhzzbnBMzLU/source.gif)\n\nAnd the tool makes all the heavy lifting under the hood.\n\n## Installation\n\n### Download Binary\n\n```\n$ curl -Ls https://github.com/minuscorp/Tunisia/releases/download/latest/tunisia.macos.zip -o /tmp/tunisia.macos.zip\n$ unzip -j -d /usr/local/bin /tmp/tunisia.macos.zip \n```\n\n### From Sources\nRequirements:\n\nSwift 5.0 runtime and Xcode installed in your computer.\n\n### Using Homebrew\n\n`brew tap minuscorp/tunisia`\n\n`brew install tunisia`\n\n### Building with Swift Package Manager\n\n```\n$ git clone https://github.com/minuscorp/Tunisia.git\n$ cd Tunisia\n$ make install\n```\n\n## Contact\n\nFollow and contact me on Twitter at [@minuscorp](https://twitter.com/minuscorp).\n\n## Contributions\n\nIf you find an issue, just [open a ticket](https://github.com/minuscorp/Tunisia/issues/new) on it. Pull requests are warmly welcome as well.\n\n## License\n\nModuleInterface is licensed under the Apache 2.0. See [LICENSE](https://github.com/minuscorp/Tunisia/blob/master/LICENSE) for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminuscorp%2Ftunisia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminuscorp%2Ftunisia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminuscorp%2Ftunisia/lists"}