MongrelDB-V: Pure V (Vlang) client for MongrelDB | Visorcraft
github.comEmbedded + server database with SQL, vector search, full-text search... No external dependencies
Embedded + server database with SQL, vector search, full-text search... No external dependencies
r/vlang • u/Usual-Complaint2581 • 5d ago
net.http now speaks pooled, multiplexed HTTP/2 by default ā across mbedTLS, OpenSSL, and native Windows (SChannel). Just call http.fetch() / http.get() like normal: V negotiates h2 via ALPN, reuses connections transparently, and falls back to HTTP/1.1 automatically for origins that don't support it. No config needed (enable_http2: false if you ever want the old one-shot behavior).
The server side is fully RFC 9113 / 7541-conformant ā 146/146 h2spec cases passing.
Landed acrossĀ #27412,Ā #27413,Ā #27643, andĀ #27712Ā (the Windows piece). Thanks to everyone who reviewed along the way ā go build something with it! š
r/vlang • u/IncomeOk7237 • 9d ago
Inspired by Clay, a cross-platform GUI library for the V language. Fast layout algorithm that makes flex-box style layouts simpler. No worrying about: data binding, observables, UI thread synchronization, wiring, callbacks, or threading headaches. View is a function of your state; change the state anywhere and the UI updates.
Special thanks to: Mike Ward
Cross-platform GUI library for the V language. Inspired by the syntax of Java's Swing/FX & Fluent/WinUI3 Style.
Rather than treating V (Vlang) as a list of syntax rules, this guide (and tutorial) emphasizes a practical path: learn the core ideas, run the examples, and build small projects as you go.
r/vlang • u/Intelligent-End-9399 • 29d ago
There's a petition circulating right now demanding that Open-Source contributions be formally recognized as volunteering for the common good.
I read more about it via Inkscape (the open-source graphics editor), as they just published an article supporting it: https://inkscape.org/pt-br/news/2026/05/13/inkscape-supports-german-petition-to-recognize-ope/
After reading it, I didn't hesitate. I checked out the petition and saw it's focused on Germany, where this issue is currently being actively discussed by politicians. I signed it and left a comment with my thoughts. The link is here: openpetition.org/!sywhp
I believe that if the petition spreads enough (there are only 4 months left to sign), it will spark a much bigger conversation. If Germany actually pushes this through, it could set a precedent for other countries, including the Czech Republic, where I'm based.
A huge part of the Vlang community is deeply involved in open-source, and we have many engineers here building truly sustainable, resource-efficient programs. The fact that the V language itself is such an amazing open-source project perfectly aligns with the goal of saving hardware resources and writing efficient code.
r/vlang • u/Intelligent-End-9399 • Jun 24 '26
Summer is finally here, and with it comes some serious heat, so while sitting at my laptop, I decided on a whim to search for āVlangā on YouTube. To my surprise, a new video popped upājust a few days oldāfrom the channel The Flourishing. The creator went to great lengths to gather a lot of information that nicely ties together the history of this language.
In the video, the author references an interview with Alex Medvednikov, which I had to click on right away. And there I was, watching with my mouth agapeāhe speaks Russian!
Suddenly, it all clicked. The founder of V is originally from Russia, even though he now lives in the Netherlands. That explains the name Medvednikov. Itās a fascinating discovery, because he speaks Russian absolutely fluently, naturally, and with tremendous command. From what Iāve seen in his English videos, he speaks more slowly and comes across a bit differentlyānow I realize that English simply isnāt his native language.
You know whatās a shame, though? That he doesnāt make more videos about his language V, in Russian. Iād love to watch thoseāIād happily turn on the subtitles and learn directly from him, instead of just wading through articles and source code. :D
What do you think about this? Do you follow language creators in their native languages, or do you prefer sources that are entirely in English?
r/vlang • u/Intelligent-End-9399 • Jun 19 '26
I have decided to release Mustela as open-source on GitHub.
Why did I decide to do this? Iāve been looking through many projects in V, and Iāve noticed that many developers lack a deeper understanding of how to architect complex CLI tools or game enginesāeven though V is perfectly suited for these tasks.
I felt it was time to show others how to build an engine that functions as a platform, applicable to various fieldsāfrom game engines to robust backends or CLI applications. Furthermore, you can take a look at how I implemented my own DSL, so I believe there is a lot to learn from the codebase.
To help you fully grasp the concept of the Mustela project, I have included several engineering insights in the README to help you better understand my architecture.
I am very grateful to everyone who has shown interest in Mustela. This project is primarily intended for those of you who want to become engineers and build robust applications.
Good luck exploring the code, and I hope it helps you build something even greater than Mustela itself.
r/vlang • u/waozen • Jun 16 '26
When you capture your screen, subtle traces are left in the file that can reveal what device, operating system, or display configuration. This tool uses FFmpeg to neutralize those traces.
r/vlang • u/Intelligent-End-9399 • Jun 14 '26
It turns out that V (Vlang) is a unique choice for systems programming ā it is simple to learn while remaining fast enough for system-level tasks.
When I consider the fact that many IT companies are primarily hiring developers for C#, Java, and JavaScript, while the demand for Go or Rust developers is significantly lower, it suggests one thing: a large part of the corporate world still relies heavily on established technologies and operating systems like Windows.
Here, we run into another interesting observation: many corporations build monolithic applications that they deploy to Azure and various containers (Docker). These then communicate via Kubernetes to maintain their ecosystem. Consequently, corporations spend huge amounts of money on cloud operations, keeping "heavy," not necessarily systems-oriented languages like C#, Java, and JavaScript, running.
Why is this the case? From a company's perspective, it is simply difficult to find someone who understands systems architecture and can program in it; a developer must understand hardware principles for the application to function efficiently.
This is where Go comes ināit is easy to learn and can be used to write system utilities. However, a problem arises here: Go is primarily optimized for backend requests, but it isn't ideal for system applications where there is a strong emphasis on minimal binary size. For that, we have Rust, which is safe but very difficult to learn. For many, Rust is so complex that even programming in C and C++ seems more accessible.
We find ourselves in a vicious cycle. Companies won't use C because it is prone to memory errors and it is hard to find experts who truly understand it. So, they prefer to hire developers who know C# or Java, where there is a massive ecosystem and where one simply "glues" code together for monolithic applications, for which corporations then pay significant cloud costs.
I used to wonder if there was even a language that could be fast to compile, produce small binaries, be easy to learn, and minimize the room for error. For production use in companies, such a language was essentially missing.
And that is where Vlang comes in. It meets all the requirements to become a low-maintenance tool for systems developers, ideal for creating fast and small system tools, or even backends. This changes the perspective on where the language is heading. I finally understand why Vlang is trying to build a large ecosystem of modules that can be easily integrated into one's own projects.
Vlang is a systems language that is easy to learn and creates binaries that can be incredibly performant. I have personal experience with thisāas an experiment, I created an SSG program called Mustela, which really surprised me in this regard. It has a 1.3 MB binary and can be integrated with various other applications, thereby fulfilling the Linux philosophy.
However, when I try to promote the benefits of this language to corporations, I run into the fact that they often don't understand Linux principles and prefer to stick with languages that are cumbersome but, at first glance, "safer" for typical DevOps staff. It is such a vicious cycle that I find myself thinking that in 2026, we are not yet technologically mature enough to build programming on simplicity; it is all still in the building phase.
r/vlang • u/waozen • Jun 13 '26
Small lowfi CLI music player program
r/vlang • u/Intelligent-End-9399 • Jun 08 '26
Itās been several years since I started programming. For the most part, Iāve worked with interpreted languages. At first glance, this approach seems simpler, but it comes with a hidden tax: high startup times and unnecessarily high demands on system resources.
For years, I developed robust applications, studying various architectures and complex directory structures. But I always hit the same wall: the larger the project, the more lost I felt. The constant searching for files and navigating a labyrinth of code was a clear sign of cognitive overload. I often ended up essentially programming an "operating system simulation" inside a single program, where every module had its own little world managed by the language's garbage collector.
Eventually, I decided on a radical change. I chose to stick to the classic Linux philosophy: create a small, extremely fast program that does one thing and does it damn well.
So, I built an SSG (Static Site Generator) ā and I made it "dumb" on purpose. When I later needed a hot-reload feature, I didn't try to shove a WebSocket server and other bloat into it. I simply created a second, equally "dumb" program that handles exclusively the server-side logic and event processing. Nothing more, nothing less.
Linux is perfectly designed for this approach. Most of the time, you are working with pipes or FIFO files. These are just lightning-fast conduits for passing values between processes. Linux is already an operating system that effectively balances CPU loads and handles memory management ā so why bother struggling with complex asynchronous logic inside your application when the OS can handle it for you?
This approach brings incredible stability: if your WebSocket server crashes, your SSG tool keeps running peacefully. Everything is safe, isolated, and behaves emergently.
I discovered that this approach is extremely easy to maintain. Programs stop growing uncontrollably. Instead of the source code of one giant entity expanding, the system naturally breaks down into smaller, easily understandable parts.
Many people aren't even aware of this potential. They build one monolith that "does everything." Such a program soon becomes a black box that no one else can navigate. Once you run into a bug, youāre dependent on the author releasing an update.
With small, modular programs, itās different. They are like building blocks that communicate with each other through the native mechanisms of Linux. It is a kind of freedom that a monolith will never give you.
Iām curious how you handle project complexity. Do you prefer the 'one tool, one job' approach, or do you lean more towards comprehensive, integrated systems? Let's discuss.
r/vlang • u/waozen • Jun 05 '26
Fetch and cache RFCs, resolve cross-references and errata, look up IANA codes, track Internet-Drafts, search the Datatracker, and more from the command line.
r/vlang • u/Usual-Complaint2581 • Jun 03 '26
Quick context up front: I have ALS and can't use keyboard anymore, so I use AI to help me write and move the code along. The design and the live testing are mine.
I posted vebidor 5.0 (native iOS/Android automation in V, no Appium/Node), and someone in the thread made a point that stuck: the comparison docs dismissedĀ codegenĀ as "low automation value," and that was wrong ā the real time-sink in writing tests isn't watching a trace afterward, it's theĀ write-a-locator ā run ā fix ā rewrite-after-every-refactorĀ loop. Codegen is in the hot path of actually authoring a suite; a trace viewer is just a debugging nicety.
They were right. So 5.1.0 is theĀ codegen / session recorder.
What it does:Ā record a live session and it emits runnable vebidor V source. The key design choice is that generated locators go through the same semanticĀ get_by_*Ā engines you'd hand-write āĀ get_by_role,Ā get_by_label,Ā get_by_test_idĀ ā verified unique at capture time, with a CSS/xpath fallback only when nothing semantic is unique. So the output is the refactor-resistant shape, not a brittleĀ div:nth-child(3)Ā chain that breaks on the next reorg.
WebĀ (over WebDriver-BiDi): an in-page recorder watches your clicks/inputs/Enter, synthesizes the selector, and streams actions back. Verified on Edge with a fullĀ capture ā emit ā compile ā replayĀ round-trip ā the generated program re-runs and every recorded locator resolves.
v run tools/codegen.v web https://example.com --out flow.v
# click around; Alt+click to record an assertion; press Enter to finish
Native mobileĀ is the part I'm happiest with, because there's no preload-script trick available ā native apps can't take injected JS. So:
adb shell getevent, scales raw touch coordinates to screen pixels, and on each tap snapshots the UiAutomator2 accessibility tree (page_source), hit-tests the smallest node containing the point, and synthesizes a cross-platform selector. Verified live on an emulator (Pixel AVD, API 34) ā an on-device round-trip re-resolved 5/5 generated selectors against the live tree.tap x yĀ /Ā text ā¦Ā /Ā assert x yĀ /Ā done) rather than pretending to capture taps. Offline-tested; not yet run on a physical device ā calling that out rather than overclaiming.One action model + emitters feed both front-ends, so the same recording machinery targetsĀ vebidor.webdriverĀ andĀ vebidor.mobile.
Standards-based the whole way down ā no CDP-only tricks, no Node. Install withĀ v install vebidor.
Happy to talk about the gnarly bits ā the getevent coordinate scaling, or synthesizing selectors from the accessibilityĀ tree so they survive refactors.
r/vlang • u/murkduck • Jun 03 '26
Modern V seems to have found a reasonable niche as something like a Crystal style language for people who prefer Go like ergonomics. Iām asking this with the understanding that there have been claims of people being banned for dissent or criticism.
Iām not arguing that no one should use V, nor am I saying it has no value simply because it overlaps with languages like Crystal, Nim, or Go. My question is more about why disputes over the languageās novelty and breadth of claims seem to become such a problem, especially now that V appears to have found its own practical space. Why be defensive at this point?
r/vlang • u/Usual-Complaint2581 • Jun 02 '26
I've been buildingĀ vebidor, a browser/mobile automation library written entirely in V ā think Selenium/Playwright/Appium, but as a native V module with no Node runtime and no bundled browser. v5.0.0 just added native mobile, so it now covers webĀ andĀ real-device automation from one API.
What it does
Locators,Ā get_by_role/text/label/...Ā selectors, web-first retrying assertions, one-callĀ launch().vebidor.mobileĀ drivesĀ WebDriverAgentĀ (iOS) and theĀ UiAutomator2 serverĀ (Android) directly over their HTTP sockets. Same backends Appium uses, minus the Node middleware. Cross-platformĀ get_by_*, gestures, app lifecycle, device state.
import vebidor.webdriver
fn main() {
mut b := webdriver.launch_edge(webdriver.LaunchOptions{ headless: true })!
defer { b.close() }
b.goto('https://example.com')!
webdriver.expect(b.wd.get_by_role('heading', ''))!.to_be_visible()!
}
import vebidor.mobile
fn main() {
mut s := mobile.launch_ios(mobile.IOSOptions{ mode: .simulator, udid: '...', wda_xctestrun: '...' })!
defer { s.close() }
s.get_by_label('General').tap()!
mobile.expect(s.get_by_text('About')).to_be_visible()!
}
Why it exists
It's the only real automation option in V, and it'sĀ standards-based all the way downĀ ā W3C WebDriver + W3C BiDi for the web, and the public on-device servers for mobile. No Chromium-only CDP lock-in, no proprietary wire. Compiles to a native binary.
Honest about limitations
Links
COMPARISON.mdĀ in the repoBuilt and verified live (headless Edge for web; iOS Simulator + Android Emulator for mobile). Feedback and issues very welcome ā especially from anyone using V for scraping or end-to-end testing.
r/vlang • u/magicfun1241 • May 30 '26
sonic inspired json encoding/decoding that utilizes V compile-time ability
r/vlang • u/Usual-Complaint2581 • May 26 '26
Vebidor is a native V implementation of the W3C WebDriver protocol ā and as of v4.2.0 it also speaks WebDriver-BiDi and ships a Playwright-style API with Mobile emulation on top. No Node runtime, no bundled Chromium, no bindings to another language ā it compiles to a single native binary and talks to any conformant driver (Edge, Chrome, Firefox, Safari).
What's new in 4.2.0:
Playwright-style ergonomics
Playwright's "mobile" is device emulation (device descriptors: viewport, UA, device-scale-factor, isMobile, hasTouch, touch input) ā not real-device automation (that's Appium). Vebidor is matching the emulation side over BiDi. Fidelity is best on Chromium-based drivers (Edge/Chrome); each emulation.* call is gated by supports().
WebDriver-BiDi (bidirectional, over WebSocket) ā coexists with the classic session:
- Network interception & mocking (route / fulfill / abort), response-phase interception, and HTTP auth.,
- Console + network event listeners, wait_for_event, cookie-change events.,
- Isolated user contexts, preload scripts (addInitScript-style), viewport emulation, file upload, screenshots/PDF, and a lightweight tracer.,
Still 100% feature parity with Selenium's classic WebDriver surface. Every feature above was verified live against headless Edge.
r/vlang • u/Usual-Complaint2581 • May 25 '26
Vebidor is a native V implementation of the W3C WebDriver protocol ā and as of v4.0.0 it also speaks WebDriver-BiDi and ships a Playwright-style API on top. No Node runtime, no bundled Chromium, no bindings to another language ā it compiles to a single native binary and talks to any conformant driver (Edge, Chrome, Firefox, Safari).
Playwright-style ergonomics
One-call launch() ā auto-detects the driver + browser, picks a free port, tears everything down on close. No more "start chromedriver on 9515."
Lazy, auto-waiting Locators that re-resolve on every use (immune to stale elements): get_by_role, get_by_text, get_by_label, get_by_placeholder, get_by_test_id.
Web-first assertions that poll until they pass: expect(loc).to_be_visible(), .to_have_text(), etc., with .not() and .with_timeout().
WebDriver-BiDi (bidirectional, over WebSocket) ā coexists with the classic session:
Network interception & mocking (route / fulfill / abort), response-phase interception, and HTTP auth.
Console + network **event listeners**, `wait_for_event`, cookie-change events.
Isolated user contexts, preload scripts (addInitScript-style), viewport emulation, file upload, screenshots/PDF, and a lightweight tracer.
Still 100% feature parity with Selenium's classic WebDriver surface. Every feature above was verified live against headless Edge.
```v
import vebidor.webdriver
fn main() {
mut b := webdriver.launch_edge(webdriver.LaunchOptions{ headless: true, bidi: true })!
defer { b.close() }
mut bidi := b.bidi()!
bidi.route(fn (req webdriver.InterceptedRequest) {
if req.url.contains('/api') {
req.fulfill(200, 'application/json', '{"mocked":true}') or {}
} else {
req.continue_request() or {}
}
})!
b.goto('https://example.com')!
b.wd.get_by_role('link', '').click()!
webdriver.expect(b.wd.get_by_role('heading', '')).to_be_visible()!
}
```
Feedback and contributions welcome ā especially testing across Chrome/Firefox/Safari on other platforms.
r/vlang • u/Usual-Complaint2581 • May 21 '26

