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
#31401Native backend roadmap: finish x64 on macOS/Windows; add arm32, riscv64, ppc64le, s390x, loongarch6445 comments · 2026-10-29#32033net.tls: optional pure-V TLS 1.3 with hybrid post-quantum support22 comments · 2026-11-08#32067[RFC 036] Implicit contexts: implementation tracking12 comments · 2026-11-08#27386x86-64 backend compatible with Mac OS 10.410 comments · 2026-06-07#27668[Feature Request]Shared connection pool on top of the existing db.Driver abstraction6 comments · 2026-07-06#29360vpm: version ranges in v.mod, a resolver, and v why5 comments · 2026-10-03#27116Restore CI step: Ensure V2 can be compiled with -autofree5 comments · 2026-05-09#31470Cannot build veb with new compiler3 comments · 2026-10-30
Discussions
#31685Remove import declarations from .v files0 comments · 2026-11-02#31419What the CI spends per push, and why fork pull requests run zero jobs1 comments · 2026-10-29#31330RFC: Native async/await (coroutines) for V — making V competitive for I/O-bound workloads2 comments · 2026-10-28#30855How closely will the releases on Homebrew track Github?1 comments · 2026-10-18#30771MacOS install issues0 comments · 2026-10-17#30720Show V: vcraft — Create native Python modules using V0 comments · 2026-10-16#30642Hate For Unnecessary Curly Brace Enforcement In V0 comments · 2026-10-15#30248No GC and unsafe memory safety0 comments · 2026-10-12
Latest release
0.5.2 0.5.2 2026-07-12V 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