Your photos. Your files. Your storage.
Drop-in sync engine for any Python app. Connect S3, R2, Dropbox, SFTP, WebDAV, and more — no lock-in.
Why Muleline
A sync engine that does one thing well: move files between clients and servers without losing anything.
device_id.
pip install muleline[s3]. Or implement StorageBackend for your NAS, WebDAV, or anything else.
Storage Backends
Connect your storage. Keep your files. Muleline works with your existing infrastructure — cloud, self-hosted, or local.
Quick Start
Install, wire into your FastAPI app, and every /sync/* endpoint is live.
# Install: pip install muleline from fastapi import FastAPI from muleline.engine import SyncEngine from muleline.storage import LocalStorage from muleline.db import run_migrations import muleline.router as sync_router app = FastAPI() # Initialize run_migrations() engine = SyncEngine(storage=LocalStorage("./data/uploads")) sync_router.init(engine) # Mount — all endpoints live at /sync/* app.include_router(sync_router.router)
Pricing
Self-host for free forever. Managed cloud hosting when you want us to handle the ops.
Muleline is in active development. The core engine is stable — packaging, docs, and a hosted demo are coming. Drop your email to be notified.
No spam. Just a ping when Muleline hits PyPI.