Skip to content

db — Overview

The db module provides database connectors, high-level connection management, and a GORM-style ORM for Vex.

Supported Databases

DriverConstantUsage
SQLiteSQLITEConnection.sqlite(":memory:")
PostgreSQLPOSTGRESConnection.postgres("host=... dbname=...")
MySQLMYSQLConnection.mysql("user:pass@tcp(host)/db")
RedisREDISConnection.redis("localhost:6379")
MongoDBMONGOConnection.open(MONGO, connstring)

Quick Start

rust
import { Connection, QueryResult } from "db";

let conn = Connection.sqlite(":memory:");
if !conn.ok() { println(conn.errMsg()); return; }

conn.exec("CREATE TABLE users (id INTEGER, name TEXT)");
conn.exec("INSERT INTO users VALUES (1, 'Alice')");

let count = conn.queryValue("SELECT COUNT(*) FROM users");  // "1"

let rs = conn.query("SELECT id, name FROM users");
while rs.next() {
    println("{rs.text(0)}: {rs.text(1)}");
}
rs.free();
conn.close();

Module Structure

ComponentDescription
lib.vxConnection, QueryResult, FFI bindings
orm/orm.vxDb<T> generic query builder
orm/query.vxSQL generation (SELECT, INSERT, UPDATE, DELETE)
orm/scanner.vxRow → Struct mapping

Released under the MIT License.