jerverless

Introduction: Turn anything into an on-premise serverless function
More: Author   ReportBugs   
Tags:

GitHub license Build Status GitHub (pre-)release GitHub last commit HitCount OpenCollective Backers 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,

How to create functions?

On Machine (or VM)

  1. Download Jerverless and extract the archive

  2. Create jerverless.yml

    # use port 8080
    port: 8080
    # enable CORS for the server
    cors: '*'
    # Define your routes
    routes:
    # a sample route with
    - endpoint: /foo # endpoint /foo
     command: python test.py # command to run
     contentType: text/html # set content type
    
    - endpoint: /bar #endpoint /bar
     command: python test.py --bar # command with an argument
     contentType: text/html # set your content type
     cors: 'xyz.com' # override cors for this specific route
    
  3. Create your program (eg:- helloworld.py)

    We are using python2.7 in example

    name = raw_input()
    print "Hello %s!" % name
    
  4. Start server!
 $ bin/jerverless

or if you are on windows

 $ bin\jerverless.bat
  1. Test it!
 $ curl -d Jerverless http://localhost:8080/foo

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

  • [x] Initial work (Structure, basic server with runner)
  • [x] Multithreaded server mode
  • [ ] Unit cases
  • [x] CLI commands
  • [x] Basic Samples
  • [x] Docs
  • [x] 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/jerverless/bin/jerverless

Become a committer

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

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools