{"id":13535868,"url":"https://github.com/swampapp/swamp","last_synced_at":"2026-01-12T02:32:57.841Z","repository":{"id":45885484,"uuid":"329051127","full_name":"swampapp/swamp","owner":"swampapp","description":"Navigate your backed up data without drowning.","archived":false,"fork":false,"pushed_at":"2022-04-27T22:46:00.000Z","size":14851,"stargazers_count":56,"open_issues_count":18,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-03T00:32:53.760Z","etag":null,"topics":["backups","bleve","gnome","gotk3","restic"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swampapp.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":"2021-01-12T16:48:14.000Z","updated_at":"2024-08-01T16:05:38.000Z","dependencies_parsed_at":"2022-09-13T16:00:50.914Z","dependency_job_id":null,"html_url":"https://github.com/swampapp/swamp","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swampapp%2Fswamp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swampapp%2Fswamp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swampapp%2Fswamp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swampapp%2Fswamp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swampapp","download_url":"https://codeload.github.com/swampapp/swamp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246743701,"owners_count":20826589,"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":["backups","bleve","gnome","gotk3","restic"],"created_at":"2024-08-01T09:00:30.753Z","updated_at":"2026-01-12T02:32:57.829Z","avatar_url":"https://github.com/swampapp.png","language":"Go","funding_links":[],"categories":["Go","Archived / Inactive"],"sub_categories":[],"readme":"![](docs/images/banner.jpg)\n\n# Swamp\n\nA GNOME application to index, search, stream, download and export files in [Restic](https://restic.net) repositories.\n\n[Quick start guide](docs/quickstart.md).\n\n**⚠️ Currently alpha quality:**\n\n* [Ubuntu Desktop 20.04](https://releases.ubuntu.com/20.04) (with GNOME) is the only environment currently supported\n* It may crash often\n* It may behave unreliably\n* The on-disk data and index format may change before the final release, and data migration isn't guaranteed, forcing you to re-index your repositories eventually\n* It may have obvious and important issues that could compromise the safety and security of your data\n* Large chunks of the code are still in a PoC state and may lack readability, proper error handling or reporting\n* Some functionality is still missing\n\nThere's a more comprehensive overview of what's missing for those technically inclined or willing to contribute in the [release plan document](docs/release_plan.md).\n\n## Features\n\n### Read-only\n\nSwamp doesn't write to your Restic repository. It works just fine with read-only repositories.\n\n### Desktop integration\n\nThe GNOME keyring is the place where the repository credentials are stored. Other features like [MPRIS](https://specifications.freedesktop.org/mpris-spec/latest/) (to play media files) and [UPower](https://upower.freedesktop.org/) (to prevent the indexing process when on battery) are planed.\n\nDark/Light themes are also supported.\n\n![](docs/images/dark-light.png)\n\n### Supports any Restic backend\n\nSwamp is powered by [Restic](https://restic.net), meaning that it can index and search S3, Rest Server, local, rclone backends, etc. (Limited to S3, local and rest in the current alpha version)\n\n### Powerful query language\n\nSwamp uses and extends [the Bleve query language](https://blevesearch.com/docs/Query/) to make locating/searching for backed up files easy.\n\n![](docs/images/search.png)\n\nWith the query language you can do things like:\n\n* Search for files bigger or smaller than a given size\n* Find duplicated files\n* Find documents, videos, audio files, etc easily\n* Find recently backed up files\n* Find recently modified files\n\nAnd much more. See the ![query language tutorial](docs/queries.md) for some additional examples.\n\n### Reasonably fast indexing\n\nCapable of indexing 1000+ files per second in a regular laptop. Polls for new Restic snapshots regularly to index them automatically.\n\n![](docs/images/swamp-index.gif)\n\n### Tagger\n\nTag you backed up files to quickly locate them later.\n\n![](docs/images/tags.png)\n\n### Multiple repositories\n\nSupports indexing and searching multiple Restic repositories. The author uses Restic repositories as \"append-only, deduplicated and encrypted storage servers\" (where files are never pruned/deleted) and shares some of those repositories with family members and friends, so Swamp tries to make it easier to search across them (the main motivation behind creating Swamp).\n\n### Stream Download and Export your backed up data\n\nSwamp can stream your video or audio files or download/export any file and version to the desired location.\n\n![](docs/images/menu.png)\n\n### Keyboard friendly\n\nSwamp provides quick access to the most important features via keyboard shortcuts.\n\nSee [keyboard shortcuts documentation](docs/keyboard-shortcuts.md).\n\n### Command line interface\n\nSwamp includes a command line interface (`swp`) to query the repositories after being indexed.\n\n![](docs/images/cli.png)\n\n## Quick Start Guide\n\nThe [quick start guide](docs/quickstart.md) will get you started with swamp. Don't worry, if you already know Restic, this will be a walk in the park.\n\n## Developer resources\n\n### Building from source\n\n**Needs** [Go 1.16](https://golang.org/dl/#unstable), currently in beta.\n\nInstall the required dependencies and run `make`:\n\n```\nsudo apt install build-essential libgtk-3-dev libcairo2-dev libglib2.0-dev libglib2.0-dev-bin upx\nmake\n```\n\n### Architecture\n\nSee [architecture.md](docs/architecture.md)\n\n### Credits\n\n* Awesome logos from [@blackirin](https://github.com/blackirin)\n* Animated gifs from [loading.io](https://loading.io)\n* Application icons ([Qogir](https://github.com/vinceliuice/Qogir-icon-theme), [Tela](https://github.com/vinceliuice/Tela-icon-theme), [We10x](https://github.com/yeyushengfan258/We10X-icon-theme), [Infinity Lavender](https://www.gnome-look.org/p/1457365), [McMuse](https://github.com/yeyushengfan258/McMuse-icon-theme))\n* [Restic](https://github.com/restic/restic) code is used by swamp via [RAPI](https://github.com/rubiojr/rapi)\n* [Bluge](https://github.com/blugelabs/bluge) powers repository indexing and search (via [rindex](https://github.com/rubiojr/rindex))\n* [Gotk3](https://github.com/gotk3/gotk3) is the graphical toolkit doing the pixel pushing\n* [Keyring](https://github.com/zalando/go-keyring) provides access to the GNOME keyring\n* A few libraries from the amazing [@muesli](https://github.com/muesli)\n* [Zerolog](https://github.com/rs/zerolog) for superb structured logging\n* [Go LevelDB](https://github.com/syndtr/goleveldb) to store out-of-the-index bits used by Swamp\n* [CLI](https://github.com/urfave/cli), my favorite command line parser\n* [Humanize](https://github.com/dustin/go-humanize) makes some numbers easily parseable by humans\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswampapp%2Fswamp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswampapp%2Fswamp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswampapp%2Fswamp/lists"}