# Argon - MongoDB Time Machine 🚀
[](https://github.com/argon-lab/argon/actions/workflows/ci.yml)
[](https://goreportcard.com/report/github.com/argon-lab/argon)
[](https://opensource.org/licenses/MIT)
[](https://github.com/argon-lab/homebrew-tap)
[](https://www.npmjs.com/package/argonctl)
[](https://pypi.org/project/argon-mongodb/)
**Travel through time in your MongoDB database. Branch, restore, and experiment without fear.**
## What is Argon?
Argon gives MongoDB superpowers with **Git-like branching** and **time travel**. Create instant database branches, restore to any point in history, and never lose data again.
### 🎯 Key Benefits
- **⚡ Instant Branches** - Clone your entire database in 1ms (not hours)
- **⏰ Time Travel** - Query your data from any point in history with **220,000+ queries/sec**
- **🔄 Safe Restore** - Preview changes before restoring
- **💾 Zero Storage Cost** - Branches share data efficiently with 90% compression
- **🔌 Drop-in Compatible** - Works with existing MongoDB code
- **🚀 Enterprise Performance** - 26x faster time travel queries after latest optimizations
- **✅ Comprehensive Testing** - Extensive test coverage ensuring reliability
- **🗜️ Smart Compression** - Automatic WAL compression reduces storage by 80-90%
## Quick Demo
```bash
# Install
brew install argon-lab/tap/argonctl # macOS
npm install -g argonctl # Cross-platform
# Step 1: Import your existing MongoDB (like "git clone")
argon import database --uri "mongodb://localhost:27017" --database myapp --project myapp
# ✅ Your data now has time travel capabilities!
# Step 2: Use Argon like Git for your database
argon branches create test-env # Branch like "git checkout -b"
argon time-travel query --project myapp --branch main --lsn 1000
# Step 3: Disaster recovery made simple
argon restore preview --time "1 hour ago"
argon restore reset --time "before disaster"
```
## Git-Like Workflow for MongoDB
### 🔄 **Step 1: Import ("git clone" for databases)**
```bash
# Bring your existing MongoDB into Argon
argon import preview --uri "mongodb://localhost:27017" --database myapp
argon import database --uri "mongodb://localhost:27017" --database myapp --project myapp
# ✅ Your existing data now has time travel capabilities!
```
### 🧪 **Step 2: Branch ("git checkout -b")**
```bash
# Create branches for testing, staging, experiments
argon branches create staging --project myapp
argon branches create experiment-v2 --project myapp
# Full database copies created instantly 🚀
```
### 📊 **Step 3: Time Travel ("git log" for data)**
```bash
# See your data's history
argon time-travel info --project myapp --branch main
argon time-travel query --project myapp --branch main --lsn 1000
# Compare data across time like Git commits
```
### 🚨 **Step 4: Restore ("git reset" for disasters)**
```bash
# "Someone deleted all users!"
argon restore reset --time "5 minutes ago"
# Crisis averted in seconds, not hours
```
## How It Works
Argon intercepts MongoDB operations and logs them to a **Write-Ahead Log (WAL)**, enabling:
- Instant branching via metadata pointers
- Time travel by replaying operations
- Zero-copy efficiency
Your existing MongoDB code works unchanged - just add `ENABLE_WAL=true`.
## Installation
```bash
# CLI
brew install argon-lab/tap/argonctl # macOS
npm install -g argonctl # Node.js
pip install argon-mongodb # Python SDK
# From Source
git clone https://github.com/argon-lab/argon
cd argon/cli && go build -o argon
```
## Documentation
- 📖 [Quick Start Guide](./docs/QUICK_START.md)
- 🛠️ [API Reference](./docs/API_REFERENCE.md)
- 💡 [Use Cases](./docs/USE_CASES.md)
- 🏗️ [Architecture](./docs/ARCHITECTURE.md)
## Community
- 🤝 [Community Guide](./COMMUNITY.md) - Get involved!
- 📋 [Roadmap](./ROADMAP.md) - See what's coming
- 🐛 [Report Issues](https://github.com/argon-lab/argon/issues)
- 💬 [Discussions](https://github.com/argon-lab/argon/discussions)
- 🏗️ [Contributing](./CONTRIBUTING.md) - Help build Argon
- 📧 [Contact](https://www.argonlabs.tech)
---
**Give your MongoDB a time machine. Never lose data again.**
⭐ **Star us** if Argon saves your day!
[Get Started →](docs/QUICK_START.md) | [Live Demo →](https://console.argonlabs.tech)