Skip to content

Jitpomi/dogrs

Repository files navigation

DogRS

A modular Rust framework with multi-tenant services, hooks, and pluggable storage — built to avoid stack lock-in.

DogRS is inspired by the simplicity of FeathersJS but reimagined for Rust.
It provides a clean core for building flexible, multi-tenant applications where storage, transports, and execution environments can be swapped or extended without rewriting your app.

✨ Features (Early Outline)

  • Multi-tenant services
    Every request and operation runs with explicit tenant context.

  • Service hooks
    Before/after/around/error pipelines for validation, logging, transforms, or anything else you need.

  • Pluggable storage backends
    Bring your own database or use multiple ones per tenant (SQL, Mongo, TypeDB, P2P, in-memory, etc.).

  • Adapter-based architecture
    Use Axum today, add Warp, Actix, Serverless, or P2P transports later.

  • No stack lock-in
    DogRS keeps your core logic clean and portable.

📦 Published Crates

All DogRS crates are now available on crates.io:

Core Framework

  • dog-core 0.1.0 → Framework-agnostic core (services, hooks, tenants, storage contracts)

Web Framework Adapters

  • dog-axum 0.1.0 → Axum adapter for HTTP APIs with multipart uploads and middleware

Auth

  • dog-auth 0.1.0 → Authentication service + strategy registry (JWT issuance)
  • dog-auth-oauth 0.1.0 → Provider-agnostic OAuth strategy + orchestration

Database Adapters

  • dog-typedb 0.1.0 → TypeDB integration with query builders and adapters

Storage & Infrastructure

  • dog-blob 0.1.0 → Production-ready blob storage with S3 compatibility and streaming

Schema & Validation

🚀 Quick Start

Add DogRS crates to your project:

# Core framework
cargo add dog-core

# Web development with Axum
cargo add dog-axum dog-core

# TypeDB integration
cargo add dog-typedb dog-core

# Blob storage
cargo add dog-blob

# Schema validation
cargo add dog-schema dog-schema-macros dog-schema-validator

📚 Docs

🧪 Examples

  • dog-examples/auth-demo includes an end-to-end OAuth2 Google login flow.
    • Uses dog-auth-oauth (enable oauth2-client feature for the reusable oauth2 client helper)
    • Exposes OAuth endpoints via dog-axum

🚧 Status

DogRS is in active development.
The goal is to build a simple but powerful foundation for real-world Rust applications without forcing a fixed stack.


Made by Jitpomi

Inspiration from: FeathersJS and NestJS.

About

A modular Rust framework with multi-tenant services, hooks, and pluggable storage — built to avoid stack lock-in.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors