All Projects → binaris → binaris

binaris / binaris

Licence: MIT license
Binaris Function as a Service CLI

Programming Languages

javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to binaris

2020
Make your own 2020 ASCII art
Stars: ✭ 26 (+30%)
Mutual labels:  faas
examples
MetaCall Examples - A collection of use cases and examples to be deployed in MetaCall.
Stars: ✭ 18 (-10%)
Mutual labels:  faas
serverless
BlueNimble is a Hybrid Serverless Platform focusing on developer productivity and application portability. Create and run scalable APIs and applications without coding or by coding less. Focus on application business logic without any knowledge of the underlying microservices architecture.
Stars: ✭ 30 (+50%)
Mutual labels:  faas
openwhisk-runtime-docker
Apache OpenWhisk SDK for building Docker "blackbox" runtimes
Stars: ✭ 23 (+15%)
Mutual labels:  faas
hook.io
Open-Source Microservice Hosting Platform
Stars: ✭ 1,259 (+6195%)
Mutual labels:  faas
hex
An ecosystem delivering practices, philosophy and portability. Powered By Deno and JavaScript.
Stars: ✭ 48 (+140%)
Mutual labels:  faas
python-flask-template
HTTP and Flask-based OpenFaaS templates for Python 3
Stars: ✭ 76 (+280%)
Mutual labels:  faas
aws-lambda-r
Using R on AWS Lambda
Stars: ✭ 51 (+155%)
Mutual labels:  faas
qrcode
QR Code generator function for the FaaS Platform in #golang
Stars: ✭ 17 (-15%)
Mutual labels:  faas
serverless-scaleway-functions
Plugin for Serverless Framework to allow users to deploy their serverless applications on Scaleway Functions
Stars: ✭ 58 (+190%)
Mutual labels:  faas
node8-express-template
Node.js 8 template for OpenFaaS with HTTP via Express.js
Stars: ✭ 16 (-20%)
Mutual labels:  faas
fiware-meteoroid
Meteoroid realizes integrating Function as a Service(FaaS) capabilities in FIWARE. It provides a management interface specialized for FaaS and FIWARE.
Stars: ✭ 13 (-35%)
Mutual labels:  faas
FaaSNet
FaaSNet: Scalable and Fast Provisioning of Custom Serverless Container Runtimes at Alibaba Cloud Function Compute (USENIX ATC'21)
Stars: ✭ 36 (+80%)
Mutual labels:  faas
faas-rancher
[DEPRECATED] Enable Rancher as a backend for Functions as a Service (OpenFaaS) https://github.com/alexellis/faas
Stars: ✭ 30 (+50%)
Mutual labels:  faas
honeypie
A FaaS for converting your Google Forms into an API.
Stars: ✭ 17 (-15%)
Mutual labels:  faas
openwhisk-runtime-java
Apache OpenWhisk Runtime Java supports Apache OpenWhisk functions written in Java and other JVM-hosted languages
Stars: ✭ 43 (+115%)
Mutual labels:  faas
serverless-fission
Use Fission through Serverless Framework https://serverless.com
Stars: ✭ 19 (-5%)
Mutual labels:  faas
openwhisk-runtime-go
Apache OpenWhisk Runtime Go supports Apache OpenWhisk functions written in Go
Stars: ✭ 31 (+55%)
Mutual labels:  faas
xkcd-excuse-generator
Serverless image generator that uses XKCD comic as basis for _all_ excuses!
Stars: ✭ 63 (+215%)
Mutual labels:  faas
FaaSonK8s
A list of Functions as a Service (FaaS) serverless platforms that run on Kubernetes
Stars: ✭ 44 (+120%)
Mutual labels:  faas

Binaris

Binaris is a fast, low-latency FaaS (Function as a Service) platform. With our performance and scale, you can run real production workloads on Node.js.

Getting up and running in seconds

  1. Install using npm
npm install -g binaris
  1. Setup Binaris credentials

    • If you already have an account it's as simple as exporting your existing credentials
    • Otherwise head over to Binaris to sign up
  2. Generate a Binaris template function

# generates simple NodeJS template function
bn create node12 hellofunc
  1. Deploy a function
# makes the function available via Binaris cloud
bn deploy hellofunc
  1. Invoke a function
# calls the function endpoint via https
bn invoke hellofunc
  1. Make changes to a function
git diff
--- a/function.js
+++ b/function.js

-    console.log('Hello World');
+    console.log('Hello Binaris');

# redeploy the function
bn deploy hellofunc
  1. Get logs for a function
bn logs hellofunc

It's as simple as that.

Running without Node & NPM

There's a docker version of the Binaris CLI, published on Dockerhub as binaris/bn.

Usage

To run in the current directory:

docker run --rm -v $(pwd):/src binaris/bn --help

You'll want to forward your API key. So add -e BINARIS_API_KEY like so:

docker run --rm -e BINARIS_API_KEY -v $(pwd):/src binaris/bn

For convenience, you can create an alias for this in bash:

alias bn='docker run --rm -e BINARIS_API_KEY -v $(pwd):/src binaris/bn'
bn create node12 hello
bn deploy hello
bn invoke hello

Storing secrets and other configuration parameters

You can pass configuration parameters to functions as part of the deploy command. These parameters will be available to the function during runtime as environment variables. All parameters are encrypted at rest and in-transit, which makes them the preferred way to store API keys, passwords, etc.

To pass parameters into a function, add an env: section to binaris.yml, like so:

functions:
  hello:
    file: function.js
    entrypoint: handler
    runtime: node12
    env:
      SOME_API_KEY: XXXXXXXXXXX

If a parameter is sensitive and you don't want to commit it to SCM, you can leave out the value in binaris.yml:

functions:
  hello:
    file: function.js
    entrypoint: handler
    runtime: node12
    env:
      SOME_API_KEY:

And pass it as an environment variable to the deploy command:

You can then access these parameters as environment variables:

function.js

exports.handler = () => {
  const apiKey = process.env.SOME_API_KEY;
  // ...
}

Or in Python:

import os

def handler(body, req):
    apiKey = os.environ['SOME_API_KEY']
    # ...

Only string values are supported in the env: section.

SOME_API_KEY=XXXXXXX bn deploy hello

Learn more about the Binaris platform at the developer resources page.

This project is licensed under the terms of the MIT license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].