Go Version Manager

Overview

gvm

Build Status

By Josh Bussdieker (jbuss, jaja, jbussdieker) while working at Moovweb

Currently lovingly maintained by Benjamin Knigge

Pull requests and other any other contributions would be very much appreciated.

GVM provides an interface to manage Go versions.

Features

  • Install/Uninstall Go versions with gvm install [tag] where tag is "60.3", "go1", "weekly.2011-11-08", or "tip"
  • List added/removed files in GOROOT with gvm diff
  • Manage GOPATHs with gvm pkgset [create/use/delete] [name]. Use --local as name to manage repository under local path (/path/to/repo/.gvm_local).
  • List latest release tags with gvm listall. Use --all to list weekly as well.
  • Cache a clean copy of the latest Go source for multiple version installs.
  • Link project directories into GOPATH

Background

When we started developing in Go mismatched dependencies and API changes plauged our build process and made it extremely difficult to merge with other peoples changes.

After nuking my entire GOROOT several times and rebuilding I decided to come up with a tool to oversee the process. It eventually evolved into what gvm is today.

Installing

To install:

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

Or if you are using zsh just change bash with zsh

Installing Go

gvm install go1.4
gvm use go1.4 [--default]

Once this is done Go will be in the path and ready to use. $GOROOT and $GOPATH are set automatically.

Additional options can be specified when installing Go:

Usage: gvm install [version] [options]
    -s,  --source=SOURCE      Install Go from specified source.
    -n,  --name=NAME          Override the default name for this version.
    -pb, --with-protobuf      Install Go protocol buffers.
    -b,  --with-build-tools   Install package build tools.
    -B,  --binary             Only install from binary.
         --prefer-binary      Attempt a binary install, falling back to source.
    -h,  --help               Display this message.

A Note on Compiling Go 1.5+

Go 1.5+ removed the C compilers from the toolchain and replaced them with one written in Go. Obviously, this creates a bootstrapping problem if you don't already have a working Go install. In order to compile Go 1.5+, make sure Go 1.4 is installed first.

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.5

List Go Versions

To list all installed Go versions (The current version is prefixed with "=>"):

gvm list

To list all Go versions available for download:

gvm listall

Uninstalling

To completely remove gvm and all installed Go versions and packages:

gvm implode

If that doesn't work see the troubleshooting steps at the bottom of this page.

Mac OS X Requirements

xcode-select --install
brew update
brew install mercurial

Linux Requirements

Debian/Ubuntu

sudo apt-get install curl git mercurial make binutils bison gcc build-essential

Redhat/Centos

sudo yum install curl
sudo yum install git
sudo yum install make
sudo yum install bison
sudo yum install gcc
sudo yum install glibc-devel

FreeBSD Requirements

sudo pkg_add -r bash
sudo pkg_add -r git
sudo pkg_add -r mercurial

Vendoring Native Code and Dependencies

GVM supports vendoring package set-specific native code and related dependencies, which is useful if you need to qualify a new configuration or version of one of these dependencies against a last-known-good version in an isolated manner. Such behavior is critical to maintaining good release engineering and production environment hygiene.

As a convenience matter, GVM will furnish the following environment variables to aid in this manner if you want to decouple your work from what the operating system provides:

  1. ${GVM_OVERLAY_PREFIX} functions in a manner akin to a root directory hierarchy suitable for auto{conf,make,tools} where it could be passed in to ./configure --prefix=${GVM_OVERLAY_PREFIX} and not conflict with any existing operating system artifacts and hermetically be used by your workspace. This is suitable to use with C{PP,XX}FLAGS and LDFLAGS, but you will have to manage these yourself, since each tool that uses them is different.

  2. ${PATH} includes ${GVM_OVERLAY_PREFIX}/bin so that any tools you manually install will reside there, available for you.

  3. ${LD_LIBRARY_PATH} includes ${GVM_OVERLAY_PREFIX}/lib so that any runtime library searching can be fulfilled there on FreeBSD and Linux.

  4. ${DYLD_LIBRARY_PATH} includes ${GVM_OVERLAY_PREFIX}/lib so that any runtime library searching can be fulfilled there on Mac OS X.

  5. ${PKG_CONFIG_PATH} includes ${GVM_OVERLAY_PREFIX}/lib/pkgconfig so that pkg-config can automatically resolve any vendored dependencies.

