FunctionHub is the package manager for general, reusable Functions for cloud vendors like AWS, Google cloud and Azure. It is child of Cloudstash, a broader cloud based storage unit for functions and artifacts.
The FunctionHub-cli provides interaction with FunctionHub for storing and accessing reusable functions.
FunctionHub allows you to:
Create public and private repositories
Create your user at CloudStash and get started
The FunctionHub is a fully serverless artifact Manager for cheap and scalable storage of reuasble Functions.
The FunctionHub client provides an user friendly way of interacting with the FunctionHub API.
The following figure shows the architecture of FunctionHub.
This README is currently tailored to Unix-like systems (MacOS, Linux).
For FunctionHub developers and users, the following additional software must be installed:
pip3 - Python3 standard package manager
Download the Function Hub client¶
pip3 install functionhub
make changes and verify with the local cli
Pushing functions to FunctionHub using CLI¶
Create a project.
fuhub create exampleProject
Move to the project directory.
Set the configuration file config.ini with your parameters. (example of config.ini can be found in test directory)
[REPOSITORY] org = repository = [FUNCTION] name = version = description = [RUNTIME] provider = runtime = handler =
Create a zipped folder containing your function and libraries if necessary.
Upload the function to FunctionHub.
fuhub --token <deploy-token> upload myfunction.zip
Retreiving Functions from FunctionHub¶
Browse FunctionHub and find the Function of your choice.
Copy the ArtifacId.
In terminal do
curl -o function.zip https://cloudstash.io/artifact_download/*ArtifactId*
We encourage contributions from everyone who finds interest in this project!
For any ideas, bugs or new features use our issue tracker at our GitHub project.
When contributing, fork the repository and commit work through pull requests.
Read the roadmap
For local development do:
`` python3 -m venv venv `` `` pip install –editable ``
When deploying a new version through the Jenkins CI make sure to add [deploy] keyword in the commit message
This work is being supported by the European Union’s Horizon 2020 research and innovation programme (grant no. 825040, RADON).