Skip to main content

A modern git based age-encrypted secrets manager for teams.

Project description

The cottage logo

Cottage Verify Crates.io Version PyPI - Version Docker Image Version

cottage is a GitOps tool for teams to manage age-encrypted secrets in git repositories.

It provides a simple workflow to encrypt/decrypt secrets, manage recipients, and keep secrets out of the repo while still allowing for easy sharing via VCS. cottage also generates redacted previews of encrypted secrets for better visibility and supports both persistent and temporary decryption workflows, while ensuring secrets are never committed in plaintext.

Intro Demo

  1. Features
  2. Installation
  3. Quick Start
  4. GitOps
  5. Git Hooks
  6. Access Control
    1. Rules
    2. Verification
  7. Any Provider as Upstream
    1. Example plugins
  8. Sync with any device
  9. Learn More
  10. Troubleshooting
  11. Comparison
    1. age vs Other Encryption
    2. cottage vs SOPS
    3. cottage vs dotenvx
    4. cottage vs agebox
  12. License

Features

  • Exposure-safe: Uses Rust's type system to make sure bugs can never accidentally expose secrets.
  • Team-friendly: Share public keys (recipients) in the repo, keep private keys (identities) local.
  • Access Control: Simple allow/deny rules to control which secrets are encrypted for which recipients.
  • Manages .gitignore: Automatically updates .gitignore to keep unencrypted secrets out of the repo.
  • Previews: Generates timestamped redacted previews of encrypted secrets for better visibility.
  • Rich diffs: Keeps git diff clean & reviewable, while ctg diff shows diff of locally modified secrets with tracked encrypted counterparts.
  • Checksum verification: Prevents tampering by verifying that encrypted secrets and recipient lists match the metadata.
  • Git hooks: Easily set up git hooks to automatically check/encrypt secrets before commit and decrypt them after checkout.
  • Persistent secrets workflow: ctg decrypt/edit/sync keeps decrypted secrets on disk.
  • Temporary secrets workflow: ctg run (shortcut ctgx) decrypts secrets temporarily to run a command, then deletes them regardless of the command's success or failure.
  • Environment injection workflow: ctg env injects decrypted secrets as environment variables to run a command, without writing them to disk at all.
  • Clean up: ctg clean deletes all decrypted secrets from local repo to let you run your AI agents with a tiny bit less worry.
  • Supports jj and non-git directories: ctg init turns any directory into a secret store.
  • Sync with any provider: Lets you configure any provider with an API as the upstream, and start using ctg pull/diff/push like git pull/diff/push.
  • Sync with any device: Secrets encrypted with cottage and managed in a git repo can be synced across devices with Cottage Sync.

Installation

# rust: cargo-binstall/cargo
cargo binstall --locked cottage
cargo install --locked cottage

# python: pip/uv/uvx
pip install cottage
uv pip install cottage
uvx --from cottage ctg --version

# node: yarn/pnpm/npx
yarn global add @sayanarijit/cottage
pnpm add -g @sayanarijit/cottage
npx -p @sayanarijit/cottage ctg --version

Also available as docker images:

# Docker
docker run --rm -v $PWD:/app sayanarijit/cottage --version

# Podman
podman run --rm -v $PWD:/app quay.io/sayanarijit/cottage --version

Or download the latest release from GitHub.

Quick Start

Init project:

mkdir project && cd project

git init  # Optional, cottage works better with git but it's not required
ctg init  # Sets up the .cottage directory and necessary files

tree -a
# .
# ├ .cottage/           <- Auto-generated by `ctg init`
# │ ├ identity        <- Your private key, keep it safe. Move it to `~/.config/cottage/identity` to use it globally, or replace it with a soft link to one of your existing private keys.
# │ └ recipients/     <- This is where your team keeps the public keys of all the recipients.
# │     └ sayanarijit <- Your public key. Commit it. To use an existing public key, just copy (don't softlink) that key here.
# ├ .git/...
# ├ .gitattributes      <- Added `*.cott.age binary export-ignore filter=cottage-encrypted -diff` to avoid polluting git diff
# └ .gitignore          <- Added `/.cottage/identity` for obvious reasons

# You can run `ctg clean --all` anytime to clean up everything cottage ever did.

Create or edit a secret.

ctg edit secret.yml --clean    # Opens secret.yml in $EDITOR
ctg encrypt secret.yml --clean # Another way to encrypt secrets
# encrypt secret.yml
#    into secret.yml.cott.age
#    edit secret.yml.cott.toml
#    edit .gitignore
# delete secret.yml

Run a command with temporary decrypted secrets:

cat secret.yml
# cat: secret.yml: No such file or directory

ctg run kubectl apply -f secret.yml          # decrypts secret.yml.cott.age to secret.yml and runs the command
ctg run kubectl apply -f secret.yml.cott.age # also replaces the path argument with the decrypted file path
ctg run kubectl apply -f .                   # decrypts all .cott.age files in . and runs the command
ctg run ./deploy.sh                          # decrypts all .cott.age files in repo and runs the command

cat secret.yml
# cat: secret.yml: No such file or directory

Or use the shortcut:

ctgx ./deploy.sh  # same as ctg run -- ./deploy.sh

Run a command with secrets injected as environment variables, without writing to disk at all:

ctg env -- ./deploy.sh # Export secrets from .env.cott.age (default) without writing them to disk, then run deploy.sh
ctg env -F .env.prod.cott.age -- ./deploy.sh # exports from .env.prod.cott.age instead of .env.cott.age
ctg env -F secrets.json.cott.age -- printenv COTTAGE_SECRET # Also supports non-dotenv files.

GitOps

To share your secrets with team members, just push to the git repo.

git add .
git commit -m "Add secret.yml"
git push origin main

Ask your teammates to add their public keys to .cottage/recipients and push the changes. Then you can pull and re-encrypt the secrets for them.

git pull origin main

ctg sync  # or `ctg decrypt && ctg encrypt`
# encrypt secret.yml
#    into secret.yml.cott.age
#    edit secret.yml.cott.toml

ctg clean  # optional
# delete secret.yml

# review changes, commit and push
git add .
git commit -m "Add new recipient to secrets"
git push origin main

Now your teammates can pull the latest changes and decrypt secrets for themselves.

Git Hooks

You can use prek or pre-commit to set up git hooks to automatically check/encrypt secrets before commit and decrypt them after checkout.

See the example prek configuration here.

After adding the prek.toml file, run:

prek install
prek install --hook-type post-checkout
prek install --hook-type post-merge
prek install --hook-type post-rewrite

Access Control

Rules

In the metadata file, you can annotate which recipients the secret should be encrypted for. This allows you to have different secrets for different environments (e.g. staging vs production) and only encrypt them for the relevant recipients.

# secret.yml.cott.toml
[secret]
allow = ["sayanarijit"]  # Only encrypt for sayanarijit
# secret.yml.cott.toml
[secret]
deny = ["sayanarijit"]  # Encrypt for everyone except sayanarijit
# secret.yml.cott.toml
[secret]
allow = ["env/staging/*"]  # Supports glob patterns, only encrypt for recipients in env/staging
deny = ["env/staging/badservice"]  # Encrypt for everyone in env/staging except badservice

Deny rules take precedence over allow rules.

See metadata specification for more details.

Verification

You can run ctg verify in CI to verify that the encrypted secrets and recipient lists match the metadata rules, to prevent tampering.

# .github/workflows/cottage-verify.yml
name: Cottage Verify
on: [push, pull_request]
permissions:
  contents: read
jobs:
  verify-secrets:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Verify secrets
        run: docker run --rm -v "${{ github.workspace }}:/app" ghcr.io/sayanarijit/cottage verify

Any Provider as Upstream

With cottage, you can sync secrets with any provider that has an API, not just git.

For that, create a file named cottage.toml in the project root and configure the upstream settings.

See the example cottage.toml here and the secret specific upstream configuration here.

See an example plugin implementation here.

The workflow is similar to git, but instead of git pull and git push, you run ctg pull and ctg push to sync secrets with the configured upstream.

Example:

# Pull latest changes into local encrypted secrets
# Similar to `git pull origin`
ctg pull myvault

# Compare diff with local decrypted secrets
ctg diff

# Sync local decrypted secrets with local encrypted secrets
ctg sync

# Push changes from local encrypted secrets to upstream
# Similar to `git push origin main`
ctg push myvault

See upstream configuration specification for more details.

Example plugins

Cottage supports various plugin providers to sync your secrets. Ready-to-use plugin scripts are available in the examples/plugins directory:

Sync with any device

Use Cottage Sync to sync your secrets across your devices and browse without needing the CLI.

Learn More

See examples directory for more usage examples.

Troubleshooting

# See debug logs with -v, -vv or -vvv
ctg run -vvv -- ./deploy.sh

Comparison

age vs Other Encryption

age uses a modern, simple algorithm optimized for secure file encryption, with a focus on usability and minimal attack surface. It also supports SSH RSA and Ed25519 keys, though it's recommended to use different keys for separate purposes and scopes.

cottage vs SOPS

While SOPS and cottage have many overlapping features, cottage has the following advantages:

  • Auto manage .gitignore to ensure unencrypted secrets are never committed to git.
  • Encrypted secrets being pure age encrypted .age files, allows for better interoperability with a wider ecosystem of tools.
  • Cleaner diffs - unlike SOPS, which generates diffs for every value of every secret, even if the actual change is just adding/removing a recipient, cottage only generates one diff per file, explicitly pointing out the change in recipients checksum.

cottage vs dotenvx

cottage borrows the ctg env API from dotenvx.

  • Supports any file type, not just dotenv files.
  • Manages multiple secrets in a repo.
  • Access control rules to encrypt secrets for specific recipients.
  • Cleaner diffs - see cottage vs SOPS.

cottage vs agebox

agebox is very similar to cottage in core philosophy but lacks many features.

License

