Multi-cloud serverless for Python

Run Python code
at massive scale.

Lithops turns your laptop into a supercomputer. Fan a single Python function out to thousands of parallel cloud workers in seconds — no servers, no YAML, no infrastructure to manage.

$ pip install lithops
0functions in parallel
0aggregate bandwidth
0cloud backends
invokerdispatching…
active workers0
running0
completed0
// runs anywhere
IBM Cloud AWS Google Cloud Azure Oracle Cloud Alibaba Cloud Kubernetes OpenShift
// architecture

Your laptop → thousands of workers → back again

Write plain Python. Lithops serializes your function and data, provisions the workers, invokes them in parallel across your chosen backend, and streams the results straight back to your session.

1 · Write

A regular Python function and an iterable. No decorators, no rewrites.

2 · Dispatch

The executor packages code + data and invokes workers in parallel.

3 · Scale out

Thousands of serverless functions run at once, right next to your data.

4 · Collect

Results and logs stream back as if it all ran locally.

get / put map() invoke objects CLIENT import lithops fexec.map(fn, data) fexec.get_result() your laptop LITHOPS RUNTIME Serializer code + module analysis Executor orchestrates the job Invoker fans out to workers LITHOPS MONITOR JobMonitor polls storage COMPUTE BACKEND 1 … N functions OBJECT STORAGE code data results poll status results
// why lithops

Built for developers, tuned for scale

Zero-config scale-out

Go from one core to thousands with a single map(). No cluster to spin up, no capacity planning.

🌍

True multi-cloud

The same code runs on AWS, GCP, Azure, IBM, Oracle, Aliyun, Kubernetes and HPC. Provider details stay transparent.

🐍

Just Python

NumPy, pandas, scikit-learn — your existing code, unmodified. No cloud-specific boilerplate.

📦

Object storage, simplified

Automatic discovery and transparent partitioning of CSV, Parquet and JSON straight from S3-style buckets.

🎯

Optimize your way

Chase latency with Lambda's millisecond starts, or cut cost with Batch on Spot — same program, your call.

🔎

Error-friendly

Traceback a remote failure just like a local one. Built-in logging, retries and event sourcing.

// two lines to the cloud

Change how it runs, not what you write

Pick an example. This is the whole program — Lithops handles the rest.

hello.py
# A single serverless invocation
import lithops

def hello(name):
    return f'Hello {name}!'

fexec = lithops.FunctionExecutor()
fexec.call_async(hello, 'World')
print(fexec.get_result())
# Estimate Pi with 10 parallel workers
import lithops, random

def is_inside(n):
    count = 0
    for _ in range(n):
        x, y = random.random(), random.random()
        if x*x + y*y < 1:
            count += 1
    return count

np, n = 10, 15_000_000
parts = [n // np] * np

fexec = lithops.FunctionExecutor()
fexec.map(is_inside, parts)          # fan out
pi = sum(fexec.get_result()) / n * 4  # fan in
print(f'Estimated Pi: {pi}')
# Map then reduce, in the cloud
import lithops

iterdata = [1, 2, 3, 4]

def my_map(x):
    return x + 7

def my_reduce(results):
    return sum(results)

fexec = lithops.FunctionExecutor()
fexec.map_reduce(my_map, iterdata, my_reduce)
print(fexec.get_result())
# Unified storage across any cloud
from lithops import Storage

st = Storage()
st.put_object(bucket='mybucket',
              key='test.txt',
              body='Hello World')

data = st.get_object(bucket='mybucket',
                     key='test.txt')
print(data)
terminal
$ python hello.py

Swap FunctionExecutor()'s backend in ~/.lithops/config — your code never changes.

// compute anywhere

One API. Every major backend.

Mix serverless functions, containers, VMs, Kubernetes and HPC — Lithops keeps provider management out of your code.

Serverless functions

  • AWS Lambda
  • Google Cloud Run functions
  • Azure Functions
  • Oracle Functions
  • Aliyun Function Compute
  • OpenWhisk

Containers & batch

  • AWS Batch
  • Google Cloud Run
  • Azure Container Apps
  • IBM Code Engine
  • Kubernetes Jobs
  • Knative
  • Singularity

Virtual machines

  • AWS EC2
  • Google Compute Engine
  • Azure Virtual Machines
  • IBM Virtual Private Cloud
  • Generic VM / on-prem

Storage

  • AWS S3
  • Google Cloud Storage
  • Azure Blob
  • IBM COS
  • MinIO · Ceph · Redis
  • Swift · Infinispan
// what you can build

Embarrassingly parallel? Perfect fit.

If your problem breaks into many small, independent tasks, Lithops solves it at scale — fast.

🔁

Monte Carlo simulations

Run millions of stochastic trials across thousands of cores and aggregate in seconds.

🧬

Genomics & metabolomics

Powering platforms like MetaSpace on Lambda + EC2 directly over S3.

🗺️

Geospatial analytics

Tile, process and reduce huge raster/vector datasets in parallel.

🧠

ML & hyperparameter tuning

Sweep parameter grids and preprocess training data at cloud scale.

📊

Big data ETL

Partition CSV/Parquet/JSON automatically and transform terabytes in one pass.

🔬

Scientific pipelines

From HPC clusters to pre-exascale supercomputers via the Lithops HPC backend.

Give your Python 1000 cores.

Two lines of setup. Zero infrastructure. Start on localhost, deploy to any cloud.

$ pip install lithops && lithops hello