https://github.com/amythicdev/zigverm
Version manager for the Zig Programming Language
https://github.com/amythicdev/zigverm
version-manager zig
Last synced: 3 months ago
JSON representation
Version manager for the Zig Programming Language
- Host: GitHub
- URL: https://github.com/amythicdev/zigverm
- Owner: AMythicDev
- License: apache-2.0
- Created: 2024-05-05T13:35:33.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-16T17:51:00.000Z (over 1 year ago)
- Last Synced: 2025-06-05T10:11:45.932Z (about 1 year ago)
- Topics: version-manager, zig
- Language: Zig
- Homepage:
- Size: 151 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# zigverm
zigverm is a version manager for the [Zig](https://ziglang.org) programming Language. It lets you install Zig and further manage your installation.
## Platform Support
Legend:
🎉 - Binary releases + automatic installer available
💪 - binary releases available
❌ - No binary releases. Maybe supported later. Requires [compiling](#compiling)
\- - Not applicable
| OS/Arch | x86_64 | x86 | aarch64 | armv7a | riscv64 |
| ------- | ------ | --- | ------- | ------ | ------- |
| Windows | 🎉 | 🎉 | ❌ | - | - |
| Linux | 🎉 | 🎉 | 🎉 | ❌ | ❌ |
| MacOS | 🎉 | - | 🎉 | - | - |
## Installation
### For Linux and MacOS (x86_64/aarch64)
You can use this automated install script which will install zigverm along with the latest version of Zig
```sh
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/AMythicDev/zigverm/main/scripts/install.sh | bash
```
By default it will create `$HOME/.zigverm` directory as the root folder for zigverm. You can customize
this by setting this by setting the `ZIGVERM_ROOT_DIR` to the directory where you want to install
zigverm. Make sire you add the `ZIGVERM_ROOT_DIR` in your shell config otherwise zigverm would not be able
to locate the installation folder.
The script will also put the installation directory's `bin` folder to your `$PATH` variable. For
this it will append a line to your `$HOME/.profile` and your shell's rc file. The file for each
shell supported is listed below:
- Bash: `$HOME/.bashrc`
- Zsh: `$HOME/.zshrc`
- Fish: `$XDG_CONFIG_HOME/fish/config.fish`, if not set then uses `$HOME/.config/fish/config.fish`
### For Windows
Download the automatic installer from the [Releases](https://github.com/AMythicDev/zigverm/releases) page and run it in Windows PowerShell.
Similar to Linux/MacOS, the `ZIGVERM_ROOT_DIR` enviroment variable can be set before running the automatic installer to set the zigverm install location.
### Compiling
Requirements:
- zigverm can only be compiled with Zig master for now, until Zig v0.16 is released.
- libc on non-Windows systems. Can be provided by Zig itself, if available for the platform.
- `git`, if you want to compile the latest commit or you want to develop `zigverm`.
Now to compile:
- Clone the repo or download a source archive depending on if you want to compile the latest `main`
branck or a release.
- Extract the archive and change into the extracted directory.
- Run the following command
```
zig build --release=safe
```
- If you are devloping `zigverm`, you can omit the `--release=safe` flag.
- You will have `zigverm` and `zig` in `zig-out/bin/` directory.
- Create the following folder structure in `~/.zigverm/`
```
.
├── bin
├── downloads
└── installs
```
- Copy `zigverm` and `zig` binaries to the `bin/` folder.
- Add the `bin/` directory to your PATH enviroment variable.
## Features
- [x] Install versions (master, stable, x.y x.y.z)
- [x] Continue download if previously interrupted
- [x] Remove versions
- [x] List down installed versions
- [x] Update zigverm itself
- [x] Manage default and per-directory version overrides
- [x] Open the language reference and standard library docs (even when offline).
- [x] Tries to maintain strong compatiblity with the wider zig ecosystem (`zls`, `zig.vim`)
## Docs
Read the [User Guide](./docs/user-guide.md)
## License
`zigverm` is licensed under the Apache License 2.0. See the [LICENSE](./LICENSE) file.