MIT OR Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cottage-0.6.5.tar.gz (9.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cottage-0.6.5-py3-none-win_arm64.whl (3.6 MB view details)

Uploaded Python 3Windows ARM64

cottage-0.6.5-py3-none-win_amd64.whl (3.9 MB view details)

Uploaded Python 3Windows x86-64

cottage-0.6.5-py3-none-win32.whl (3.7 MB view details)

Uploaded Python 3Windows x86

cottage-0.6.5-py3-none-musllinux_1_2_x86_64.whl (4.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

cottage-0.6.5-py3-none-musllinux_1_2_i686.whl (4.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

cottage-0.6.5-py3-none-musllinux_1_2_armv7l.whl (4.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

cottage-0.6.5-py3-none-musllinux_1_2_aarch64.whl (3.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

cottage-0.6.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

cottage-0.6.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (4.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

cottage-0.6.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

cottage-0.6.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (4.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

cottage-0.6.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

cottage-0.6.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

cottage-0.6.5-py3-none-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

cottage-0.6.5-py3-none-macosx_10_12_x86_64.whl (3.9 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file cottage-0.6.5.tar.gz.

File metadata

  • Download URL: cottage-0.6.5.tar.gz
  • Upload date:
  • Size: 9.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5.tar.gz
Algorithm Hash digest
SHA256 053425d46396c14adf51b6b46ead26f5a1feb66c4c163edfafeaacc588e2b7be
MD5 1845e2999cfe93f0cc1516574f053df4
BLAKE2b-256 0169a74ffac2d254901b4832c8b6cbd6c93fa48e882c9e358c5d28c0ce481dc2

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-win_arm64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-win_arm64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 a0a29567a74f0ecf69ccf8caa721ba9207ac04d0ee36a4e263a49e9c7e459209
MD5 1b0640d43db3ebd7cf33ffe19885603e
BLAKE2b-256 b42e215d97321e04cd2637329488a26ce47c0434e6ee4b991281f8e02a64e84d

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-win_amd64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b44b95b952c58365d817714daa50c0deb7db249163edd1eb345642689c19ed2a
MD5 318c9923781d2f39b3dab7454de73f95
BLAKE2b-256 a8b73a0aa5d42832749a8d280ac01629379ee4384ae1e89f528d58db26b4afae

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-win32.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-win32.whl
Algorithm Hash digest
SHA256 c5b317f8c3a8d0a215f4d63cdd6d7823ce84a48022e368f58cca2119cfa87ee1
MD5 165065257d13192b2f81e8d72cb6df6f
BLAKE2b-256 d4286fa9bc4ee546cfd51c9a2731fe983cdc6ec734860e69d73be72d101482bf

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: Python 3, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 134d3b32191cbceb6a5b7029f97d2df79b53b2dd1a5136452817a841fd35d9e6
MD5 22a6d1cad2b611ce9852670567caba2c
BLAKE2b-256 aa35c8230567270377aebdd177cf7cfe2be0cc38eb0172dff62be35c033f5baa

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-musllinux_1_2_i686.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: Python 3, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 da148d6afd84364c44a5d4e4c78e7379e7402aa869e31590212331d06729364b
MD5 107d36606d2ea9e31761f2a224e4f8c3
BLAKE2b-256 411515187eed3b8d65eb3c3213a2e9919aef00091c8352b8d90eabdcdd9d6885

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 a02026d5c2bc6960949c559342ffdeed961f2b8d464a970ed3ddf8a81326e7a4
MD5 382ed145dd5822f637588ef15d5cccb8
BLAKE2b-256 e130f51faeda0c9c8e323f399bcfce391d20506d37550c407b68458ba8ae50dc

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: Python 3, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b13fb47737d0897c2a1cf812dab370f4ce94e2b7acfd8bec12aacf621436e381
MD5 b0d833a8cac5bc69949727b21ba69872
BLAKE2b-256 934ae231eb688872fc77cff804f213fe3e1f74cb3c02c4421773b807664c1f64

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9e361268b822f9fe99b2632dae603ebbaff7b672cf8b2685cf1b235ac518fce
MD5 0d915b5cb708194d2bb597c06c43ab5d
BLAKE2b-256 0174cd6dc5ec2f57e987ed4ec1845f8dfcc241f5d8215dc2da72f721d82baedd

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: Python 3, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 98e04b14316c69417cfeb1b1983337f25371705222df06f67a1c987db41e6a19
MD5 11c77986b95f020cb7c7abcd63094248
BLAKE2b-256 3212261e9cfd07dadef0d2e4f67eae8c28cfc85dc0c177f2498e2f2cabe4bf23

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bbca38d7a47960ff2b74a4e24fc2cfab7f57dcec99c35c79a8bc785c43974f28
MD5 7310bc038565a6d1ae4b0aa50aadd8bb
BLAKE2b-256 8a2a2fc2f7e0ab3bd11f087f67995e47e5aeae58f44417f4ab8938e420d8b300

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: Python 3, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 22fcb7df28d427ae33d35255cacb6fa2b0bffe1c4fedf43818c23292bbc088a6
MD5 1ecee10b114857f81085c87885bb08a2
BLAKE2b-256 67e8446df76703f9c6a123c987af9e4651c14bc86aea2cbce7e155c2a1499bbc

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ed7d5d30914128910f72abba31dfc1b7ba9d23c5deced7422824e55dce3b9c03
MD5 a199de010c5f214955d9e66262e9da34
BLAKE2b-256 67ecd7799fd82048683bc7983e0e44369455b35b949e30c6007343f24748a942

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1445683c194839db368fa9d5af3c35dc6f1e2f9ea6ae24cf85c9aaf43ba69b3b
MD5 bb708cb1212e0f5314884c2e84a47857
BLAKE2b-256 c1277d3f3d02e061e2db023e745a301bca973a726e0d9e79f88a3d632577a599

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6a7490bb1a386bf712a6d8244ed5a305e198e7bb5e26758be4d596334ffc379
MD5 216899b5db88af127b2beb8f05049b30
BLAKE2b-256 26bdff01fc0e65f87f551301465a7e42f944458c091a218dec6cfd857a7882fb

See more details on using hashes here.

File details

Details for the file cottage-0.6.5-py3-none-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: cottage-0.6.5-py3-none-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: Python 3, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cottage-0.6.5-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 95974745ccd5825334fffbbe4ffdfef927478563e7fbaeb3a0e5c4839e140619
MD5 d86b7c8e006cd853bd86d2104d311ca2
BLAKE2b-256 07fa8e9cce7fd91dbda515eb25277fc9d29e008338ede4a82fa6cde23353fe8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page