GeekORM

GeekORM is a simple Object Relational Mapper (ORM) for Rust to make using databases easier. Built with type safety and ease of use in mind.

Rust Rust Database ORM SQLite PostgreSQL
GeekORM

GeekORM

GeekORM is a simple, lightweight Object Relational Mapper (ORM) for Rust that makes working with databases straightforward and type-safe.

Features

  • Type-Safe: Leverage Rust’s type system for compile-time query validation
  • Simple API: Easy-to-use interface for common database operations
  • Multiple Databases: Support for SQLite, PostgreSQL, and more
  • Lightweight: Minimal dependencies and overhead
  • Developer-Friendly: Great error messages and documentation

Getting Started

Add GeekORM to your Cargo.toml:

[dependencies]
geekorm = "0.1"

Example Usage

use geekorm::{prelude::*, GeekConnection};

#[derive(Table, Debug, Clone)]
struct User {
    #[geekorm(primary_key, auto_increment)]
    id: PrimaryKey<i32>,
    username: String,
    email: String,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let conn = GeekConnection::new("sqlite::memory:")?;
    
    // Create table
    User::create_table(&conn)?;
    
    // Insert user
    let user = User::new("geekmasher", "hello@geekmasher.dev")
        .save(&conn)?;
    
    // Query users
    let users = User::query().fetch_all(&conn)?;
    
    Ok(())
}

Why GeekORM?

Built by developers who were frustrated with complex ORMs, GeekORM focuses on:

  • Simplicity over features: Do the basics really well
  • Type safety: Catch errors at compile time
  • Performance: Minimal overhead
  • Great DX: Excellent error messages and documentation