Skip to content

Lithops - Lightweight Optimised Serverless Processing

License

Notifications You must be signed in to change notification settings

cclauss/lithops

 
 

Repository files navigation

Lithops

Lithops framework is a rebranded PyWren-IBM framework. Lithops goals are massively scaling the execution of Python code and its dependencies on serverless computing platforms and monitoring the results. Lithops delivers the user’s code into the serverless platform without requiring knowledge of how functions are invoked and run.

Lithops provides great value for the variety of uses cases, like processing data in object storage, running embarrassingly parallel compute jobs (e.g. Monte-Carlo simulations), enriching data with additional attributes and many more. In extending Lithops to work with object storage, we also added a partition discovery component that allows Lithops to process large amounts of data stored in the object storage. See changelog for more details.

Lithops and IBM Cloud

Lithops is officially supported for IBM Cloud and Red Hat OpenShift. Students or academic stuff are welcome to follow IBM Academic Initiative, a special program that allows free trial of IBM Cloud for Academic institutions. This program is provided for students and faculty staff members, and allow up to 12 months of free usage. You can register your university email and get a free of charge account.

Lithops Multi-cloud

Lithops provides an extensible backend architecture (compute, storage) that is designed to work with different Cloud providers and on-premise backends (Knative, OpenWhisk). You can code in Lithops and run it unmodified in IBM Cloud, AWS, Azure, Google Cloud and Alibaba Aliyun.

Quick Start

  1. Install Lithops from the PyPi repository:

    $ pip install lithops
  2. Follow these instructions to configure your compute and storage backends

  3. Test Lithops by simply running the next command:

     $ lithops test

    or by running the next code:

    import lithops
    
    def hello(name):
        return 'Hello {}!'.format(name)
    
    fexec = lithops.FunctionExecutor()
    fexec.call_async(hello, 'World')
    print(fexec.get_result())

Additional information and examples

How to contribute code

Follow guidance how to contribute code to the project

Additional resources

Acknowledgements

image

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 825184.

About

Lithops - Lightweight Optimised Serverless Processing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • Other 0.4%