{"id":14848283,"url":"https://zhukovalexander.github.io/lambdify/","last_synced_at":"2025-09-18T04:33:06.458Z","repository":{"id":62575003,"uuid":"53490666","full_name":"ZhukovAlexander/lambdify","owner":"ZhukovAlexander","description":"AWS Lambda automation and integration for Python.","archived":false,"fork":false,"pushed_at":"2018-09-27T12:39:01.000Z","size":73,"stargazers_count":50,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-18T21:55:28.881Z","etag":null,"topics":["aws","aws-lambda","python","serverless"],"latest_commit_sha":null,"homepage":"http://zhukovalexander.github.io/lambdify/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZhukovAlexander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-09T10:54:46.000Z","updated_at":"2024-01-03T14:13:29.000Z","dependencies_parsed_at":"2022-11-03T18:57:21.179Z","dependency_job_id":null,"html_url":"https://github.com/ZhukovAlexander/lambdify","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhukovAlexander%2Flambdify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhukovAlexander%2Flambdify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhukovAlexander%2Flambdify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZhukovAlexander%2Flambdify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZhukovAlexander","download_url":"https://codeload.github.com/ZhukovAlexander/lambdify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233451329,"owners_count":18678210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","python","serverless"],"created_at":"2024-09-19T13:01:51.297Z","updated_at":"2025-09-18T04:33:01.105Z","avatar_url":"https://github.com/ZhukovAlexander.png","language":"Python","funding_links":[],"categories":["Frameworks"],"sub_categories":[],"readme":"# λambdify - because code is the only thing that matters\n[![Build Status](https://travis-ci.org/ZhukovAlexander/lambdify.svg?branch=master)](https://travis-ci.org/ZhukovAlexander/lambdify)\n[![PyPI version](https://badge.fury.io/py/lambdify.svg)](https://badge.fury.io/py/lambdify)\n\n### ***DISCLAIMER: lambdify is just a POC, it's not actively maintained and is not suitable for production use at the moment***\n\n**lambdify** is a tool that turns any python callable into an AWS Lambda function. Create, update and call your lambdas directly from python. \n\nJust like that:\n\ninstall *lambdify*...\n```bash\n$pip install lambdify\n```\n...create AWS Lambda with 4 lines of code:\n```python\nfrom lambdify import Lambda\n\n\n@Lambda.f(name='echo')\ndef echo(*args, **kwargs):\n    return args, kwargs\n\necho.create()\n\nif __name__ == '__main__':\n    import getpass\n    echo(msg='Hello, {user}!'.format(user=getpass.getuser()))\n```\n\nNow you can head over to your [AWS Lambda console](https://console.aws.amazon.com/lambda/) and behold your **echo** function.\nCould creating a serverless program be any easier?\n\n# The goal\n\nLambdify aims to unite convenient task queues API (i.e. [Celery](http://www.celeryproject.org/), [Hue](http://huey.readthedocs.org/en/latest/#huey-s-api), [RQ's @job decorator](http://python-rq.org/docs/)) with AWS Lambda service coolest features. Ultimately, **lambdify** should be capable to become a good alternative to Celery or any other task queue.\n\nAt present, there are some solutions, that allow you to create and deploy lambdas, like [Zappa](https://github.com/Miserlou/Zappa), [lambda-uploader](https://github.com/rackerlabs/lambda-uploader), [lambder](https://github.com/LeafSoftware/python-lambder) etc., but they still have limitations of not being able to interact directly with a python program. \nlambdify overcomes such limitations by using the following algorithm:\n\n1. Serialize the callable with it's globals using [dill](https://github.com/uqfoundation/dill)\n\n2. Upload the ```.lambda.dump``` file containing the serialized function along with the rest of the package\n\n3. Special ```container.py``` module will look for the ```.lambda.dump``` file and inject deserialized function into it's namespace\n\n4. ????\n\n5. Profit\n\n# Documentation\n```python\n\u003e\u003e\u003efrom lambdify import Lambda\n\u003e\u003e\u003ehelp(Lambda)\n```\n\n#Usecases and features\n\n* ***Workerless task queue replacement***\n\nThe simpliest task queue ever\n```python\n@Lambda.f(name='my_job')\ndef add(a, b):\n    return a + b\n```\n\n\n* ***Distributed computing***\n\nLambdas can create and call other lambdas:\n```python\n@Lambda.f(name='child')\ndef child_function(x, y):\n    return x * y\n    \n@Lambda.f(name='parent')\ndef parent_function(y):\n    # this will actually call the cloud instance of\n    # child_function\n    return child_function(2, y)\n\nparent_function(42)\n```\n* ***Cloud Functional Reactive Programming***\n* ***Dynamic and realtime lambda-function management***\n\n\n***P.S. Lambdify is a POC, and at the time allows your lambda to only use site-packages, all local files won't be packaged, so each user-defined dependency should be contained withing the same file.***\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/zhukovalexander.github.io%2Flambdify%2F","html_url":"https://awesome.ecosyste.ms/projects/zhukovalexander.github.io%2Flambdify%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/zhukovalexander.github.io%2Flambdify%2F/lists"}