latacora / lamed Goto Github PK
View Code? Open in Web Editor NEWLicense: Eclipse Public License 1.0
License: Eclipse Public License 1.0
The easiest way to deploy a custom runtime would be to compile the runtime code into a layer that will call the lambda. A user of lamed could then just add the lamed runtime as a lambda layer without any changes to their code. The aws bash custom runtime example ends with this setup.
The tricky part of this is how to call functions between two native-image executables.
Implementation tasks:
The awslabs C++ and rust runtimes may or may not be useful examples.
It's faster to prototype code using the java runtime, and the standard way to write a lambda handler in clojure is to implement RequestStreamHandler
interface with the following signature:
(defn -handleRequest
[this in-stream out-stream context]
...
Lamed should have a method that takes a method with the above signature and appropriately pipes input/output data
Clojure has a practice of data everywhere, even in errors, see ex-info/ex-data.
https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html suggests that errors (both init errors and invocation errors) take an errorMessage and an errorType. That's pretty close to what we have, but the ideal behavior is probably:
Lamed calls the Lambda Runtime API over HTTP to figure out what to do next, so even if your app doesn't use HTTP you need that native-image flag.
See also latacora/lamed-sample-app#1
Add a basic lambda function w/ graalvm integration and also write up a doc describing what a user of lamed needs to do to generate a graalvm lambda build
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.