API Reference
Complete API documentation for the Quark ORM.
Core API
- Client - Creating and configuring the ORM client
- Query Builder - Fluent type-safe query construction
- CRUD - Create, Read, Update, Delete operations
- Querying - Retrieving data: List, Find, aggregates, pagination
Model Definition
- Modeling - Struct tags, relations, hooks
Schema & Data
- Transactions - ACID transactions and savepoints
- Migrations - Schema migrations and sync
Advanced Features
- Caching - Query result caching with Redis/Memory
- Multi-Tenant - Row-level, schema, and database isolation
- Observability - Middleware, OpenTelemetry, events
Reference
- Dialects - Database dialect interface
- Errors - Error types and handling
- Routines - Stored procedures and functions
Quick Example
package main
import (
"context"
_ "github.com/lib/pq"
"github.com/jcsvwinston/quark"
)
type User struct {
ID int64 `db:"id" pk:"true"`
Name string `db:"name"`
Email string `db:"email" quark:"unique"`
}
func main() {
client, _ := quark.New("postgres", "...")
ctx := context.Background()
// Create
user := &User{Name: "Alice", Email: "alice@example.com"}
quark.For[User](ctx, client).Create(user)
// Read
u, _ := quark.For[User](ctx, client).Find(user.ID)
// Query
users, _ := quark.For[User](ctx, client).
Where("active", "=", true).
OrderBy("created_at", "DESC").
List()
// Update
u.Name = "Alice Smith"
quark.For[User](ctx, client).Update(&u)
// Delete
quark.For[User](ctx, client).Delete(&u)
}