{"id":46615924,"url":"https://github.com/cboone/snappy","last_synced_at":"2026-04-02T16:12:05.252Z","repository":{"id":341880455,"uuid":"1169451639","full_name":"cboone/snappy","owner":"cboone","description":"Frequent, automatic, super fast, lightweight snapshot backups of your entire drive","archived":false,"fork":false,"pushed_at":"2026-03-24T22:01:23.000Z","size":3206,"stargazers_count":1,"open_issues_count":14,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-25T20:00:51.406Z","etag":null,"topics":["backups","macos","snapshot-backup","snapshots","time-machine"],"latest_commit_sha":null,"homepage":"https://snappy.sh","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cboone.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-28T17:54:29.000Z","updated_at":"2026-03-24T22:01:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cboone/snappy","commit_stats":null,"previous_names":["cboone/snappy"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/cboone/snappy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboone%2Fsnappy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboone%2Fsnappy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboone%2Fsnappy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboone%2Fsnappy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cboone","download_url":"https://codeload.github.com/cboone/snappy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboone%2Fsnappy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31309722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","macos","snapshot-backup","snapshots","time-machine"],"created_at":"2026-03-07T20:05:47.635Z","updated_at":"2026-04-02T16:12:05.243Z","avatar_url":"https://github.com/cboone.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Snappy\n\n[![Snappy the Swamp Protector vs The Rusty Clanker](./docs/images/scary-snappy-4x1.jpg)](https://snappy.sh)\n\n[![GitHub branch check runs](https://img.shields.io/github/check-runs/cboone/snappy/main?style=for-the-badge\u0026label=tests\u0026labelColor=f3eecd\u0026color=81834a)](https://github.com/cboone/snappy/actions) [![Go Report Card](https://img.shields.io/badge/go%20report%20card-A+-important?style=for-the-badge\u0026labelColor=f3eecd\u0026color=81834a)](https://goreportcard.com/report/github.com/cboone/snappy) ![macOS 11+](https://img.shields.io/badge/macOS-11+-critical?style=for-the-badge\u0026labelColor=f3eecd\u0026color=b18655) [![MIT License](https://img.shields.io/github/license/cboone/snappy?style=for-the-badge\u0026labelColor=f3eecd\u0026color=b18655\u0026)](./LICENSE)\n\n[**Quick Start**](#quick-start) ・ [**Why Use Snappy?**](#why-use-snappy) ・ [**Installation**](#installation) ・ [**Usage**](#commands-and-options) ・ [**Restoring Files and Snapshots**](#restoring-files-and-snapshots) ・ [**Limitations**](#limitations) ・ [**Full ToC**](#table-of-contents)\n\n**Frequent, automatic, super fast, lightweight snapshot backups of your entire drive.** Snappy uses the macOS built-in snapshotting system to allow easy access to and rollbacks of individual files, directories, or the entire disk.\n\n`brew install cboone/tap/snappy-tm` then `snappy service install` and it's installed and snapshotting. Run `snappy` on its own to see the status of your snapshots, view your config, and mount your snapshot backups to restore files.\n\n**Snappy only runs on macOS.** It relies on [`tmutil`](https://man.freebsd.org/cgi/man.cgi?query=tmutil\u0026manpath=macOS+26.3) and [APFS snapshots](https://eclecticlight.co/2026/01/31/explainer-snapshots-2/). If you're on Linux, [`zsh-auto-snapshot`](https://manpages.debian.org/trixie/zfs-auto-snapshot/zfs-auto-snapshot.8.en.html) is a good option (and is what inspired Snappy in the first place). AFAICT, it should work on pretty much any macOS version since 11 (macOS Big Sur), when [Time Machine](https://en.wikipedia.org/wiki/Time_Machine_%28macOS%29) began to use APFS snapshotting.\n\n\u003e [!TIP]\n\u003e **You don't need to use Time Machine for Snappy to work.** You can use [Time Machine's fancy UI](#using-time-machine-to-scrub-through-history) to view your backups and restore files if you want, or you can use [Snappy's snapshot mounting](#mounting-snapshots) to browse and restore your files via the Finder. None of the functionality requires Time Machine to be enabled, even using the Time Machine UI to view backups. You do get [a longer snapshot history](#configuring-time-machine) if you enable Time Machine local snapshots, but that's optional.\n\u003e\n\u003e You barely even need Snappy, for that matter. It provides easy setup, handy config options (with good defaults), a TUI to view and manage your snapshots, commands to mount your snapshots, and a few other niceties. But at its core, Snappy's a glorified Bash script cron job. So much so that I've included a super simple Bash script you could use instead, if you want frequent snapshots without installing a binary and are happy using `tmutil`, `diskutil`, and `asr` to manage the rest: [`snappy-ez`](./bin/snappy-ez). More details on [how to use it](#snappy-ez) below.\n\n**AI usage:** Snappy is a 3 out of 5 on [my personal vibes scale](#vibes), meaning that the code and tests were written by LLMs micro-managed by me. Robot code; human architecture, design (in all senses), code review, and manual testing. I wrote this README; other docs are a mix. Read more about my use of LLMs and my workflow in [my AI transparency statement](#ai-transparency). Also see my note about [LLMs and copyright and licensing](#license).\n\n## Why Use Snappy?\n\nTo add to your local hard drive's safety net. By default, Snappy tells macOS to take a complete snapshot of your drive every minute, then thins those snapshots down to 5 minute increments after 10 minutes. Then macOS thins backups older than 1 hour to hourly, then reduces the frequency to daily after 1 day, and weekly after 1 week.[\u003csup\u003e✻\u003c/sup\u003e](#how-time-machine-works)\n\n```text\nnow            -10 min          -1 hour          -1 day           -1 week\n ├────────────────┼────────────────┼────────────────┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╶╶╶\n │||||||||||||||||│ |  |  |  |  |  |   |   |    |   │        |       │\n │  every minute  │  every 5 min   │     hourly     │      daily     │  weekly\n ╰──────────── Snappy ─────────────┴────  macOS ────┴╌╌╌╌╌╌╌╌╌ Time Machine ╶╶╶\n```\n\nThese snapshots are complete clones of your hard drive, stored exactly as it was at the moment the snapshot was taken. Because of the copy-on-write cloning technique they use, minimal storage is needed for each one. Megabytes or gigabytes per clone on a many-terabyte file system, typically. This is what allows you to save so many copies of everything on your drive.\n\nHopefully you'll install Snappy and let it run and rarely think about it. But if something goes wrong, like an LLM agent deleting what it shouldn't, a ransomware attack encrypting your sensitive data, an installation gone bad, or just a simple mistake, you can easily restore your files, your directories, or even your entire drive.\n\nSee below for more on [How Snappy Works](#how-snappy-works), [How to Configure Snapshot Frequency](#configuration), and [How to Restore Files and Snapshots](#restoring-files-and-snapshots).\n\n### Why Not Just Use Time Machine?\n\nYou should [use Time Machine](https://support.apple.com/en-us/104984), it's great. You should use Time Machine both for its ability to create incremental backups on an external drive (its documented and marketed use) and for its ability to create local APFS snapshots. But the most often Time Machine will create local snapshots is once every hour. Snappy increases that frequency dramatically (and allows you to customize it).\n\nIs once every hour good enough for you? Then just use Time Machine, it's simple and works great. Want more? Use Snappy, it's also simple and automatic and is completely integrated into Time Machine's existing capabilities.\n\n## Quick Start\n\nInstall Snappy via [Homebrew](https://brew.sh):\n\n```sh\nbrew install cboone/tap/snappy-tm\n```\n\nThen start the background service so snapshots are taken automatically:\n\n```sh\nsnappy service install\n```\n\nThat installs the `snappy` command, along with shell completions and a man page, and sets up Snappy to run every minute. Until something goes wrong, that's really all you need to do.\n\nTo open Snappy's TUI, just run `snappy`. You'll see what snapshots have been taken and information about them, logs of all Snappy's and macOS's snapshot management activities. You can delete or thin snapshots to clear up space. Most importantly, you can mount snapshots as read-only local drives to browse and restore files.\n\nAll of this can be done non-interactively as well via various [commands and options](#commands-and-options). Read more below, or run `snappy help` or `man snappy`. Also, see below for more on [How Snappy Works](#how-snappy-works), [How to Configure Snapshot Frequency](#configuration), and [How to Restore Files and Snapshots](#restoring-files-and-snapshots).\n\n## Table of Contents\n\n[**Introduction**](#snappy) ・ [**Why Use Snappy?**](#why-use-snappy) ・ [**Why Not Just Use Time Machine?**](#why-not-just-use-time-machine) ・ [**Quick Start**](#quick-start)\u003cbr\u003e\n[**Restoring Files and Snapshots**](#restoring-files-and-snapshots) ・ [**Using Time Machine to Scrub Through History**](#using-time-machine-to-scrub-through-history) ・ [**Mounting Snapshots**](#mounting-snapshots) ・ [**Opening Previous File Revisions Within Apps**](#opening-previous-file-revisions-within-apps) ・ [**Restoring Your Entire Drive**](#restoring-your-entire-drive)\u003cbr\u003e\n[**Installation**](#installation) ・ [**Homebrew**](#homebrew-recommended) ・ [**Shell Script**](#shell-script) ・ [**GH Release**](#gh-release) ・ [**Shell Completions**](#shell-completions)\u003cbr\u003e\n[**Commands and Options**](#commands-and-options) ・ [**Interactive TUI**](#interactive-tui) ・ [**Background Service**](#background-service)\u003cbr\u003e\n[**Configuration**](#configuration) ・ [**Generate a Config File**](#generate-a-config-file) ・ [**View Configuration**](#view-configuration) ・ [**Configuration Settings**](#configuration-settings) ・ [**Configuring Time Machine**](#configuring-time-machine)\u003cbr\u003e\n[**How Snappy Works**](#how-snappy-works) ・ [**How Time Machine Works**](#how-time-machine-works)\u003cbr\u003e\n[**snappy-ez**](#snappy-ez) ・ [**Download**](#download) ・ [**Run in the Foreground**](#run-in-the-foreground) ・ [**Run in the Background**](#run-in-the-background) ・ [**Customize**](#customize)\u003cbr\u003e\n[**Background**](#background)\u003cbr\u003e\n[**Limitations**](#limitations) ・ [**Comparison**](#comparison) ・ [**Open Questions**](#open-questions) ・ [**To Document**](#to-document)\u003cbr\u003e\n[**Vibes**](#vibes) ・ [**AI Transparency**](#ai-transparency) ・ [**License**](#license)\n\n## Restoring Files and Snapshots\n\nUsing the Time Machine local snapshots gives you choices on how to undo errors and restore data. Again, none of these options requires that you [turn on Time Machine backups](#configuring-time-machine), though that does give you a longer snapshot history.\n\nTODO: Create screen recordings.\n\n### Using Time Machine to Scrub Through History\n\nThis is the fastest way to restore small numbers of files or directories.\n\nOpen the directory you want to restore in the Finder, then open [the Time Machine app](https://support.apple.com/guide/mac-help/restore-files-mh11422/mac). (Via Spotlight is probably the easiest way.) Time Machine's fancy history browser will take over and you can move forward and back through the history of your file system. Select as much or as little as you'd like to restore (from one file to a whole disk) and click the `Restore` button.\n\nYou can't open the files from within Time Machine, but you can use Quick Look on them to preview the contents. Double click, press space bar, or right click and choose `Quick Look`.\n\n### Mounting Snapshots\n\nTODO: Finalize in-Snappy commands and document.\n\nYou can also use Disk Utility\u003csup\u003e✻\u003c/sup\u003e to view and manage snapshots. Select `Show APFS Snapshots` from the `View` menu to see the current list. Double click a snapshot and it will mount and open in the Finder. You can also rename and delete snapshots this way. Read more at [the Eclectic Light Company blog](https://eclecticlight.co/2021/11/09/disk-utility-now-has-full-features-for-managing-snapshots/).\n\n✻ `/Applications/Utilities/Disk Utility.app`\n\nTODO: Document using `diskutil`.\n\n### Opening Previous File Revisions Within Apps\n\nIf you just need to restore an earlier version of a single file and that file is open in a native macOS app, then [the fastest way to roll it back](https://support.apple.com/guide/mac-help/view-and-restore-past-versions-of-documents-mh40710/26/mac/26) is to select `Revert To \u003e Browse All Versions` from the `File` menu. You'll find yourself in a version of the Time Machine history scrubber, but just for that file. Click `Restore` to get that version back, or press `option`and click `Restore a Copy`to open that version in a new file.\n\n### Restoring Your Entire Drive\n\nTODO: Document GUI and `asr` procedures.\n\n## Installation\n\n### Homebrew (Recommended)\n\nThe simplest method is via [Homebrew](https://brew.sh):\n\n```sh\nbrew install cboone/tap/snappy-tm\nsnappy service install\n```\n\nThat installs the `snappy` command, along with shell completions and a man page, and installs the background service so that Snappy runs every minute.\n\n### Shell Script\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/cboone/snappy/main/install.sh | bash\n```\n\nTo install a specific version:\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/cboone/snappy/main/install.sh | bash -s -- --version v1.0.0\n```\n\n### GH Release\n\nTODO: Document.\n\n```sh\ngh release ...\n```\n\n### Shell Completions\n\nHomebrew and `install.sh` install shell completions automatically. If you need to set them up manually, use the `snappy completion` command:\n\n#### Bash\n\n```bash\nsnappy completion bash \u003e \"$(brew --prefix)/etc/bash_completion.d/snappy\"\n```\n\n#### Zsh\n\n```bash\nsnappy completion zsh \u003e \"$(brew --prefix)/share/zsh/site-functions/_snappy\"\n```\n\nIf you're not using Homebrew, place the file in any directory in your `fpath`:\n\n```bash\nsnappy completion zsh \u003e ~/.zsh/completions/_snappy\n```\n\nThen ensure the directory is in your `fpath` and `compinit` is loaded in `~/.zshrc`:\n\n```bash\nfpath=(~/.zsh/completions ${fpath})\nautoload -Uz compinit \u0026\u0026 compinit\n```\n\n#### Fish\n\n```bash\nsnappy completion fish \u003e ~/.config/fish/completions/snappy.fish\n```\n\nOpen a new shell session after installation to activate completions.\n\n## Commands and Options\n\nRun `snappy help` or `snappy help \u003ccommand\u003e` for detailed usage. Or read the man page: `man snappy`.\n\n| Command              | Description                                           |\n| -------------------- | ----------------------------------------------------- |\n| `snappy`             | Launch the interactive TUI                            |\n| `snappy completion`  | Generate shell completions (bash/zsh/fish/PowerShell) |\n| `snappy config`      | Show active configuration                             |\n| `snappy config init` | Create a default config file                          |\n| `snappy create`      | Create a new local Time Machine snapshot              |\n| `snappy list`        | List snapshots with details                           |\n| `snappy run`         | Run the auto-snapshot loop in the foreground          |\n| `snappy service ...` | Manage the background service                         |\n| `snappy status`      | Show Time Machine and disk status                     |\n| `snappy thin`        | Thin old snapshots based on configured cadence        |\n| `snappy version`     | Print the version number                              |\n| `snappy help`        | Show help for any command                             |\n\n| Flag              | Description                                           |\n| ----------------- | ----------------------------------------------------- |\n| `--config \u003cpath\u003e` | Config file (default: `~/.config/snappy/config.yaml`) |\n| `-h`, `--help`    | Show help for the current command                     |\n| `-v`, `--version` | Print the version number                              |\n\n### Interactive TUI\n\nRunning `snappy` with no command launches the interactive TUI:\n\n![Snappy TUI showing the info panel, snapshot list, and log](./docs/images/tui-b1a8e61.png)\n\n### Background Service\n\nSnappy can run as a macOS LaunchAgent, taking snapshots and thinning old ones automatically in the background. The service starts at login and restarts if it exits unexpectedly.\n\n#### Install the Background Service\n\n```sh\nsnappy service install\n```\n\nThis generates a launchd plist, loads it, and starts the service immediately. You only need to run this once.\n\n#### Manage the Background Service\n\n| Command                    | Description                             |\n| -------------------------- | --------------------------------------- |\n| `snappy service`           | Show service status (default)           |\n| `snappy service status`    | Show service status                     |\n| `snappy service install`   | Install the plist and start the service |\n| `snappy service uninstall` | Stop the service and remove the plist   |\n| `snappy service start`     | Start a stopped service                 |\n| `snappy service stop`      | Stop the running service                |\n| `snappy service log`       | Tail the service log (`Ctrl-C` to exit) |\n\n#### TUI and Service Coexistence\n\nOnly one auto-snapshot routine runs at a time. When the background service is active, the TUI detects it and disables its own auto-snapshot loop. The TUI header shows \"service\" next to the auto-snapshot indicator so you know the background service is handling it. You can still use the TUI to create manual snapshots, browse snapshot history, mount snapshots, and manage thinning.\n\n## Configuration\n\nSnappy reads configuration from `~/.config/snappy/config.yaml` or environment\nvariables prefixed with `SNAPPY_`. Pass `--config \u003cpath\u003e` to use a custom file.\n\n### Generate a Config File\n\nCreate a default config file with all settings and comments:\n\n```sh\nsnappy config init\n```\n\nThis writes to `~/.config/snappy/config.yaml` (or the path given by\n`--config`). The command will not overwrite an existing file.\n\n### View Configuration\n\nShow the active configuration, including values from the config file,\nenvironment variables, and defaults:\n\n```sh\nsnappy config\n```\n\n### Configuration Settings\n\n| Setting                  | Env var                         | Default   | Description                        |\n| ------------------------ | ------------------------------- | --------- | ---------------------------------- |\n| `auto_enabled`           | `SNAPPY_AUTO_ENABLED`           | `true`    | Enable auto-snapshots at startup   |\n| `auto_snapshot_interval` | `SNAPPY_AUTO_SNAPSHOT_INTERVAL` | `60s`     | Interval between auto-snapshots    |\n| `log_dir`                | `SNAPPY_LOG_DIR`                | (auto)    | Log directory path                 |\n| `log_max_files`          | `SNAPPY_LOG_MAX_FILES`          | `3`       | Number of rotated backup files     |\n| `log_max_size`           | `SNAPPY_LOG_MAX_SIZE`           | `5242880` | Max log file size in bytes (5 MB)  |\n| `refresh`                | `SNAPPY_REFRESH`                | `60s`     | How often to refresh snapshot list |\n| `thin_age_threshold`     | `SNAPPY_THIN_AGE_THRESHOLD`     | `600s`    | Age before snapshots are thinned   |\n| `thin_cadence`           | `SNAPPY_THIN_CADENCE`           | `300s`    | Minimum gap kept when thinning     |\n\n### Configuring Time Machine\n\nTODO: Write.\n\n## How Snappy Works\n\nTODO: Write.\n\n### How Time Machine Works\n\n```text\nnow            -1 hour          -1 day           -1 week\n ├────────────────┼────────────────┼────────────────┼────╶╶╶╶╶╶\n │                |   |   |    |   │        |       │\n │                │     hourly     │      daily     │  weekly\n ╰────────────────┴────────── Time Machine ─────────┴────╶╶╶╶╶╶\n```\n\n## snappy-ez\n\nA standalone bash script that provides snappy's core functionality (create\nsnapshots, thin old ones, log state) without the TUI, Go, or a build step.\nDownload it, edit the constants, and run.\n\n### Download\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/cboone/snappy/main/bin/snappy-ez -o snappy-ez\nchmod +x snappy-ez\n```\n\n### Run in the Foreground\n\n```sh\n./snappy-ez\n```\n\nPress `Ctrl-C` to stop.\n\n### Run in the Background\n\n```sh\n./snappy-ez \u003e\u003e ~/snappy-ez.log 2\u003e\u00261 \u0026\ntail -f ~/snappy-ez.log    # monitor\nkill %1                     # stop\n```\n\n### Customize\n\nEdit the constants at the top of the script:\n\n| Constant             | Default | Description                                   |\n| -------------------- | ------- | --------------------------------------------- |\n| `SNAPSHOT_INTERVAL`  | `60`    | Seconds between snapshots                     |\n| `THIN_AGE_THRESHOLD` | `600`   | Snapshots younger than this are never thinned |\n| `THIN_CADENCE`       | `300`   | Minimum gap between kept old snapshots        |\n\n## Background\n\nI began building it to replicate the functionality of [`zsh-auto-snapshot`](https://manpages.debian.org/trixie/zfs-auto-snapshot/zfs-auto-snapshot.8.en.html), which allows Linux users (who are using [the zfs filesystem](https://en.wikipedia.org/wiki/ZFS)) to...\n\nTODO: Write.\n\n## Limitations\n\nTODO: Write.\n\n## Comparison\n\nThere are other good tools that provide similar functionality.\n\nTODO: Write.\n\n## Open Questions\n\nDetails I haven't yet resolved with my own experimentation and haven't found definitive answers for on the web:\n\n- [ ] How does TM manage local snapshots when the remote backup disk isn't connected?\n  - [ ] Does it keep taking hourly snapshots?\n  - [ ] How does it manage thinning?\n- [ ] Is a new snapshot taken every time you manually trigger a TM backup?\n- [ ] Can non-system drives be handled in the same way?\n- [ ] Can snapshots be transferred, à la zfs?\n- [ ] Do the TM backup exclusions apply to local snapshots?\n- [ ] It appears that without TM local backups enabled, macOS prevents snapshots from being kept longer than 24 hours. Is this still true with TM local backups only enabled? With remote backups only enabled?\n- [ ] How long does TM keep the weekly snapshots?\n\n## To Document\n\n- [ ] Using `asr`, `diskutil`, `tmutil`\n\n## Vibes\n\nTODO: Write.\n\n## AI Transparency\n\nTODO: Write.\n\n## License\n\n[MIT License](./LICENSE). TL;DR: Do whatever you want with this software, just keep the copyright notice included. The authors aren't liable if something goes wrong.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcboone%2Fsnappy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcboone%2Fsnappy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcboone%2Fsnappy/lists"}