• Stars
    star
    22
  • Rank 1,048,934 (Top 21 %)
  • Language
    Shell
  • License
    MIT License
  • Created about 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenFaaS template for the crystal programming language

Crystal OpenFaaS Template Runs on Crystal

Inofficial OpenFaaS template for the crystal programming language 🎉

To find out more about the OpenFaaS templates see the faas templates and faas-cli.

Usage

Go to your openFaaS project and execute:

faas-cli template pull https://github.com/TPei/crystal_faas_template

Alternatively, the template is also available via the OpenFaaS template store

faas-cli template store pull crystal

This will pull the template into your directory and allow you to use

faas-cli new --lang crystal my_function

to create a new crystal function

See crystal_faas_whalesay_demo for an implementation example.

Which version of crystal is this running?

It installs the latest version available on alpine.

Development

General

As with all OpenFaaS templates, this template creates a my_function/handler.cr file, as well as a my_function.yml. In addition to this, a my_function/shard.yml is created for your dependencies.

When building your function with faas-cli build -f my_function.yml your dependencies will be resolved according to your shard file.

Code

Hander#run gets passed a req String, if you want to handle json, simply do JSON.parse(req) and do your thing :)

Your function always needs to return JSON, like so: return JSON::Any.new("Just a String, but JSON!")

require "json"

class Handler
  def run(req : String)
    whale = <<-WHALE
     #{"-" * req.size}
    < #{req} >
     #{"-" * req.size}
           \\
            \\
             \\
              \\       ##               .
               \\## ## ##             ==
              ## ## ## ## ##         ===
           /"""""""""""""""""\\___/ ====
    ~~~ ~~{~ ~~~  ~~~~~ ~~~~~ ~~~/~~====-~ ~~~~
           \\______ O           __/
            \\    \\         __/
             \\____\\_______/
    WHALE
    return JSON::Any.new(whale)
  end
end

Templates Developers / Contributors

See contributing guide.

License

This project is licensed under the MIT License.