Verun
The Java runtime inside Liwiro: Versa execution, VDB persistence, VQL, and session-aware data operations for generated services.
Verun
Verun is the runtime layer inside the Liwiro repository. It is a Java 11 Maven project with two modules: VI, the Versa interpreter, and VDB, the database and command engine. Together they give generated services a place to store data, run custom logic, and apply session and role rules.
The point is practical. Teams should not need to rebuild the same persistence, scripting, transport, and authority plumbing for every service. Verun makes those capabilities available as a shared foundation; Liwiro makes them usable through a service-design and operations workflow.
The two modules
VI reads and runs .versa programs. Its pipeline tokenizes source, parses it into an AST, evaluates it in a runtime context, and exposes native modules plus VDB helpers to scripts. It is used for standalone files, an interactive REPL, generated endpoints that need procedural behaviour, and VDB script or job paths.
VDB owns durable application data and the commands used to work with it. It manages domains, databases, collections, model metadata, BSON-backed persistence, VQL execution, sessions, users, roles, and stored scripts. It can be reached from a console, HTTP, Unix sockets, and local named-pipe support.
Runtime shape
flowchart LR
A[CLI, HTTP, or local IPC] --> B[VDB]
B --> C[VQL command processing]
C --> D[BSON-backed storage]
C --> E[VI / Versa interpreter]
E --> B
F[Liwiro backend] --> B
F --> E
VDB is deliberately the data foundation. VI depends on VDB’s public API when a script needs data, while VDB itself does not depend on the interpreter to perform basic storage work. This keeps ordinary data operations usable without pulling script execution into every path.
How it helps Liwiro
Liwiro accepts a LAPIS service contract, validates it, and generates a managed API service. A generated route can use a direct CRUD operation, a custom VQL command, or a Versa script. Verun is what makes the latter two paths concrete: VDB executes and persists the data work, while VI evaluates the service logic when the route needs more than CRUD.
That is how the pair widens the software-development bottleneck. Instead of hand-assembling a database connection, a query layer, a scripting surface, and a control interface for each idea, people can begin with a declared service and focus their effort on the rules that are specific to the product.
Scope and limits
This entry describes the verun/ directory at the linked Liwiro revision. It is a focused Java runtime, not a claim that it is a complete general-purpose platform. The repository includes the source, Maven configuration, scripts, demos, tests, VDB help resources, and Versa examples that show its current capabilities.