Argon CLI brings Git-style branching to MongoDB, streamlining AI, ML, and data science project management.
Project description
๐ 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
๐ 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:
- 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.
- Making Changes: You connect to this containerized MongoDB as usual and make your changes.
- 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.
- 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.
- 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!
- โ Prerequisites: Docker, AWS CLI (configured), Python 3.8+.
- ๐ ๏ธ Install:
pip install argonctl - ๐ Configure: Create a
.envfile and add your AWS S3 bucket name and other settings. - ๐ฆ Base Snapshot: Ensure
base/dump.archiveis in your S3 bucket (see wiki for details). - ๐ Initialize:
argonctl init(first run initializes local DB).
๐ 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:
- ๐ค Introduction & Motivation
- โจ Features
- โ๏ธ How Argon Works & High-Level Design
- ๐ Quickstart Guide
- ๐งช Demo Scenario
- ๐ Environment Variables
- ๐ Folder Structure
- ๐ Project Status
- ๐ค Contributing to Argon
๐ 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file argonctl-0.1.1.tar.gz.
File metadata
- Download URL: argonctl-0.1.1.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ca29036f5cacf3066f32114c72e0e34594254fe812d8b6ad4b9129bef2df27c
|
|
| MD5 |
34f0d04874eb0ff5972d8203b47c4dde
|
|
| BLAKE2b-256 |
64dc6b4d7716d3b10e33ac29aaceaa58d0e5b756073488db321184124e2018b4
|
File details
Details for the file argonctl-0.1.1-py3-none-any.whl.
File metadata
- Download URL: argonctl-0.1.1-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2336f4165e7445823e333a03657bf980e7efeb9ef4367f2d80d60fd17c0d1e97
|
|
| MD5 |
3b2c4fcbdf5a7fb8ef96b2b07499e363
|
|
| BLAKE2b-256 |
9d423a09a7c24300244c55e963b9105bb63cf85a451bcbdfd478b7386612f971
|