Skip to main content

Argon CLI brings Git-style branching to MongoDB, streamlining AI, ML, and data science project management.

Project description

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. ๐Ÿ“ฅ Clone: git clone https://github.com/jakezwang/argon.git && cd argon
  3. ๐Ÿ› ๏ธ Install: pip install -r requirements.txt
  4. ๐Ÿ”‘ Configure: Copy .env.example to .env and fill in your details (especially S3_BUCKET).
  5. ๐Ÿ“ฆ Base Snapshot: Ensure base/dump.archive is in your S3 bucket (see wiki for details).
  6. ๐Ÿ Initialize: python3 cli/main.py (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:

๐Ÿ“ˆ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argonctl-0.1.0.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argonctl-0.1.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file argonctl-0.1.0.tar.gz.

File metadata

  • Download URL: argonctl-0.1.0.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

Hashes for argonctl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e269216d43a36ab9c7bea91967f93c9e0a95a1850713648e78dc5c15251cf308
MD5 6f48dac81189385efb13313e2a46583a
BLAKE2b-256 8414518155ad4f585b90c52c78cc21f07f8618e2656794a5193a7c3d3eb0974d

See more details on using hashes here.

File details

Details for the file argonctl-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: argonctl-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for argonctl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24efbf742b38affb05d2536e5ac203b270faa6ae963a773bde3da4d25f8e0090
MD5 621d239ed84a95a3be478aa5ff9d0cb6
BLAKE2b-256 d55a1eeb91e8a7772697baad7828c8f9252cab3ed724a41eceac6fd10b3b32bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page