Liking cljdoc? Tell your friends :D

fierycod.holy-lambda.core

This namespace integrates the Clojure code with two different runtimes: Java Lambda Runtime, Native Provided Runtime. The former is the Official Java Runtime for AWS Lambda which is well tested and works perfectly fine, but it's rather slow due to cold starts. The latter is a custom runtime integrated within the framework. It's a significantly faster than the Java runtime due to the use of GraalVM.

Namespace includes:

  • Utilities for Logging
  • Friendly macro for generating Lambda functions which run on both runtimes
  • TODO Utilities which help produce valid response
This namespace integrates the Clojure code with two different runtimes: Java Lambda Runtime, Native Provided Runtime.
The former is the Official Java Runtime for AWS Lambda which is well tested and works perfectly fine, but it's rather slow due to cold starts.
The latter is a custom [runtime](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html) integrated within the framework.
It's a significantly faster than the Java runtime due to the use of GraalVM.

*Namespace includes:*
- Utilities for Logging
- Friendly macro for generating Lambda functions which run on both runtimes
- TODO Utilities which help produce valid response
raw docstring

callclj

(call afn-sym)
(call afn-sym event context)
(call afn-sym input output context)

Resolves the lambda function and calls it with the event and context. Returns the callable lambda function if only one argument is passed. See fierycod.holy-lambda.impl.util/call

Resolves the lambda function and calls it with the event and context.
Returns the callable lambda function if only one argument is passed.
See `fierycod.holy-lambda.impl.util/call`
sourceraw docstring

deflambdacljmacro

(deflambda name doc-string? attrs-map? [event context] prepost-map? fn-body)
(deflambda name
           doc-string?
           attrs-map?
           [input output context]
           prepost-map?
           fn-body)

Similiar to defn, with the limitation that it only allows the 2 arity definition. Defined Lambda is safe to use either in Java Runtime or with the Custom Runtime alongside this library.

Similiar to `defn`, with the limitation that it only allows the
2 arity definition. Defined Lambda is safe to use either in Java Runtime or
with the Custom Runtime alongside this library.
sourceraw docstring

errorclj

(error & msgs)

Similiar to log, but adds special [ERROR] decoration See fierycod.holy-lambda.impl.logging/error

Similiar to `log`, but adds special *[ERROR]* decoration
See `fierycod.holy-lambda.impl.logging/error`
sourceraw docstring

gen-maincljmacro

(gen-main lambdas)

Generates the main function which has the two roles:

  1. The -main might be then launched by AWS in the lambda runtime. Lambda runtime tries to proxy the payloads from AWS to corresponding handlers defined in native-template.yml.

  2. The -main might be used to generate the configuration necessary to compile the project to native.

    For more info take a look into the corresponding links:

    1. https://github.com/oracle/graal/issues/1367
    2. https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md
    3. https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md

    According to the comment of the @cstancu with the help of the agent we can find the majority of the reflective calls and generate the configuration. Generated configuration might then be used by native-image tool.

Generates the main function which has the two roles:
1. The `-main` might be then launched by AWS in the lambda runtime.
   Lambda runtime tries to proxy the payloads from AWS to corresponding handlers
   defined in `native-template.yml`.

2. The `-main` might be used to generate the configuration necessary to compile
   the project to native.

   *For more info take a look into the corresponding links:*
   1. https://github.com/oracle/graal/issues/1367
   2. https://github.com/oracle/graal/blob/master/substratevm/CONFIGURE.md
   3. https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.md

   According to the comment of the @cstancu with the help of the agent we can find the majority
   of the reflective calls and generate the configuration. Generated configuration might then be used
   by `native-image` tool.
sourceraw docstring

infoclj

(info & msgs)

Similiar to log, but adds special [INFO] decoration See fierycod.holy-lambda.impl.logging/info

Similiar to `log`, but adds special *[INFO]* decoration
See `fierycod.holy-lambda.impl.logging/info`
sourceraw docstring

logclj

(log & msgs)

Logs to standard output. Uses the proper logger according to the runtime See fierycod.holy-lambda.impl.logging/log

Logs to standard output. Uses the proper logger according to the runtime
See `fierycod.holy-lambda.impl.logging/log`
sourceraw docstring

traceclj

(trace tag x)

Trace the x with tag then returns the value See fierycod.holy-lambda.impl.logging/trace

Trace the `x` with tag then returns the value
See `fierycod.holy-lambda.impl.logging/trace`
sourceraw docstring

warnclj

(warn & msgs)

Similiar to log, but adds special [WARN] decoration See fierycod.holy-lambda.impl.logging/warn

Similiar to `log`, but adds special *[WARN]* decoration
See `fierycod.holy-lambda.impl.logging/warn`
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close