Skip to content

dr3dnought/dew

Repository files navigation

Dew

A lightweight, type-safe ORM library for Go.

Features

  • Type-safe queries with builder pattern
  • Support for PostgreSQL, SQLite, MySQL
  • Automatic struct mapping
  • SQL injection protection

Installation

go get github.com/dr3dnought/dew

Quick Start

package main

import (
    "log"
    "github.com/dr3dnought/dew"
    _ "github.com/mattn/go-sqlite3"
)

// Define model
type User struct {
    ID    int
    Name  string
    Email string
}

// Define schema
var UserSchema = dew.DefineSchema("users", func(t dew.Table[User]) struct {
    dew.Table[User]
    ID    dew.IntColumn
    Name  dew.StringColumn
    Email dew.StringColumn
} {
    return struct {
        dew.Table[User]
        ID    dew.IntColumn
        Name  dew.StringColumn
        Email dew.StringColumn
    }{
        Table: t,
        ID:    t.IntColumn("id"),
        Name:  t.StringColumn("name"),
        Email: t.StringColumn("email"),
    }
})

func main() {
    db, err := dew.Open("sqlite3", ":memory:")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    users, err := dew.From[User](db, UserSchema).
        Where(UserSchema.Name.Eq("Alice")).
        All()
}

Documentation

Full documentation: https://dr3dnought.github.io/dew/

License

MIT - see LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages