A multi-cloud framework for big data analytics and embarrassingly parallel jobs, that provides an universal API for building parallel applications in the cloud ☁️🚀
See the code
Lithops is a Python multi-cloud distributed computing framework that lets you run unmodified Python code at massive scale across cloud, HPC, and on-premise platforms. It supports major cloud providers and Kubernetes platforms, running your code transparently without requiring you to manage deployment or infrastructure.
Lithops is ideal for highly parallel workloads—such as Monte Carlo simulations, machine learning, metabolomics, or geospatial analytics—and lets you tailor execution to your priorities: you can optimize for performance using AWS Lambda to launch hundreds of functions in milliseconds, or reduce costs by running the same code on AWS Batch with Spot Instances.
Install Lithops from the PyPI repository:
pip install lithops
Execute a Hello World function:
lithops hello
Lithops provides an extensible backend architecture for compute and storage, designed to work with various cloud providers and on-premise platforms. You can write your code in Python and run it unmodified across major cloud providers and Kubernetes environments.
📁 Follow these instructions to configure your compute and storage backends
Supported backends by platform:
Lithops provides a native compute API, two drop-in replacements for standard Python APIs, and two storage APIs.
from lithops import FunctionExecutor
def double(i):
return i * 2
with FunctionExecutor() as fexec:
f = fexec.map(double, [1, 2, 3, 4])
print(f.result())
from lithops.concurrent.futures import ProcessPoolExecutor
def double(i):
return i * 2
with ProcessPoolExecutor() as executor:
print(list(executor.map(double, [1, 2, 3, 4])))
from lithops.multiprocessing import Pool
def double(i):
return i * 2
with Pool() as pool:
result = pool.map(double, [1, 2, 3, 4])
print(result)
from lithops import Storage
if __name__ == "__main__":
st = Storage()
st.put_object(bucket='mybucket', key='test.txt', body='Hello World')
print(st.get_object(bucket='mybucket', key='test.txt'))
from lithops.storage.cloud_proxy import os
if __name__ == "__main__":
filepath = 'bar/foo.txt'
with os.open(filepath, 'w') as f:
f.write('Hello world!')
dirname = os.path.dirname(filepath)
print(os.listdir(dirname))
os.remove(filepath)
You can find more usage examples in the examples folder.
For documentation on using Lithops, see the latest release documentation.
If you are interested in contributing, see CONTRIBUTING.md.
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 825184 (CloudButton).
(top 30 of 47)
Python
99.2%
A multi-cloud framework for big data analytics and embarrassingly parallel jobs, that provides an universal API for building parallel applications in the cloud ☁️🚀
See the code
Lithops is a Python multi-cloud distributed computing framework that lets you run unmodified Python code at massive scale across cloud, HPC, and on-premise platforms. It supports major cloud providers and Kubernetes platforms, running your code transparently without requiring you to manage deployment or infrastructure.
Lithops is ideal for highly parallel workloads—such as Monte Carlo simulations, machine learning, metabolomics, or geospatial analytics—and lets you tailor execution to your priorities: you can optimize for performance using AWS Lambda to launch hundreds of functions in milliseconds, or reduce costs by running the same code on AWS Batch with Spot Instances.
Install Lithops from the PyPI repository:
pip install lithops
Execute a Hello World function:
lithops hello
Lithops provides an extensible backend architecture for compute and storage, designed to work with various cloud providers and on-premise platforms. You can write your code in Python and run it unmodified across major cloud providers and Kubernetes environments.
📁 Follow these instructions to configure your compute and storage backends
Supported backends by platform:
Lithops provides a native compute API, two drop-in replacements for standard Python APIs, and two storage APIs.
from lithops import FunctionExecutor
def double(i):
return i * 2
with FunctionExecutor() as fexec:
f = fexec.map(double, [1, 2, 3, 4])
print(f.result())
from lithops.concurrent.futures import ProcessPoolExecutor
def double(i):
return i * 2
with ProcessPoolExecutor() as executor:
print(list(executor.map(double, [1, 2, 3, 4])))
from lithops.multiprocessing import Pool
def double(i):
return i * 2
with Pool() as pool:
result = pool.map(double, [1, 2, 3, 4])
print(result)
from lithops import Storage
if __name__ == "__main__":
st = Storage()
st.put_object(bucket='mybucket', key='test.txt', body='Hello World')
print(st.get_object(bucket='mybucket', key='test.txt'))
from lithops.storage.cloud_proxy import os
if __name__ == "__main__":
filepath = 'bar/foo.txt'
with os.open(filepath, 'w') as f:
f.write('Hello world!')
dirname = os.path.dirname(filepath)
print(os.listdir(dirname))
os.remove(filepath)
You can find more usage examples in the examples folder.
For documentation on using Lithops, see the latest release documentation.
If you are interested in contributing, see CONTRIBUTING.md.
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 825184 (CloudButton).
(top 30 of 47)
Python
99.2%