Description
Story: OpenFaaS SDKs for each language
Since this will be a big piece of work and potentially involve multiple languages and features, I'm calling it a Story.
Use-case
We have been asked 4-5 times in as many months for an SDK for Java which can be used to integrate with the OpenFaaS API. This aligns well with the developers-first value of OpenFaaS and the mission: Serverless Functions Made Simple.
The official Java template also has code bundled for its entrypoint and function model, which need to be submitted to jCenter or similar so that enterprise developers can get a good experience in their IDEs.
Whilst invoking a function, or listing functions can be as simple as creating a HttpClient and then doing a GET / POST, this can and should be made easier. It may be that some developers within an organisation write OpenFaaS functions, other teams should be able to integrate with those easily and this story is part of that.
Coverage
I think this is my priority order:
- JavaScript (nodejs)
- Java
- .NET Core 2.x
- Go (perhaps this can be vendored from the proxy package of the faas-cli)
- Python
Followed by PHP, Ruby, Perl and potentially some others.
Other concerns
I think we need a degree of similarity between each SDK and we also need to be idiomatic in each language as far as possible.
I wanted to highlight some prior work that may be useful for reference from the CNCF Serverless Working Group for CloudEvents; JavaScript, Java, Go - .NET also exists.
These packages should be distributed through the appropriate channels as Ruby Gems, NPM modules and jCenter for JARs.