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.md changelog: fix a typo 2 weeks ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 7 months ago
CONTRIBUTING.md contributing.md: 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.md 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

README.md

The V Programming Language

vlang.io |
Docs |
Changelog |
Speed |
Contributing

Build Status
Sponsor
Patreon
Discord
Twitter

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 https://github.com/vlang/v
cd v
make

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:

Symlinking

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

sudo ./v symlink

Docker

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

Docker with Alpine/musl:

git clone https://github.com/vlang/v
cd v
docker build -t vlang --file=Dockerfile.alpine .
docker run --rm -it vlang:latest
/usr/local/v/v

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.

macOS:
brew install glfw freetype openssl

Debian/Ubuntu:
sudo apt install libglfw3 libglfw3-dev libfreetype6-dev libssl-dev

Arch/Manjaro:
sudo pacman -S glfw-x11 freetype2

Fedora:
sudo dnf install glfw glfw-devel freetype-devel

Windows:
v setup-freetype

glfw dependency will be removed soon.

V UI

https://github.com/vlang/ui

Troubleshooting

Please see the Troubleshooting section on our wiki page