Skip to main content

Argon Logo

🚀 Argon: Serverless, Branchable MongoDB Platform 🚀

Transform your MongoDB workflows with Git-style branching, stateless compute, and S3-powered time-travel!

🤔 Why Argon? • ✨ Features • ⚙️ How it Works • 🚀 Quickstart • 📚 Dive Deeper (Wiki) • 🤝 Contributing

Python 3.8+ Docker Required AWS S3 Required PyPI version PyPI downloads

🚀 Installation

Via pip (Recommended)

pip install argonctl

From source

git clone https://github.com/argon-lab/argon.git
cd argon
pip install -e .

🤔 Why Argon?

Ever wished you could manage your databases with the same flexibility as your code? Traditional MongoDB setups can be rigid and resource-intensive, making it challenging to:

  • 🧪 Experiment Freely: Quickly spin up isolated environments for testing new features or data models without impacting production.
  • 🌳 Branch & Version Data: Create independent "branches" of your database for different development tasks, just like Git.
  • ⏪ Rollback Easily: "Time-travel" to previous data states effortlessly if something goes wrong.
  • 💰 Optimize Costs: Avoid paying for idle, full-scale database clones.

Argon addresses these pain points by bringing the power of Git-like branching, stateless compute, and S3-backed versioning to MongoDB. It empowers developers and data teams to work more agilely, collaborate effectively, and innovate faster.

👉 Discover the full motivation (Wiki)

✨ Features

Argon is packed with features to supercharge your database workflows:

  • 🌿 Git-style Branching: Create, suspend, resume, and delete database branches.
  • 💨 Stateless Compute: MongoDB runs in lightweight Docker containers, decoupled from persistent storage.
  • 💾 S3-Powered Storage: Durable, versioned snapshots of your data are stored efficiently in AWS S3.
  • ⏳ Time-Travel: Restore or create new branches from any historical snapshot.
  • ⌨️ Powerful CLI: A comprehensive command-line interface to manage all aspects of Argon.
  • 🖥️ Web Dashboard (Experimental): Visualize and manage branches, with an optional auto-suspend feature for idle instances.

👉 Explore all features in detail (Wiki)

⚙️ How it Works

Argon cleverly combines Docker for containerization, AWS S3 for persistent, versioned storage, and a local metadata database to manage your branches:

  1. Branch Creation: When you create a branch, Argon can start from a base snapshot (e.g., a clean database or a production dump) stored in S3. It pulls this snapshot and launches a new, isolated MongoDB instance in a Docker container.
  2. Making Changes: You connect to this containerized MongoDB as usual and make your changes.
  3. Suspending a Branch: When you suspend a branch, Argon takes a snapshot (dump) of the container's current data, uploads it to S3 (creating a new version), and then stops and removes the Docker container, freeing up local resources.
  4. Resuming a Branch: To resume, Argon pulls the latest (or a specified) snapshot for that branch from S3 and starts a fresh Docker container with that data.
  5. Time-Travel: You can create a new branch from any historical snapshot of an existing branch, effectively rolling back to or inspecting a previous data state in an isolated environment.

This architecture ensures that your MongoDB instances are stateless (compute is separate from storage), cost-effective (only pay for S3 storage for suspended branches and compute when running), and highly flexible.

+-----------------+      +---------------------+      +-----------------+
|      User       |----->|      Argon CLI      |<---->| Metadata (SQLite)|
+-----------------+      +---------------------+      +-----------------+
                             |          ^
                             |          | (Snapshot/Restore)
                             V          |
                       +---------------------+      +-----------------+
                       | Docker (MongoDB     |----->|  AWS S3 Bucket  |
                       |       Containers)   |      | (Snapshots)     |
                       +---------------------+      +-----------------+

👉 Get the deep dive on architecture and state flows (Wiki)

🚀 Quickstart

Ready to jump in? Get Argon running in minutes!

  1. ✅ Prerequisites: Docker, AWS CLI (configured), Python 3.8+.
  2. 🛠️ Install: pip install argonctl
  3. 🔑 Configure: Run any argonctl command to start the interactive first-time setup, or manually create a .env file.
  4. 📦 Base Snapshot: Ensure base/dump.archive is in your S3 bucket (see wiki for details).
  5. 🏁 Start Using: Run argonctl project create your-project to create your first project.

👉 View the full Quickstart Guide (Wiki)

🧪 Demo Scenario

See Argon in action! Follow our step-by-step demo to create, branch, modify, and time-travel your first Argon-powered MongoDB.

👉 Walk through the Demo Scenario (Wiki)

📚 Dive Deeper (Wiki)

Want to understand the nuts and bolts? Our wiki has you covered:

📈 Status

Argon is currently in its initial launch phase. Key features are operational, and we're actively working on improvements and new capabilities.

👉 Check the current Project Status (Wiki)

🤝 Contributing

Contributions are highly welcome! Whether it's bug reports, feature ideas, or code, let's make Argon better together.

👉 Learn how to Contribute (Wiki)

(Further details in CONTRIBUTING.md)

📜 License

Argon is open-source software licensed under the MIT License.

Metadata

Release files for argonctl 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for argonctl 0.1.2
File Size Uploaded
argonctl-0.1.2.tar.gz 24.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for argonctl 0.1.2
File Interpreter ABI Platform
argonctl-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 48.5 kB

Release files / argonctl-0.1.2.tar.gz

Download URL argonctl-0.1.2.tar.gz
Size 24.6 kB
Tags Source
SHA-256 checksum
How to use checksums
795e4b574a11aea93c224cdf67f3e30e123cc5e7be9dc94de12b09a0fccce916
BLAKE2b-256 checksum
How to use checksums
d9e51c3c03ac017d7683b2f62e4d4f1c18b5c0b79bf7beb4917f9b41adb116a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / argonctl-0.1.2-py3-none-any.whl

Download URL argonctl-0.1.2-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b12efe5d3b34b860611eaa547ca1e895546873d88fce4528a9d3b6150979ed39
BLAKE2b-256 checksum
How to use checksums
97e7f027831b3d8f0a00bdd5ee99f35291f0d615f89c4e2c3b81d84e0882ae83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page