Skip to main content

Docker-like manager for virtualenvs

Project description

vocker

Manager for complete Python environments written with security in mind. Mostly for Windows.

Why

OK so here's a typical experience. You're working on different Python projects which require incompatible versions of dependencies. For example, one of them needs libfoo==1.0.0 and the other needs libfoo>3.0.0. There's just no way to satisfy both. Python people encourage you to create different virtualenvs ("venvs") for different purposes. Sometimes a user reports a bug that they experience with some very specific version of a dependency, so you need to create yet another venv just to investigate that.

Here's a problem: every venv you install takes up a few hundred megabytes of disk space, and a lot of it is for completely redundant files. You were conned into buying an overpriced non-modular computer, so now your tiny non-upgradeable SSD space is now filled with many copies of the same files. You regret your life choices. Wouldn't it be nice if the duplicate files across different venvs didn't take up any additional space?

Users often report bugs against very specific versions of your software, and the café you work at has pretty slow WiFi. Installing hundreds of megabytes of the same packages over and over quickly grows tiresome. Wouldn't it be nice if you could just copy an existing venv and just tweak it a bit, for example replace the few packages that are actually different?

Finally, some of your nontechnical users refuse to compile and install their own software, but they do want to sometimes have multiple versions installed for testing purposes. However, they also bought non-upgradeable hardware so they don't want multiple copies of the same files that are identical across different versions of the software. Wouldn't it be nice if installing a new venv somehow recycled the existing files from the currently-installed venvs?

Some of your users are paranoid about security. Wouldn't it be nice if the software integrity of the venv-based software package were guaranteed through hashing and Merkle trees?

That's why.

Goals

  • Developers can easily create images, and then distribute them to users who use them to run applications. The users don't necessarily use vocker directly to create containers, they may use some extra layer on top of it (like an installer that provides a GUI and maybe digital signature verification).
  • Developers can easily create images from existing images by tweaking whatever needs to be different. For example, installing new software or modifying files.
  • Image creation should be reproducible. That is, creating a Python environment and then turning it into an image should give you exactly the same image if you do that a second time. The resulting image hash should be identical.
  • Developers can easily audit existing images by just rebuilding them from scratch and checking whether the final result is the same.

Non-goals

  • Digital signature verification.

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

vocker-0.4.0.tar.gz (74.3 kB view details)

Uploaded Source

Built Distribution

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

vocker-0.4.0-py3-none-any.whl (58.4 kB view details)

Uploaded Python 3

File details

Details for the file vocker-0.4.0.tar.gz.

File metadata

  • Download URL: vocker-0.4.0.tar.gz
  • Upload date:
  • Size: 74.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for vocker-0.4.0.tar.gz
Algorithm Hash digest
SHA256 909e03a6fa5d3c5ec8804c4aebd754483578097f8cbdcf2cd0b62c9ea248ee7d
MD5 67efe9ec91b5c78f5fafad4337d30e73
BLAKE2b-256 b5770ef53711d14900142b3078f4af3c1e2bc65167e6cf242ef925e0380344b7

See more details on using hashes here.

File details

Details for the file vocker-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: vocker-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 58.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for vocker-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab6807bbb8766d43c54550814428c80d0b0ec221c503d2558c1b502e78c84dd5
MD5 2fbcf5b8e4d10b5894bffd8d8d712f97
BLAKE2b-256 a4c34063c0dd6337b1c14cc51f25d696f99b55d52ec85aee56b99cabf9cb06f7

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