Simple, fast, safe, compiled language for developing maintainable software. Supports translation from C and (soon) C++.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tim Basel 7e538d7401
utils: add args to launch_tool
10 hours ago
.ctags.d v.ctags: improve detection of `mut x :=` 4 weeks ago
.github ci: disable -autofree self compilation for now 3 days ago
cmd utils: add args to launch_tool 10 hours ago
doc checker: restrict numeric promotions to cases where no data is lost 1 day ago
examples cli: assign parent by default; add disable_flag 15 hours ago
thirdparty .gitignore: ignore all binary files by default 4 weeks ago
tutorials tutorials: switch to `mut f Foo` 4 days ago
vlib utils: add args to launch_tool 10 hours ago
.editorconfig cgen: enum str() 1 month ago
.gitattributes vfmt2: more convenient way to test multiple files for correct formatting 3 months ago
.gitignore v symlink: use a .symlink/v.bat launcher to avoid global PATH polution 2 days ago
0.2_roadmap.txt Revert "term: make compilable with v2 on windows" 2 months ago
BSDmakefile freebsd: fix BSDmakefile 5 months ago changelog: fix a typo 2 weeks ago Create 7 months ago fix a typo 1 month ago
Dockerfile dockerfile: fix build failure 8 months ago
Dockerfile.alpine cmd/v: rewrite flags 2 months ago
Dockerfile.cross move v.v to cmd/v 3 months ago
LICENSE update copyright year 4 months ago
Makefile make: do not pull tcc on macs 3 days ago readme: update Troubleshooting section 6 days ago
make.bat make.bat: use v.exe -cc msvc self when bootstrapping with msvc 3 days ago
v.mod vmod: add v.mod parser 1 week ago

The V Programming Language |
Docs |
Changelog |
Speed |

Build Status

Key Features of V

  • Simplicity: the language can be learned in less than an hour
  • Fast compilation: ≈100k — 1.2 million loc/s
  • Easy to develop: V compiles itself in less than a second
  • Performance: within 3% of C
  • Safety: no null, no globals, no undefined behavior, immutability by default
  • C to V translation
  • Hot code reloading
  • Cross-platform UI library
  • Built-in graphics library
  • Easy cross compilation
  • REPL
  • Built-in ORM
  • C and JavaScript backends

A stable 0.2 release is planned for May 2020. Right now V is in an alpha stage.

Installing V from source

Linux, macOS, Windows, *BSD, Solaris, WSL, Android, Raspbian

git clone
cd v

That’s it! Now you have a V executable at [path to V repo]/v. [path to V repo] can be anywhere.

(On Windows make means running make.bat, so make sure you use cmd.exe.)

V is being constantly updated. To update V, simply run:

v up

C compiler

You’ll need Clang or GCC or Visual Studio. If you are doing development, you most likely already have one of those installed.

Otherwise, follow these instructions:


You can create a /usr/local/bin/v symlink so that V is globally available:

sudo ./v symlink


Expand Docker instructions
git clone
cd v
docker build -t vlang .
docker run --rm -it vlang:latest

Docker with Alpine/musl:

git clone
cd v
docker build -t vlang --file=Dockerfile.alpine .
docker run --rm -it vlang:latest

Testing and running the examples

Make sure V can compile itself:

v -o v2 cmd/v
$ v
V 0.1.x
Use Ctrl-C or `exit` to exit

>>> println('hello world')
hello world
cd examples
v hello_world.v && ./hello_world    # or simply
v run hello_world.v                 # this builds the program and runs it right away

v word_counter.v && ./word_counter cinderella.txt
v run news_fetcher.v
v run tetris/tetris.v

In order to build Tetris and anything else using the graphics module, you will need to install glfw and freetype libraries.

If you plan to use the http package, you also need to install OpenSSL on non-Windows systems.

brew install glfw freetype openssl

sudo apt install libglfw3 libglfw3-dev libfreetype6-dev libssl-dev

sudo pacman -S glfw-x11 freetype2

sudo dnf install glfw glfw-devel freetype-devel

v setup-freetype

glfw dependency will be removed soon.



Please see the Troubleshooting section on our wiki page