Skip to main content

Declarative microVM workloads for Python — author once, emit a Nix flake, boot under mvm.

Project description

mvm — Python SDK

Declarative microVM workloads for Python. Decorate a function or describe a workload, and the mvmforge host CLI emits a Nix flake plus a launch plan that mvm can boot.

pip install mvm

The host CLI (mvmforge, written in Rust) is distributed separately. The Python SDK ships only the authoring + runtime surfaces that the host subprocesses to.

Quick start

# app.py
import mvm as mv

@mv.func(
    name="adder",
    image=mv.nix_packages(["python312"]),
    resources=mv.resources(cpu_cores=1, memory_mb=256, rootfs_size_mb=512),
)
def add(a: int, b: int) -> int:
    return a + b
mvmforge emit app.py        # canonical IR
mvmforge compile app.py     # flake.nix + launch.json
mvmforge up app.py          # boot under mvm (dev only)

Three surfaces

Surface Purpose
Authoring @mv.app, @mv.func, mv.workload(...), factories for image / network / resources / deps.
Runtime f.remote(...) and mv.session(...) — host-side calls into a function-entrypoint VM. Dev-only by design.
Sandbox mv.Sandbox, Process, FileEntry — typed lifecycle handles over local mvm sandbox primitives. Dev-only.

The runtime SDK exists to assist build-time emission and dev-time introspection. Production microVMs are observed via mvmctl logs and output streams; no host-side .remote() calls.

Optional extras

pip install 'mvm[schema]'   # pydantic-based schema auto-derivation

Documentation

Full documentation: https://mvmforge-docs.pages.dev/sdks/python/

License

Apache-2.0

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

mvm-0.1.2.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

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

mvm-0.1.2-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mvm-0.1.2.tar.gz
  • Upload date:
  • Size: 31.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mvm-0.1.2.tar.gz
Algorithm Hash digest
SHA256 403b479556fee6d6b9779b1e55ff70a6c8eff2aef5d34e8170647d8a89b6e9fe
MD5 5566290dd78b3846e9bb5b3cde1da827
BLAKE2b-256 12001498eed06478f93e66e2b9305632b281b038c3048a7002d3e3274693b893

See more details on using hashes here.

Provenance

The following attestation bundles were made for mvm-0.1.2.tar.gz:

Publisher: publish-python.yml on tinylabscom/mvmforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: mvm-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 36.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mvm-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9fb7ccdc063fb6c4819b8dc3fccea9d55c39fe53042ef7da5127135b18eb6041
MD5 214444d93b8d2aa37032ae2b37927d5f
BLAKE2b-256 40f34d401aa35d0e61e291cd4cf2a7874051c611b539bea3228670783f529d28

See more details on using hashes here.

Provenance

The following attestation bundles were made for mvm-0.1.2-py3-none-any.whl:

Publisher: publish-python.yml on tinylabscom/mvmforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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