Skip to main content

Modulith

Build once. Deploy effortlessly. Run everywhere

Modulith lets you focus on your application logic, not deployment infrastructure. Structure your code as modules with defined capabilities, then serve or deploy them on any machine without worrying about the underlying infrastructure. Whether you're running locally for development or scaling across the cloud, your interface stays consistent and your modules remain reusable.

🚀 What You Get

  • 🧱 Scalable by design — move from local → distributed seamlessly
  • 🔗 Composable — build systems by combining modules, local or remote
  • 🌐 Shareable — publish and reuse modules across projects
  • 🔐 Built-in access control — rate limits, burst limits, auth tokens

📦 Install

pip install modulith

🚀 Quick Start

Define a module and run it locally:

# calculator/module.py
from modulith import Modulith

module = Modulith("calculator")

@module.capability("add")
def add(a: float, b: float) -> float:
    return a + b

result = module.add(a=1, b=2) # → 3

🐳 Deploy effortlessly

Modulith abstracts away deployment complexity. With a single command, you can deploy your module with built-in access controls, monitoring, automatic scaling. Let's you fully focus on your application logic, not the underlying infrastructure:

modulith deploy 
--source calculator.module \    
--public \                     
--rate-limit 100 \             
--burst-limit 20 

You'll see:

🔑 Your authentication token: ...

🌐 Module 'calculator' is live:
- Repository: <your_username>/calculator
- Public URL: ...

⚙️ Capabilities:
- add(a: float, b: float) → float

⚡ Public access limits:
- Rate limit: 100 requests/minute
- Burst limit: 20 requests

🌐 Run Everywhere

Now you can access your module from any machine:

calculator = Modulith.remote(
    "<your_username>/calculator",
    access_token="..."
)
result = calculator.add(a=1, b=2) # → 3 (executed remotely)

Same interface. Local or remote, no difference.

🔗 Composing Modules

Build new modules on top of existing modules:

new_module = Modulith()
calculator = Modulith.remote("<your_username>/calculator", access_token="...")

@new_module.capability("double_sum")
def double_sum(a: float, b: float) -> float:
    sum1 = calculator.add(a, b)
    sum2 = calculator.add(a, b)
    return sum1 + sum2

result = new_module.double_sum(a=1, b=2) #  → 6

Execution flow:

double_sum(1, 2)
  → add(1, 2)   [remote]  → 3
  → add(1, 2)   [remote]  → 3
  → 3 + 3                 → 6

👤 Account (Optional)

Skip manual token management by linking modules to your account:

modulith signup # Create an account
modulith login

Once logged in, your module is automatically registered under your username:

🌐 Module 'calculator' is live:
- Repository: <your_username>/calculator
...

CLI Reference

Command Description
modulith signup Create a new account and get an authentication token
modulith login Log in to your account and store the authentication token securely
modulith deploy Deploy module
modulith monitor Monitor module usage
modulith stop Stop a running module
modulith start Start a stopped module
modulith rm Remove a module

Metadata

Release files for modulith 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for modulith 0.1.8
File Size Uploaded Provenance Actions
modulith-0.1.8.tar.gz 40.3 kB With provenance Details for modulith-0.1.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for modulith 0.1.8
File Interpreter ABI Platform Actions
modulith-0.1.8-py3-none-any.whl Python 3 none any Details for modulith-0.1.8-py3-none-any.whl

Total release size: 106.2 kB

Release files / modulith-0.1.8.tar.gz

Download URL modulith-0.1.8.tar.gz
Size 40.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1e1b9ea68d38c149f3a4dc01e2dee3eeaa371797386277d78069f414041dabcf
BLAKE2b-256 checksum
How to use checksums
5ffd70d24bbbc2e3cd3027b0a203ac69e014d42141cbfe926df89b9e1cc8f00c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / modulith-0.1.8-py3-none-any.whl

Download URL modulith-0.1.8-py3-none-any.whl
Size 66.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1676350560b1f958712f9ed21a63c2d9e12015bdf1da1e7db7bbed9b91df36de
BLAKE2b-256 checksum
How to use checksums
50bbe975aba0c9c2fa1170aa9bdc76f658a9bc991ccae6dbe2c96adfc0cdba92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Security for modulith 0.1.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for modulith-0.1.8.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page