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: Create a .env file and add your AWS S3 bucket name and other settings.
  4. ๐Ÿ“ฆ Base Snapshot: Ensure base/dump.archive is in your S3 bucket (see wiki for details).
  5. ๐Ÿ 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:

๐Ÿ“ˆ 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.1.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.1-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

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

Hashes for argonctl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4ca29036f5cacf3066f32114c72e0e34594254fe812d8b6ad4b9129bef2df27c
MD5 34f0d04874eb0ff5972d8203b47c4dde
BLAKE2b-256 64dc6b4d7716d3b10e33ac29aaceaa58d0e5b756073488db321184124e2018b4

See more details on using hashes here.

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

Hashes for argonctl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2336f4165e7445823e333a03657bf980e7efeb9ef4367f2d80d60fd17c0d1e97
MD5 3b2c4fcbdf5a7fb8ef96b2b07499e363
BLAKE2b-256 9d423a09a7c24300244c55e963b9105bb63cf85a451bcbdfd478b7386612f971

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