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. ๐Ÿ› ๏ธ 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.

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.2.tar.gz (24.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.2-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: argonctl-0.1.2.tar.gz
  • Upload date:
  • Size: 24.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.2.tar.gz
Algorithm Hash digest
SHA256 795e4b574a11aea93c224cdf67f3e30e123cc5e7be9dc94de12b09a0fccce916
MD5 e41aedc18e36eccb82d80a7bfd66fb68
BLAKE2b-256 d9e51c3c03ac017d7683b2f62e4d4f1c18b5c0b79bf7beb4917f9b41adb116a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: argonctl-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 23.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b12efe5d3b34b860611eaa547ca1e895546873d88fce4528a9d3b6150979ed39
MD5 8ec26d7da559270866abe6eb7d38998e
BLAKE2b-256 97e7f027831b3d8f0a00bdd5ee99f35291f0d615f89c4e2c3b81d84e0882ae83

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