Recipe for success:

gvm use go1.1
gvm pkgset use current-known-good
# Let's assume that this includes some C headers and native libraries, which
# Go's CGO facility wraps for us.  Let's assume that these native
# dependencies are at version V.
gvm pkgset create trial-next-version
# Let's assume that V+1 has come along and you want to safely trial it in
# your workspace.
gvm pkgset use trial-next-version
# Do your work here replicating current-known-good from above, but install
# V+1 into ${GVM_OVERLAY_PREFIX}.

See examples/native for a working example.

Troubleshooting

Sometimes especially during upgrades the state of gvm's files can get mixed up. This is mostly true for upgrade from older version than 0.0.8. Changes are slowing down and a LTR is imminent. But for now rm -rf ~/.gvm will always remove gvm. Stay tuned!

Gitter

Issues
  • Error with go1.5 install

    Error with go1.5 install

    ~  gvm install go1.5                                                                                                                                
    Installing go1.5...
     * Compiling...
    ERROR: Failed to compile. Check the logs at /home/xxxxx/.gvm/logs/go-go1.5-compile.log
    ERROR: Failed to use installed version
    ~ cat /home/xxxxx/.gvm/logs/go-go1.5-compile.log                                                                                                   
    ##### Building Go bootstrap tool.
    cmd/dist
    ERROR: Cannot find /home/xxxxx/go1.4/bin/go.
    Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
    ./make.bash: line 121: /home/xxxxx/go1.4/bin/go: No such file or directory
    
    opened by 1xch 32
  • gvm install go1.9.2 fails on macOS 10.12.6

    gvm install go1.9.2 fails on macOS 10.12.6

    I have already install go1.4 successed use: gvm install go1.4 -B when i install go1.9.2 got error:

    Downloading Go source... Installing go1.9.2...

    • Compiling... ERROR: Failed to compile. Check the logs at /Users/defned/.gvm/logs/go-go1.9.2-compile.log ERROR: Failed to use installed version

    cat /Users/defned/.gvm/logs/go-go1.9.2-compile.log

    Building Go bootstrap tool.

    cmd/dist

    Building Go toolchain using /Users/defned/.gvm/gos/go1.4.

    bootstrap/cmd/internal/dwarf bootstrap/cmd/internal/objabi bootstrap/cmd/internal/src bootstrap/cmd/internal/sys bootstrap/cmd/asm/internal/flags bootstrap/cmd/internal/bio bootstrap/math/bits bootstrap/cmd/compile/internal/syntax bootstrap/math/big bootstrap/cmd/internal/obj bootstrap/cmd/asm/internal/lex bootstrap/cmd/internal/gcprog bootstrap/debug/pe bootstrap/cmd/link/internal/ld bootstrap/cmd/internal/obj/arm bootstrap/cmd/internal/obj/arm64 bootstrap/cmd/internal/obj/mips bootstrap/cmd/internal/obj/ppc64 bootstrap/cmd/internal/obj/s390x bootstrap/cmd/internal/obj/x86 bootstrap/cmd/compile/internal/types bootstrap/cmd/asm/internal/arch bootstrap/cmd/compile/internal/ssa bootstrap/cmd/asm/internal/asm bootstrap/cmd/asm bootstrap/cmd/link/internal/amd64 bootstrap/cmd/link/internal/arm bootstrap/cmd/link/internal/arm64 bootstrap/cmd/link/internal/mips bootstrap/cmd/link/internal/mips64 bootstrap/cmd/link/internal/ppc64 bootstrap/cmd/link/internal/s390x bootstrap/cmd/link/internal/x86 bootstrap/cmd/link bootstrap/cmd/compile/internal/gc bootstrap/cmd/compile/internal/amd64 bootstrap/cmd/compile/internal/arm bootstrap/cmd/compile/internal/arm64 bootstrap/cmd/compile/internal/mips bootstrap/cmd/compile/internal/mips64 bootstrap/cmd/compile/internal/ppc64 bootstrap/cmd/compile/internal/s390x bootstrap/cmd/compile/internal/x86 bootstrap/cmd/compile

    Building go_bootstrap for host, darwin/amd64.

    runtime/internal/sys runtime/internal/atomic runtime encoding errors internal/cpu internal/race internal/syscall/windows/sysdll math/bits sync/atomic unicode unicode/utf16 unicode/utf8 math sync io internal/singleflight syscall cmd/go/internal/web hash bytes strings hash/adler32 bufio strconv path internal/syscall/windows internal/syscall/windows/registry time reflect encoding/base64 crypto crypto/sha1 internal/poll os os/signal sort encoding/binary fmt unexpected fault address 0x4cbfdb9a1a9 fatal error: fault [signal 0xb code=0x1 addr=0x4cbfdb9a1a9 pc=0xfda3f]

    goroutine 1 [running]: runtime.gothrow(0x70a230, 0x5) /usr/local/go/src/runtime/panic.go:503 +0x8e fp=0xc2083ff438 sp=0xc2083ff420 runtime.sigpanic() /usr/local/go/src/runtime/sigpanic_unix.go:29 +0x261 fp=0xc2083ff488 sp=0xc2083ff438 bootstrap/cmd/compile/internal/gc.livenessShouldTrack(0x4cbfdb9a12b, 0x7354b0) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/plive.go:149 +0x1f fp=0xc2083ff4a0 sp=0xc2083ff488 bootstrap/cmd/compile/internal/gc.getvariables(0xc2083abe40, 0x0, 0x0, 0x0, 0x1) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/plive.go:157 +0xd2 fp=0xc2083ff568 sp=0xc2083ff4a0 bootstrap/cmd/compile/internal/gc.liveness(0xc2085c8570, 0xc2085bd2c0, 0xc2085c8570) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/plive.go:1287 +0x2b fp=0xc2083ff5d0 sp=0xc2083ff568 bootstrap/cmd/compile/internal/gc.genssa(0xc2085bd2c0, 0xc208588780) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/ssa.go:4383 +0xb8 fp=0xc2083ff7f0 sp=0xc2083ff5d0 bootstrap/cmd/compile/internal/gc.compileSSA(0xc2083abe40, 0x0) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/pgen.go:242 +0x85 fp=0xc2083ff880 sp=0xc2083ff7f0 bootstrap/cmd/compile/internal/gc.compile(0xc2083abe40) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/pgen.go:219 +0x11a fp=0xc2083ff8f8 sp=0xc2083ff880 bootstrap/cmd/compile/internal/gc.funccompile(0xc2083abe40) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/dcl.go:1049 +0x1a3 fp=0xc2083ff970 sp=0xc2083ff8f8 bootstrap/cmd/compile/internal/gc.Main(0x8275e8) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/main.go:585 +0x30e9 fp=0xc2083ffee8 sp=0xc2083ff970 main.main() /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/main.go:49 +0x1c5 fp=0xc2083fff98 sp=0xc2083ffee8 runtime.main() /usr/local/go/src/runtime/proc.go:63 +0xf3 fp=0xc2083fffe0 sp=0xc2083fff98 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2232 +0x1 fp=0xc2083fffe8 sp=0xc2083fffe0 go tool dist: FAILED: /Users/defned/.gvm/gos/go1.9.2/pkg/tool/darwin_amd64/compile -pack -o /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/sort/go.a -p sort /Users/defned/.gvm/gos/go1.9.2/src/sort/search.go /Users/defned/.gvm/gos/go1.9.2/src/sort/sort.go /Users/defned/.gvm/gos/go1.9.2/src/sort/zfuncversion.go: exit status 2 can't create /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/encoding/binary/go.a: open /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/encoding/binary/go.a: no such file or directory can't create /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/fmt/go.a: open /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/fmt/go.a: no such file or directory

    hope help me

    opened by Fengxq2014 21
  • Automatically `gvm use`... on per-directory .go-version files

    Automatically `gvm use`... on per-directory .go-version files

    chruby and ndenv help Ruby and Node.js programmers by automatically the right version of a programming language based on per-directory files like .ruby-version and .node-version. Could gvm do the same with .go-version files?

    opened by mcandre 18
  • Conflict with GVM (Groovy enVironment Manager)

    Conflict with GVM (Groovy enVironment Manager)

    I had installed GVM (Groovy enVironment Manager) in my Ubuntu system.

    When I try to install gvm with

    bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer),

    I get ERROR: Already installed!.

    Is there anyway to install gvm without conflicting with GVM?

    opened by TheKojuEffect 15
  • Use git repositories

    Use git repositories

    Golang has officially made the switch from Mercurial to git. GVM needs to be updated with respect to that, and mercurial needs to be removed from the requirements as a result.

    opened by CoolOppo 14
  • Failed to install gb

    Failed to install gb

    Hey Guys,

    Sorry to bug you again, I don't know if it is a real issue or not, and it probably isn't a gvm issue, but when I try to install I get:

    ➜  ~  gvm install release.r60.3
    Downloading Go source...
    Installing release.r60.3...
     * Compiling...
     * Installing gb...
    Failed to install gb
     * Installing gpkg...
    

    Any and all help/advice is loved :)

    Thanks,

    Josh

    opened by joshk 13
  • gvm install fails on Ubuntu 12.04

    gvm install fails on Ubuntu 12.04

    After installing gvm (and it's prerequisites) and confirming that it works with gvm version: Go Version Manager v1.0.22 installed at /home/rihards/.gvm

    I get the following output when I try to run gvm install go1.4: Downloading Go source... Installing go1.4...

    • Compiling... ERROR: Failed to compile. Check the logs at /home/rihards/.gvm/logs/go-go1.4-compile.log ERROR: Failed to use installed version

    And the content of the said log file is:

    Building Go bootstrap tool.

    cmd/dist ERROR: Cannot find /home/rihards/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. ./make.bash: line 121: /home/rihards/go1.4/bin/go: No such file or directory

    This happens with other versions of go as well, and with different users on the system, including root. I've also tried removing .gvm and reinstalling it, still no luck.

    opened by rihards 11
  • .gvmrc Support

    .gvmrc Support

    This is a great project, and I can see myself using this to vendor my dependencies.

    Are there any plans or thoughts around adding .gvmrc support like .rvmrc from RVM? I am working on multiple Go projects at the moment, and auto switching between pkgsets when I switch directories would be fantastic.

    Thanks, -Phil

    opened by pfeairheller 11
  • Issues on OSX

    Issues on OSX

    Hi! Cool project :+1:

    I notice you don't mention use on OSX, is it supported? If so, I'm having this issue:

    $ gvm install go1
    Installing go1...
     * Compiling...
    ERROR: Failed to compile
    ERROR: Failed to use installed version
    

    Is there a way to turn verbosity up so I can see the full stack trace and figure out what's going on?

    opened by petems 10
  • odd error when running gvm command

    odd error when running gvm command

    Hey @moovweb,

    I installed gvm as per the instructions, and added the source line to my .zsh_profile but get the following error when I run the gvm command:

    ➜  ~  gvm
    gvm:20: = not found
    

    I am not sure how to diagnose this error, any help or advice would be greatly appreciated.

    Thanks a bundle,

    Josh

    opened by joshk 10
  • gvm install fails with

    gvm install fails with "go: command not found" on Ubuntu 18.04

    At 6ecd46d8b58c18f2a7bd5a1ab604cb57443cd35c:

    $ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
    $ gvm install go1.11
    Downloading Go source...
    Installing go1.11...
     * Compiling...
    /home/ciro/.gvm/scripts/install: line 84: go: command not found
    ERROR: Failed to compile. Check the logs at /home/ciro/.gvm/logs/go-go1.11-compile.log
    ERROR: Failed to use installed version
    

    Installing Go with package manager solved it:

    sudo apt-get install golang-go
    

    but feels a bit bad to need go to install go. At least document the dep at: https://github.com/moovweb/gvm/tree/6ecd46d8b58c18f2a7bd5a1ab604cb57443cd35c#debianubuntu

    opened by cirosantilli 7
  • Add a step for installing Bison before

    Add a step for installing Bison before

    After installing gvm, when I tried to use it, I got an error about needing Bison:

    $ gvm install go1.17 gvm use go1.17 [--default]

    Could not find bison linux: apt-get install bison ERROR: Missing requirements.

    opened by navinger 0
  • Install latest stable Go version

    Install latest stable Go version

    Is there a way to just install whatever is the latest stable version of Go? For example, NVM (Node Version Manager) has nvm install node to install the latest version or nvm install --lts to install the lts version. Would be nice if this has the same too

    opened by misaalanshori 0
  • Feature: verify sha256 of curl downloaded binaries

    Feature: verify sha256 of curl downloaded binaries

    In looking at https://github.com/moovweb/gvm/blob/master/scripts/install I noticed that download_binary() downloads the go tarball via curl and then proceeds to untar the binary without verifying it, which is susceptible to a supply chain issue (eg, codecov, where users would download a script via curl and execute[1]).

    Feature request: Go upstream doesn't appear to provide signed build artifacts or a signed document of sha256sums, but Go upstream does provide individual sha256's of each tarball and they can be seen on https://go.dev/dl/ so it should be possible to incorporate a sha256sum check of the tarball and a meaningful security improvement would be to store the known valid sha256sums within the gvm project somewhere and comparing the downloaded tarball against them since that would detect changes to the tarball on the webserver.

    Rationale: note that today the downloads are happening over HTTPS, so a successful supply chain attack requires changes to the files on the webserver. Some might argue that changing files on a Google server would require more sophistication than can be protected against in gvm, but serving build artifacts is different than creating them in the first place (different systems, different credentials, different attack surface, different availability from the internet, etc) and verifying a build artifact against a known checksum would detect changes in the tarball and help protect gvm users against attacks on the webserver (it does not protect against attacks on the build server of course). Since there doesn't seem to be a signed document of valid sha256sums that we could verify the signature of and compare the downloaded tarball against, gvm must store the sha256sums locally (since it is reasonable to assume that if an attacker could replace the tarball on the webserver, the attacker may also be able to replace the sha256sum on the same webserver).

    It looks like gvm users can use install_go() functionality in the meantime to compile go releases from source (coming from git clone) rather than using unverified precompiled binaries.

    Thanks for considering this improvement!

    [1] note, I understand that gvm is primarily for local development as opposed to integration with CI systems like codecov is. I mention codecov only to highlight how supply chain attacks are conducted

    opened by jdstrand 0
  • Update GVM to support ARM and fix issues encountered under x86

    Update GVM to support ARM and fix issues encountered under x86

    If anyone wants to run gvm on a Macbook M1 chip device OR macOS after Catalina, You can try this:

    curl -sSL https://github.com/soulteary/gvm/raw/master/binscripts/gvm-installer | bash
    
    opened by soulteary 0
  • gvm v1.0.22 issue installing on ubuntu

    gvm v1.0.22 issue installing on ubuntu

    No go installed I wanted to start clean:

    My prerequisite installation step: install go version manager: bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) than, because ubuntu: sudo apt-get install curl git mercurial make binutils bison gcc build-essential vm version returns: Go Version Manager v1.0.22 installed at /home/nkostic/.gvm So now to golang instalation step gvm install go1.4 In terminal:

    Downloading Go source...
    Installing go1.4...
     * Compiling...
    /home/nkostic/.gvm/scripts/install: line 84: go: command not found
    ERROR: Failed to compile. Check the logs at /home/nkostic/.gvm/logs/go-go1.4-compile.log
    ERROR: Failed to use installed version
    

    if I check the log:

    at /home/nkostic/.gvm/logs/go-go1.4-compile.log
    # Building C bootstrap tool.
    cmd/dist
    
    # Building compilers and Go bootstrap tool for host, linux/amd64.
    lib9
    /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c: In function '__efgfmt':
    /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c:437:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
      437 |   if(ndigits > prec) {
          |     ^
    /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c:451:2: note: here
      451 |  default:
          |  ^~~~~~~
    cc1: all warnings being treated as errors
    go tool dist: FAILED: gcc -Wall -Wstrict-prototypes -Wextra -Wunused -Wno-sign-compare -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -Wno-switch -Wno-comment -Wno-missing-field-initializers -Werror -fno-common -ggdb -pipe -Wuninitialized -O2 -fmessage-length=0 -c -m64 -I /home/nkostic/.gvm/gos/go1.4/include -DPLAN9PORT -I /home/nkostic/.gvm/gos/go1.4/src/lib9 -o $WORK/fltfmt.o /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c
    

    Installed go 1.18 manually tried again from the top and same result. If zlog used the issue might be coming from there, not sure but unable to use this tool on Ubuntu 20.04.3 LTS following the readme instruction.

    opened by nkostic 7
Owner
Moovweb
Moovweb XDN delivers unparalleled site speeds via progressive web apps with server-side rendering, auto AMP creation, and CDN-as-code.
Moovweb
A tool to determine the highest version number that's smaller than a target version number

semver-highest A tool to determine the highest version number that's smaller than a target version number. Installation go install github.com/marten-s

Marten Seemann 1 Oct 13, 2021
Go Version Manager

gvm By Josh Bussdieker (jbuss, jaja, jbussdieker) while working at Moovweb Currently lovingly maintained by Benjamin Knigge Pull requests and other an

Moovweb 7.6k Aug 8, 2022
Go Version Manager

gvm By Josh Bussdieker (jbuss, jaja, jbussdieker) while working at Moovweb Currently lovingly maintained by Benjamin Knigge Pull requests and other an

Moovweb 7.7k Aug 15, 2022
Golang Version Manager

g 注意:master分支可能处于开发之中并非稳定版本,请通过tag下载稳定版本的源代码,或通过release下载已编译的二进制可执行文件。 g是一个Linux、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换。 特性 支持列出可供安装的go版本号 支持列出已安

voidint 752 Aug 11, 2022
Go version manager. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash.

gobrew Go version manager Install or update With curl $ curl -sLk https://git.io/gobrew | sh - or with go $ go get -u github.com/kevincobain2000/gobre

Pulkit Kathuria 121 Aug 12, 2022
Declarative CLI Version manager. Support Lazy Install and Sharable configuration mechanism named Registry. Switch versions seamlessly

aqua Declarative CLI Version manager. Support Lazy Install and Sharable configuration mechanism named Registry. Switch versions seamlessly. Index Slid

Shunsuke Suzuki 175 Aug 9, 2022
Dontfile-simple - The simplest version of an online file manager

dontfile-simple The simplest version of an online file manager. Built With Golan

null 0 Jan 12, 2022
Golangver - Go's distributives version manager

golangver Go's distributive version manager (knitted myself with love :) Require

Alexander Orlovsky 2 Aug 3, 2022
Go Package Manager (gopm) is a package manager and build tool for Go.

?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? In favor of Go Modules Proxy since Go 1.11, this pr

Go Package Manager 2.5k Aug 8, 2022
painless task queue manager for shell commands with an intuitive cli interface (execute shell commands in distributed cloud-native queue manager).

EXEQ DOCS STILL IN PROGRESS. Execute shell commands in queues via cli or http interface. Features Simple intuitive tiny cli app. Modular queue backend

Mohammed Al Ashaal 12 Jan 29, 2022
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

null 0 Oct 16, 2021
A node.js version management utility for Windows. Ironically written in Go.

The npm/Microsoft/Google recommended Node.js version manager for Windows. This is not the same thing as nvm. The original nvm is a completely separate

Corey Butler 22.5k Aug 9, 2022
The pure golang implementation of nanomsg (version 1, frozen)

mangos NOTE: This is the legacy version of mangos (v1). Users are encouraged to use mangos v2 instead if possible. No further development is taking pl

nanomsg 1.5k Jun 22, 2022
libsvm go version

libsvm golang version libsvm golang version derived work based on LIBSVM 3.14. Info this lib based on LIBSVM java version, just translate java to go.

Xianjie 71 Jan 23, 2022
A Go interface to ZeroMQ version 4

A Go interface to ZeroMQ version 4. Warning Starting with Go 1.14, on Unix-like systems, you will get a lot of interrupted signal calls. See the top o

Peter Kleiweg 1k Aug 7, 2022
This is a Golang wrapper for working with TMDb API. It aims to support version 3.

This is a Golang wrapper for working with TMDb API. It aims to support version 3. An API Key is required. To register for one, head over to themoviedb

Cyro Dubeux 54 Aug 1, 2022
"go build" wrapper to add version info to Golang applications

govvv The simple Go binary versioning tool that wraps the go build command. Stop worrying about -ldflags and go get github.com/ahmetb/govvv now. Build

Ahmet Alp Balkan 527 Jul 25, 2022
A live-updating version of the UNIX wc command.

lwc A live-updating version of the UNIX wc command. Installation You can get a prebuilt binary for every major platform from the Releases page. Just e

Tim De Pauw 27 Jul 26, 2022
A Go interface to ZeroMQ version 2

A Go interface to ZeroMQ version 2. Requires ZeroMQ version 2.1 or 2.2 For ZeroMQ version 4, see: http://github.com/pebbe/zmq4 For ZeroMQ version 3, s

Peter Kleiweg 18 May 26, 2021
A Go interface to ZeroMQ version 3

A Go interface to ZeroMQ version 3. For ZeroMQ version 4, see: http://github.com/pebbe/zmq4 For ZeroMQ version 2, see: http://github.com/pebbe/zmq2 In

Peter Kleiweg 131 Nov 25, 2021
Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)

