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
- dog-schema
0.1.0โ Schema definition and validation utilities - dog-schema-macros
0.1.0โ Procedural macros for schema generation - dog-schema-validator
0.1.0โ Advanced validation utilities with runtime constraints
๐ Quick Start
Add DogRS crates to your project:
# Core framework
# Web development with Axum
# TypeDB integration
# Blob storage
# Schema validation
๐ Docs
๐งช Examples
dog-examples/auth-demoincludes an end-to-end OAuth2 Google login flow.- Uses
dog-auth-oauth(enableoauth2-clientfeature for the reusableoauth2client helper) - Exposes OAuth endpoints via
dog-axum
- Uses
๐ง 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.