| Crates.io | realmenv |
| lib.rs | realmenv |
| version | 0.1.0 |
| created_at | 2025-09-16 13:59:55.634965+00 |
| updated_at | 2025-09-16 13:59:55.634965+00 |
| description | Zero-config development environment with isolated runtimes, process management, and intelligent HTTP proxy |
| homepage | https://github.com/wess/realm |
| repository | https://github.com/wess/realm |
| max_upload_size | |
| id | 1841753 |
| size | 151,771 |
Realm eliminates the complexity of modern full-stack development by providing:
# Install using cargo
cargo install realm
# Clone and build from source
git clone https://github.com/wess/realm
cd realm
cargo install --path .
Download the latest release for your platform:
curl -sSfL https://github.com/wess/realm/releases/latest/download/install.sh | bash
This will download and install realm to /usr/local/bin.
# Create a new full-stack project
realm init myapp --template=react-express --runtime=bun
# Activate the environment
cd myapp
source .venv/bin/activate
# Start everything (processes + proxy)
realm start
# Visit http://localhost:8000 - it just works!
# Create with specific runtime and template
realm init .venv --runtime=node@20 --template=vue-express
# Or just create empty environment
realm init .venv
source .venv/bin/activate
# Your shell now shows: (realm) $
# Start all processes + proxy server
realm start
# Or start components separately
realm proxy # Just the proxy
realm stop # Stop everything
# Generate Docker deployment artifacts
realm bundle
cd dist && ./deploy.sh
Realm uses realm.yml for project configuration:
proxy_port: 8000
env:
NODE_ENV: development
API_URL: http://localhost:4001
env_file: .env
processes:
frontend:
command: "bun run dev"
port: 4000
routes: ["/", "/assets/*"]
working_directory: "frontend"
backend:
command: "bun run server"
port: 4001
routes: ["/api/*", "/health"]
working_directory: "backend"
Realm includes built-in templates for common stacks:
react-express - React frontend + Express backendsvelte-fastify - SvelteKit + Fastify backendvue-express - Vue 3 + Express backendnextjs - Next.js 14 full-stack app# List available templates
realm templates list
# Create project from template
realm init myapp --template=svelte-fastify
# Create your own template
realm create --template=my-stack
Realm automatically manages runtime versions per project:
# Use latest Bun (default)
realm init .venv
# Use specific Node.js version
realm init .venv --runtime=node@20
# Use specific Bun version
realm init .venv --runtime=bun@1.0.0
Runtimes are isolated per realm environment - no global pollution!
The built-in proxy intelligently routes requests:
/api/* → backend:4001, / → frontend:4000/health endpointRealm's process manager handles service lifecycle:
realm.ymlGenerate production-ready artifacts:
realm bundle
Creates dist/ with:
┌─────────────────────────────────────────────┐
│ Realm CLI │
├─────────────────────────────────────────────┤
│ Proxy Server (port 8000) │
│ ├── Route: /api/* → backend:4001 │
│ ├── Route: / → frontend:4000 │
│ └── Route: /health → built-in │
├─────────────────────────────────────────────┤
│ Process Manager │
│ ├── frontend: bun run dev │
│ ├── backend: bun run server │
│ └── docs: bun run docs │
├─────────────────────────────────────────────┤
│ Runtime Manager │
│ ├── Bun 1.0.0 (per project) │
│ └── Node.js 20.5.0 (per project) │
├─────────────────────────────────────────────┤
│ Environment Manager │
│ ├── .env file loading │
│ └── Variable isolation │
└─────────────────────────────────────────────┘
realm init [path] - Create new realm environmentsource .venv/bin/activate - Activate environmentdeactivate - Exit realm environmentrealm start - Start all processes + proxyrealm stop - Stop all processes + proxyrealm proxy - Start proxy server onlyrealm templates list - List available templatesrealm create --template=name - Create template from current projectrealm bundle - Generate deployment artifacts--runtime=bun|node - Specify runtime (default: bun)--runtime=node@20 - Specify runtime version--template=name - Use project template# Terminal 1: Start frontend
cd frontend && npm run dev
# Terminal 2: Start backend
cd backend && npm run server
# Terminal 3: Start proxy
nginx -c nginx.conf
# Terminal 4: Set up environment
export NODE_ENV=development
export API_URL=http://localhost:4001
source .env
# Remember all the ports, manage processes, configure nginx...
realm init .venv --template=react-express
source .venv/bin/activate
realm start
# Done. Everything runs on http://localhost:8000
git clone https://github.com/wess/realm
cd realm
cargo install --path .
Realm is built in Rust with a modular architecture:
src/cli/ - Command-line interfacesrc/config/ - Configuration parsing (realm.yml)src/runtime/ - Runtime version managementsrc/process/ - Process lifecycle managementsrc/proxy/ - HTTP proxy server with routingsrc/templates/ - Project scaffoldingsrc/bundle/ - Deployment artifact generationtests/ - Comprehensive test suitecargo test
# Build in development mode
cargo build
# Run with debug output
RUST_LOG=debug cargo run -- start
MIT License - see LICENSE file.
| Feature | Realm | Docker Compose | Foreman | Create-React-App |
|---|---|---|---|---|
| Process Management | ✅ | ✅ | ✅ | ❌ |
| Built-in Proxy | ✅ | ❌ | ❌ | ❌ |
| Runtime Isolation | ✅ | ✅ | ❌ | ❌ |
| Project Templates | ✅ | ❌ | ❌ | ✅ |
| Production Deploy | ✅ | ✅ | ❌ | ✅ |
| Zero Config | ✅ | ❌ | ❌ | ✅ |
| Multi-Runtime | ✅ | ✅ | ❌ | ❌ |
| Environment Isolation | ✅ | ✅ | ❌ | ❌ |
Realm combines the best aspects of these tools into a single, cohesive development environment.