Skip to content

Guide · Open source

How to use V: install, build and run your first program

Updated · written with AI from the project's own documentation and checked against our catalogue data

V is a compiled programming language for building software that is simple to learn, fast to compile, and safe by default. This guide is for developers who want to try it, and it walks through building the compiler from source, running a first program, and understanding what the project says about stability. By the end you will know how to build V, run an example, and update it.

Vvlang/v · ★ 38.1k · MIT

Quick start

  1. 1Check prerequisites. Make sure git and make are installed. On Ubuntu or Debian, install build-essential as well.
  2. 2Clone the repository. Run git clone --depth=1 https://github.com/vlang/v to download a shallow copy of the source.
  3. 3Enter the directory. Run cd v to move into the cloned repository.
  4. 4Build the compiler. Run make. On Windows use makev.bat, and on BSD or Solaris use gmake.
  5. 5Run the hello world example. Run ./v run examples/hello_world.v to confirm the compiler works.
  6. 6Keep V updated. Run v up periodically to update to the latest version.

What V is and who it suits

V is a compiled language aimed at maintainable software. The project lists simplicity, fast compilation, and safety as core goals, with no null values and immutability by default.

It is a good fit for developers who want a compact language with a short learning curve, people writing command-line tools or small servers, and anyone porting C code who wants to explore automatic C to V translation.

  • Simplicity: the README says the language can be learned over the course of a weekend
  • Safety: no null, no globals, immutability by default
  • C and JavaScript backends are listed alongside the main backend

Install V on Linux, macOS, Windows or BSD

Installing from source is the preferred method. You need git. On Ubuntu or Debian you may need to run sudo apt install git build-essential make first.

On Windows, run makev.bat instead of make. On FreeBSD, OpenBSD, NetBSD, DragonFly and Solaris, install GNU make and run it as gmake.

  • Prerequisites: git, make (on Windows use makev.bat), build-essential on Ubuntu/Debian
  • Install method: clone the repository and build it
git clone --depth=1 https://github.com/vlang/v cd v make

Run your first V program

After the build, the V executable is at the path of your V repo, named v. The README suggests running the hello world example to confirm the install works.

If the install fails, the README points to the Installation Issues discussions on GitHub, where you can search for your operating system and problem.

./v run examples/hello_world.v

Update V to the latest version

V is updated constantly. The README says running the update command also refreshes the bundled TCC binaries used for fast C compilation, and validates previously cached modules with the updated compiler.

Use the verbose flag if you want progress for every checked cache configuration.

  • Update: run v up
  • Verbose progress: v up -v
v up

Use Docker instead of a local build

Official images are published as thevlang/vlang. The README lists variants including Debian (the default), Alpine (musl, for static executables), and Nix. Podman can also build the same Dockerfiles without a daemon.

  • Default image: Debian-based, programs run on Debian, Ubuntu, Fedora
  • Alpine image: use it for static executables
docker run --rm -it -v "$PWD":/src -w /src thevlang/vlang:latest

Know the stability limits before you commit

The README says V is relatively stable but is pre-1.0, so there will still be changes before 1.0. Most syntax changes are handled automatically by vfmt. After 1.0 the project plans a feature freeze with no breaking language changes, similar to Go.

If your team needs a mature, long-established ecosystem or cannot tolerate API changes before 1.0, the project itself suggests choosing something else. Comparable projects named in this list include Go, Zig, Nim and Rust.

  • Expect minor changes to core APIs such as the os module before 1.0
  • Built-in pieces include a web framework (veb), an ORM and a graphics library

What people use it for

  • Writing command-line tools that benefit from fast compile times
  • Building small servers with the built-in veb web framework
  • Exploring automatic C to V translation when porting existing C code
  • Producing readable C output from V code for low-level work
  • Building static executables with the Alpine Docker image for copying to servers

Frequently asked questions

Is V free to use?

V is released under the MIT licence, according to the project listing. The MIT licence generally allows use, modification and redistribution, but check the LICENSE file in the repository for the exact terms.

What do I need to install V?

You need git and make. On Ubuntu or Debian, install build-essential too. On Windows, use makev.bat instead of make, and on BSD or Solaris install GNU make and run gmake.

Is V stable enough for production?

The README says V is pre-1.0 and relatively stable, but there will be changes before 1.0. Teams that cannot tolerate language or API changes should wait for 1.0 or choose another language.

Why does my V install fail?

The README asks you to check the Installation Issues discussions on GitHub, search for your operating system, and add your problem to an existing discussion or start a new one.

How does V compare to Go, Zig, Nim or Rust?

The project lists Go, Zig, Nim and Rust as comparable projects. The README does not include benchmarks against them, so compare them on your own workload and ecosystem needs.

Can V translate C code?

Yes. The README lists automatic C to V translation as a feature and links a demo video of translating DOOM.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

V suits developers who want a small, fast-compiling language for command-line tools, small servers, or C porting experiments, and who accept pre-1.0 changes. Teams that need a mature ecosystem, stable APIs today, or extensive beginner tutorials should pick something else, such as Go or Rust.

Install options & downloads