Turn anything into an on-premise serverless function
Clone or download
Latest commit 7dd7578 Jan 16, 2019

README.md


GitHub license Build Status GitHub (pre-)release GitHub last commit HitCount

Turn anything into a serverless function.. Docker ready!

jerverless is a serverless runner which will execute anything (binaries, commands or your scripts) as a serverless function. It simply pipes http POST data into STDIN of any executable vice versa.

How it works!

See more info,

Example functions

How to create functions?

On Machine (or VM)

  1. Download jar
 $ curl --ssl -L https://github.com/jerverless/jerverless/releases/download/v1.0.0/jerverless-1.0.0.jar > jerverless.jar
  1. Create jerverless.properties
/function = python helloworld.py
port = 8080
cors = true
  1. Create your program (eg:- helloworld.py)
name = raw_input()
print "Hello %s!" % name
  1. Start server!
 $ java -jar jerverless.jar
  1. Test it!
 $ curl -d Jerverless http://localhost:8080/function

Or simply use template and jump to last step!

Docker

  1. On your local machine, clone this repo and go to an examples directory of choice (eg: python):
 $ git clone https://github.com/jerverless/jerverless.git
 $ cd jerverless/examples/python
  1. Create the docker image:
 $ docker build --no-cache -t jerverless-py .
  1. Run the app:
 $ docker run -it -p 8080:8080 jerverless-py
  1. Navigate to 'https://localhost:8080/function' in your browser.

Kubernetes

  1. Create docker image for your function and push to dockerhub

  2. Add docker image name to .yml deployment

Project Status

  • Initial work (Structure, basic server with runner)
  • Multithreaded server mode
  • Unit cases
  • CLI commands
  • Basic Samples
  • Docs
  • Beta Release!

Developer Guide

Requirements

  • JDK 1.8

Getting started

Clone the repository in your local directory

 $ git clone <forked_url>

We are using gradle as the build tool. This command will download and install gradle, then it will build the jar file.

Windows users may use .\gradlew instead of ./gradlew It applies to all bash commands listed below.

 $ ./gradlew assemble

The resulted jar file can be found in build/libs

 $ java -jar build/libs/jerverless-1.0.0.jar

Or run

 $ ./gradlew assembleDist

This will create distributions of jerverless, you can find them in build/distributions/

To install this distribution in a path you desired try out

 $ ./gradlew installDist

By default it will be installed in build/install/jerverless

To run the distribution, try

 $ build/install/bin/jerverless

Become a committer

Submit a pull request or raise 3 helpful issues to join jerverless Team!