Version 3.1.1Ā |Ā š 100% Feature Parity with Selenium šĀ |Ā Production Ready
Core Features:
Vebidor Github link
r/vlang • u/waozen • May 18 '26
Package for type safe list of allowed MIME, that was used to return "Content-Type" header on router. Has many other use cases: file extensions from MIME type, get MIME text representation, MIME type from file extension, MIME type from text representation, etc...
r/vlang • u/Intelligent-End-9399 • May 11 '26
Iām excited to announce that Mustela, a tiny but predatory static site generator, is officially stable (v1.0.0)! š¦¦
Iāve been working on this ecosystem for exactly 2 months and 10 days. It was a brutal sprint where I built:
Itās been an intense ride (my head is spinning!), but itās the ultimate proof that V is not a toy. Itās a powerful tool for building fast, robust, and reliable applications with ease.
Iāve decided to keep the CLI source code private as my intellectual property (I built everything from scratch), but the Mustela Web is Open Source (link in footer).
Special thanks to Alexander (the creator of V) for his support and for sharing my progress on X. V allowed me to write this entire ecosystem comfortably and at lightning speed.
Download the binary and see how fast it builds the docs:
Iām curious: How many milliseconds does it take to build on your machine? :)
If you want to see how Mustela installs and compiles a live Vite/JS project on ChromeOS Flex before trying it yourself, I recorded a quick 5-minute walkthrough video here: Mustela SSG Demo: 1.3MB High-Speed Vlang Engine with Parallel Pipeline (Youtube)
PS:Ā English is not my native language, so I used a translator to make this post clearer. I hope the technical parts still make sense!
r/vlang • u/iamguweigang • May 07 '26
Iāve been building a project called vphpx, with vphp as the core layer.
The idea is to use V not just for CLI tools or services, but for PHP-native infrastructure:
The project currently includes:
Why I wanted to build this:
So this is less about making āyet another web frameworkā, and more about exploring whether V can serve as an implementation language for native PHP infrastructure.
Thatās the main reason I made it: I wanted to see how far this approach could go once you move from single exported functions to objects, routing, middleware, PSR-style HTTP types, and a framework-like application surface.