http-gonsole This is the Go port of the http-console. Speak HTTP like a local Talking to an HTTP server with curl can be fun, but most of the time it'

mattn 65 Jul 14, 2021
Markdown version of Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine

The big BNT162b2 archive All vaccine data here is sourced from this World Health Organization document. This describes the RNA contents of the BNT162b

null 158 Aug 2, 2022
Go version of Plan9 Acme Editor

Overview Go port of Rob Pike's Acme editor. Derived from ProjectSerenity but now increasingly divergent. ProjectSerenity was itself a transliteration

Robert Kroeger 325 Aug 6, 2022
High-precision indoor positioning framework, version 3.

The Framework for Internal Navigation and Discovery (FIND) is like indoor GPS for your house or business, using only a simple smartphone or laptop. Th

Zack 4.3k Aug 10, 2022
Go tool for major version upgrades

GOMAJOR $ gomajor help GoMajor is a tool for major version upgrades Usage: gomajor <command> [arguments] The commands are: get upgrad

Ilia Choly 67 Jul 29, 2022
Metrics dashboards on terminal (a grafana inspired terminal version)

Grafterm Visualize metrics dashboards on the terminal, like a simplified and minimalist version of Grafana for terminal. Features Multiple widgets (gr

Xabier Larrakoetxea Gallego 769 Aug 7, 2022
Sentinel Go version (Reliability & Resilience)

Sentinel: The Sentinel of Your Microservices Introduction As distributed systems become increasingly popular, the reliability between services is beco

Alibaba 2.1k Aug 7, 2022
A Go (golang) library for parsing and verifying versions and version constraints.

go-version is a library for parsing versions and version constraints, and verifying versions against a set of constraints. go-version can sort a collection of versions properly, handles prerelease/beta versions, can increment versions, etc.

HashiCorp 1.2k Aug 8, 2022
"go build" wrapper to add version info to Golang applications

govvv The simple Go binary versioning tool that wraps the go build command. Stop worrying about -ldflags and go get github.com/ahmetb/govvv now. Build

Ahmet Alp Balkan 527 Jul 25, 2022