vlang /v

Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io

★ 38,093⑂ 2,316👁 447⑃ 18,498● 11,705▤ 304◈ 1,587
VMITCreated 2019-02-08
38,093
stars
+3
2,316
forks
447
watchers
18,498
prs
11,705
issues
304
releases
1,587
discussions

README

The V Programming Language

vlang.io
| Docs
| Changelog
| Speed
| Contributing & compiler design





[![Sponsor][SponsorBadge]][SponsorUrl]
[![Patreon][PatreonBadge]][PatreonUrl]
[![Discord][DiscordBadge]][DiscordUrl]
[![X][XBadge]][XUrl]
[![Modules][ModulesBadge]][ModulesUrl]



 Key Features of V

- Simplicity: the language can be learned over the course of a weekend
- Fast compilation: ≈110k loc/s with a Clang backend,
  ≈500k loc/s with native and tcc backends (Intel i5-7500, SSD, no
  optimization) (demo video)
- Easy to develop: V compiles itself in less than a second
- Performance: as fast as C (V's main backend compiles to human-readable C)
- Safety: no null, no globals, no undefined behavior (wip), immutability by default
- C to V translation (Translating DOOM demo video)
- Hot code reloading
- Flexible memory management. GC by default, manual via v -gc none,
  arena allocation via v -prealloc, autofree via v -autofree
  (autofree demo video).
- Cross-platform UI library
- Built-in graphics library
- Easy cross-compilation
- REPL
- Built-in ORM
- Built-in web framework
- C and JavaScript backends
- Great for writing low-level software (Vinix OS)

 Stability, future changes, post 1.0 freeze

Despite being at an early development stage, the V language is relatively stable, and doesn't
change often. But there will be changes before 1.0.
Most changes in the syntax are handled via vfmt automatically.

The V core APIs (primarily the os module) will also have minor changes until
they are stabilized in V 1.0. Of course, the APIs will grow after that, but without breaking
existing code.

After the 1.0 release V is going to be in the "feature freeze" mode. That means no breaking changes
in the language, only bug fixes and performance improvements. Similar to Go.

Will there be V 2.0? Not within a decade after 1.0, perhaps not ever.

To sum it up, unlike many other languages, V is not going to be always changing, with new features
introduced and old features modified. It is always going to be a small and simple
language, very similar to the way it is right now.

 Installing V from source

This is the preferred method.

 Linux, macOS, Windows, \BSD, Solaris, WSL, etc.

Usually, installing V is quite simple if you have an environment that already has a
functional git installation.

Note: On Windows, run makev.bat instead of make in CMD, or ./makev.bat in
PowerShell.
To build with Visual Studio, run makev.bat -msvc. If the bundled TCC bootstrap cannot be
compiled or fails while building the next compiler stage, the script retries with MSVC,
then Clang and GCC.
Windows ARM64 releases are available as v_windows_arm64.zip. Install Visual Studio's
C++ ARM64 build tools and a Windows SDK, then use v -cc msvc file.v to build native
applications with the C backend. To build the compiler and release tools from source,
run ./cmd/tools/builders/windows_arm64_release.ps1 in native ARM64 PowerShell 7 on Windows 11.
Source bootstrapping also needs Visual Studio's

Top issues

Discussions

Latest release

0.5.2 0.5.2 2026-07-12
V 0.5.2

12 Jul 2026

 Improvements in the language
- Implement @[soa] struct attribute for Structure of Arrays transformation (26738)
- Initial version of ownership via -ownership. All logic is behind comptime, so it won't have
  any speed/size impact on normal V (26852)
- VGC, a concurrent tri-color mark-and-sweep GC translated from Go (26739)
- ios and macos modules that allow writing code without Objective C
- Enable the new V2 backend via v -v2 file.v
- Optional error parameter for closing channel (fixes 19203)
- Allow negative indexing of array like arr[-1] (fixes 24066)
- A

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON