Skip to content

tobybessant/protov

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Protov

protov-banner

No-nonsense version manager for Protocol Buffers (protoc). Clone and run — works on macOS and Linux. Requires Python 3.11+.

git clone https://github.com/tobybessant/protov.git ~/.protoc

Add to your shell profile:

export PATH="$HOME/.protoc/bin:$PATH"

That's it. protoc now routes through protov's shim.

Usage

protov add 28.3          # download + switch to a version
protov add 28.3 --pick   # choose a specific platform zip
protov ls                # list installed versions
protov use 28.3          # switch active version
protov rm 25.9           # remove a version

Versions are stored in ~/.protoc/versions/. The active version is a symlink at ~/.protoc/current.

How it works

Protov downloads prebuilt protoc binaries from the protocolbuffers/protobuf GitHub releases. Each version is extracted into ~/.protoc/versions/<version>/, and the active version is a symlink at ~/.protoc/current. A small bash shim at ~/.protoc/bin/protoc forwards all calls to the active version's binary.

Platform is auto-detected from uname. If detection is ambiguous, an interactive picker lets you choose from the available downloads.

Set PROTOV_HOME to override the default ~/.protoc root.

Config

Optional. Protov works out of the box without a config file.

protov config              # show current config
protov config init         # create default config file
protov config set <k> <v>  # update a setting

Config is stored at ~/.config/protov/config (respects XDG_CONFIG_HOME).

Setting Values Default Description
theme dark, light dark Light mode disables dim text for readability on light terminals

Contributing

No build step, no venv — just Python 3.11+ and uv.

uvx ruff check .              # lint
uvx ruff format --check .     # check formatting
uv run --with pytest pytest test_protov.py -v   # run tests

About

A no-nonsense protoc version manager

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors