jerverless
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)
Download Jerverless and extract the archive
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
- Create your program (eg:-
helloworld.py
)We are using python2.7 in example
name = raw_input() print "Hello %s!" % name
- Start server!
$ bin/jerverless
or if you are on windows
$ bin\jerverless.bat
- Test it!
$ curl -d Jerverless http://localhost:8080/foo
Or simply use template and jump to last step!
Docker
- 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
- Create the docker image:
$ docker build --no-cache -t jerverless-py .
- Run the app:
$ docker run -it -p 8080:8080 jerverless-py
- Navigate to 'https://localhost:8080/function' in your browser.
Kubernetes
Create docker image for your function and push to dockerhub
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!