https://github.com/awslabs/llrt

LLRT (Low Latency Runtime) is an experimental, lightweight JavaScript runtime designed to address the growing demand for fast and efficient Serverless applications.

https://github.com/awslabs/llrt

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.5%) to scientific vocabulary

Keywords from Contributors

transformers embedded optim interactive projection sequences argument-parser data-engineering medical-imaging observability
Last synced: 6 months ago · JSON representation

Repository

LLRT (Low Latency Runtime) is an experimental, lightweight JavaScript runtime designed to address the growing demand for fast and efficient Serverless applications.

Basic Info
  • Host: GitHub
  • Owner: awslabs
  • License: apache-2.0
  • Language: Rust
  • Default Branch: main
  • Homepage:
  • Size: 4.96 MB
Statistics
  • Stars: 8,597
  • Watchers: 49
  • Forks: 379
  • Open Issues: 59
  • Releases: 26
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Governance Notice Maintainers

README.md

LLRT CI LLRT Release

LLRT (Low Latency Runtime) is a lightweight JavaScript runtime designed to address the growing demand for fast and efficient Serverless applications. LLRT offers up to over 10x faster startup and up to 2x overall lower cost compared to other JavaScript runtimes running on AWS Lambda

It's built in Rust, utilizing QuickJS as JavaScript engine, ensuring efficient memory usage and swift startup.

[!WARNING] LLRT is an experimental package. It is subject to change and intended only for evaluation purposes.

LLRT - DynamoDB Put, ARM, 128MB: DynamoDB Put LLRT

Node.js 20 - DynamoDB Put, ARM, 128MB: DynamoDB Put Node20

HTTP benchmarks measured in round trip time for a cold start (why?)

Configure Lambda functions to use LLRT

Download the last LLRT release from https://github.com/awslabs/llrt/releases

Option 1: Custom runtime (recommended)

Choose Custom Runtime on Amazon Linux 2023 and package the LLRT bootstrap binary together with your JS code.

Option 2: Use a layer

Choose Custom Runtime on Amazon Linux 2023, upload llrt-lambda-arm64.zip or llrt-lambda-x64.zip as a layer and add to your function

Option 3: Package LLRT in a container image

See our AWS SAM example or:

```dockerfile FROM --platform=arm64 busybox WORKDIR /var/task/ COPY app.mjs ./ ADD https://github.com/awslabs/llrt/releases/latest/download/llrt-container-arm64 /usr/bin/llrt RUN chmod +x /usr/bin/llrt

ENV LAMBDA_HANDLER "app.handler"

CMD [ "llrt" ] ```

Option 4: AWS SAM

The following example project sets up a lambda instrumented with a layer containing the llrt runtime.

Option 5: AWS CDK

You can use cdk-lambda-llrt construct library to deploy LLRT Lambda functions with AWS CDK.

```ts import { LlrtFunction } from "cdk-lambda-llrt";

const handler = new LlrtFunction(this, "Handler", { entry: "lambda/index.ts", }); ```

See Construct Hub and its examples for more details.

That's it 🎉

[!IMPORTANT] Even though LLRT supports ES2023 it's NOT a drop in replacement for Node.js. Consult Compatibility matrix and API for more details. All dependencies should be bundled for a browser platform and mark included @aws-sdk packages as external.

Testing & ensuring compatibility

The best way to ensure your code is compatible with LLRT is to write tests and execute them using the built-in test runner. The test runner currently supports Jest/Chai assertions. There are three main types of tests you can create:

Unit Tests

  • Useful for validating specific modules and functions in isolation
  • Allow focused testing of individual components

End-to-End (E2E) Tests

  • Validate overall compatibility with AWS SDK and WinterCG compliance
  • Test the integration between all components
  • Confirm expected behavior from end-user perspective
  • For more information about the E2E Tests and how to run them, see here.

Web Platform Tests (WPT)

  • Useful for validating LLRT’s behavior against standardized browser APIs and runtime expectations
  • Ensure compatibility with web standards and cross-runtime environments
  • Help verify alignment with WinterCG and broader JavaScript ecosystem
  • For setup instructions and how to run WPT in LLRT, see here.

Test runner

Test runner uses a lightweight Jest-like API and supports Jest/Chai assertions. For examples on how to implement tests for LLRT see the /tests folder of this repository.

To run tests, execute the llrt test command. LLRT scans the current directory and sub-directories for files that ends with *.test.js or *.test.mjs. You can also provide a specific test directory to scan by using the llrt test -d <directory> option.

The test runner also has support for filters. Using filters is as simple as adding additional command line arguments, i.e: llrt test crypto will only run tests that match the filename containing crypto.

Compatibility matrix

[!NOTE] LLRT only support a fraction of the Node.js APIs. It is NOT a drop in replacement for Node.js, nor will it ever be. Below is a high level overview of partially supported APIs and modules. For more details consult the API documentation

| Modules | Node.js | LLRT ⚠️ | | -------------- | ------- | ------- | | assert | ✔︎ | ✔︎️ | | asynchooks | ✔︎ | ✔︎️ | | buffer | ✔︎ | ✔︎️ | | childprocess | ✔︎ | ✔︎⏱ | | console | ✔︎ | ✔︎ | | crypto | ✔︎ | ✔︎ | | dns | ✔︎ | ✔︎ | | events | ✔︎ | ✔︎ | | fs/promises | ✔︎ | ✔︎ | | fs | ✔︎ | ✘⏱ | | http | ✔︎ | ✘⏱** | | https | ✔︎ | ✘⏱** | | net:sockets | ✔︎ | ✔︎⏱ | | net:server | ✔︎ | ✔︎ | | os | ✔︎ | ✔︎ | | path | ✔︎ | ✔︎ | | perfhooks | ✔︎ | ✔︎ | | process | ✔︎ | ✔︎ | | streams | ✔︎ | ✔︎* | | stringdecoder | ✔︎ | ✔︎ | | timers | ✔︎ | ✔︎ | | tty | ✔︎ | ✔︎ | | url | ✔︎ | ✔︎ | | util | ✔︎ | ✔︎ | | tls | ✔︎ | ✘⏱ | | zlib | ✔︎ | ✔︎ | | Other modules | ✔︎ | ✘ |

| Features | Node.js | LLRT ⚠️ | | ----------- | ------- | ------- | | async/await | ✔︎ | ✔︎ | | encoding | ✔︎ | ✔︎ | | fetch | ✔︎ | ✔︎ | | ESM | ✔︎ | ✔︎ | | CJS | ✔︎ | ✔︎ |

⚠️ = partially supported in LLRT
⏱ = planned partial support
* = Not native
** = Use fetch instead

Using node_modules (dependencies) with LLRT

Since LLRT is meant for performance critical application it's not recommended to deploy node_modules without bundling, minification and tree-shaking.

LLRT can work with any bundler of your choice. Below are some configurations for popular bundlers:

[!WARNING] LLRT implements native modules that are largely compatible with the following external packages. By implementing the following conversions in the bundler's alias function, your application may be faster, but we recommend that you test thoroughly as they are not fully compatible.

| Node.js | LLRT | | --------------- | --------- | | fast-xml-parser | llrt:xml | | uuid | llrt:uuid |

ESBuild

shell esbuild index.js --platform=browser --target=es2023 --format=esm --bundle --minify --external:@aws-sdk --external:@smithy

Rollup

```javascript import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import terser from "@rollup/plugin-terser";

export default { input: "index.js", output: { file: "dist/bundle.js", format: "esm", sourcemap: true, target: "es2023", }, plugins: [resolve(), commonjs(), terser()], external: ["@aws-sdk", "@smithy"], }; ```

Webpack

```javascript import TerserPlugin from "terser-webpack-plugin"; import nodeExternals from "webpack-node-externals";

export default { entry: "./index.js", output: { path: "dist", filename: "bundle.js", libraryTarget: "module", }, target: "web", mode: "production", resolve: { extensions: [".js"], }, externals: [nodeExternals(), "@aws-sdk", "@smithy"], optimization: { minimize: true, minimizer: [ new TerserPlugin({ terserOptions: { ecma: 2023, }, }), ], }, }; ```

Using AWS SDK (v3) with LLRT

LLRT includes many AWS SDK clients and utils as part of the runtime, built into the executable. These SDK Clients have been specifically fine-tuned to offer best performance while not compromising on compatibility. LLRT replaces some JavaScript dependencies used by the AWS SDK by native ones such as Hash calculations and XML parsing. V3 SDK packages not included in the list below have to be bundled with your source code. For an example on how to use a non-included SDK, see this example build script (buildExternalSdkFunction)

LLRT supports the following three bundles by default. Bundle types and suffixes are as follows.

| Bundle Type | Suffix | Purpose of Use | | ----------- | ----------- | --------------------------------------------------------- | | no-sdk | *-no-sdk | Suitable for workloads that do not use @aws-sdk. | | std-sdk | (none) | Suitable for workloads that utilize the major @aws-sdk. | | full-sdk | *-full-sdk | Suitable for workloads that utilize any @aws-sdk. |

The relationship between the supported packages for each bundle type is as follows.

| Analytics | no-sdk | std-sdk | full-sdk | | ------------------------------------ | ------ | ------- | -------- | | @aws-sdk/client-athena | | | ✔︎ | | @aws-sdk/client-firehose | | | ✔︎ | | @aws-sdk/client-glue | | | ✔︎ | | @aws-sdk/client-kinesis | | | ✔︎ | | @aws-sdk/client-opensearch | | | ✔︎ | | @aws-sdk/client-opensearchserverless | | | ✔︎ |

| Application integration | no-sdk | std-sdk | full-sdk | | --------------------------- | ------ | ------- | -------- | | @aws-sdk/client-eventbridge | | ✔︎ | ✔︎ | | @aws-sdk/client-scheduler | | | ✔︎ | | @aws-sdk/client-sfn | | ✔︎ | ✔︎ | | @aws-sdk/client-sns | | ✔︎ | ✔︎ | | @aws-sdk/client-sqs | | ✔︎ | ✔︎ |

| Business applications | no-sdk | std-sdk | full-sdk | | --------------------- | ------ | ------- | -------- | | @aws-sdk/client-ses | | ✔︎ | ✔︎ | | @aws-sdk/client-sesv2 | | | ✔︎ |

| Compute services | no-sdk | std-sdk | full-sdk | | ---------------------------- | ------ | ------- | -------- | | @aws-sdk/client-auto-scaling | | | ✔︎ | | @aws-sdk/client-batch | | | ✔︎ | | @aws-sdk/client-ec2 | | | ✔︎ | | @aws-sdk/client-lambda | | | ✔︎ |

| Containers | no-sdk | std-sdk | full-sdk | | -------------------------------- | ------ | ------- | -------- | | @aws-sdk/client-ecr | | | ✔︎ | | @aws-sdk/client-ecs | | | ✔︎ | | @aws-sdk/client-eks | | | ✔︎ | | @aws-sdk/client-servicediscovery | | | ✔︎ |

| Databases | no-sdk | std-sdk | full-sdk | | -------------------------------- | ------ | ------- | -------- | | @aws-sdk/client-dynamodb | | ✔︎ | ✔︎ | | @aws-sdk/client-dynamodb-streams | | | ✔︎ | | @aws-sdk/client-elasticache | | | ✔︎ | | @aws-sdk/client-rds | | | ✔︎ | | @aws-sdk/client-rds-data | | | ✔︎ |

| Developer tools | no-sdk | std-sdk | full-sdk | | -------------------- | ------ | ------- | -------- | | @aws-sdk/client-xray | | ✔︎ | ✔︎ |

| Front-end web and mobile services | no-sdk | std-sdk | full-sdk | | --------------------------------- | ------ | ------- | -------- | | @aws-sdk/client-amplify | | | ✔︎ | | @aws-sdk/client-appsync | | | ✔︎ | | @aws-sdk/client-location | | | ✔︎ |

| Machine Learning (ML) and Artificial Intelligence (AI) | no-sdk | std-sdk | full-sdk | | ------------------------------------------------------ | ------ | ------- | -------- | | @aws-sdk/client-bedrock | | | ✔︎ | | @aws-sdk/client-bedrock-runtime | | | ✔︎ | | @aws-sdk/client-bedrock-agent | | | ✔︎ | | @aws-sdk/client-bedrock-agent-runtime | | | ✔︎ | | @aws-sdk/client-polly | | | ✔︎ | | @aws-sdk/client-rekognition | | | ✔︎ | | @aws-sdk/client-textract | | | ✔︎ | | @aws-sdk/client-translate | | | ✔︎ |

| Management and governance | no-sdk | std-sdk | full-sdk | | --------------------------------- | ------ | ------- | -------- | | @aws-sdk/client-appconfig | | | ✔︎ | | @aws-sdk/client-appconfigdata | | | ✔︎ | | @aws-sdk/client-cloudformation | | | ✔︎ | | @aws-sdk/client-cloudwatch | | | ✔︎ | | @aws-sdk/client-cloudwatch-events | | ✔︎ | ✔︎ | | @aws-sdk/client-cloudwatch-logs | | ✔︎ | ✔︎ | | @aws-sdk/client-service-catalog | | | ✔︎ | | @aws-sdk/client-ssm | | ✔︎ | ✔︎ |

| Media | no-sdk | std-sdk | full-sdk | | ---------------------------- | ------ | ------- | -------- | | @aws-sdk/client-mediaconvert | | | ✔︎ |

| Networking and content delivery | no-sdk | std-sdk | full-sdk | | ----------------------------------------- | ------ | ------- | -------- | | @aws-sdk/client-api-gateway | | | ✔︎ | | @aws-sdk/client-apigatewayv2 | | | ✔︎ | | @aws-sdk/client-elastic-load-balancing-v2 | | | ✔︎ |

| Security, identity, and compliance | no-sdk | std-sdk | full-sdk | | ----------------------------------------- | ------ | ------- | -------- | | @aws-sdk/client-acm | | | ✔︎ | | @aws-sdk/client-cognito-identity | | ✔︎ | ✔︎ | | @aws-sdk/client-cognito-identity-provider | | ✔︎ | ✔︎ | | @aws-sdk/client-iam | | | ✔︎ | | @aws-sdk/client-kms | | ✔︎ | ✔︎ | | @aws-sdk/client-secrets-manager | | ✔︎ | ✔︎ | | @aws-sdk/client-sso | | | ✔︎ | | @aws-sdk/client-sso-admin | | | ✔︎ | | @aws-sdk/client-sso-oidc | | | ✔︎ | | @aws-sdk/client-sts | | ✔︎ | ✔︎ | | @aws-sdk/client-verifiedpermissions | | | ✔︎ |

| Storage | no-sdk | std-sdk | full-sdk | | ------------------- | ------ | ------- | -------- | | @aws-sdk/client-efs | | | ✔︎ | | @aws-sdk/client-s3 | | ✔︎ | ✔︎ |

| Other bundled packages | no-sdk | std-sdk | full-sdk | | -------------------------------- | ------ | ------- | -------- | | @aws-crypto | | ✔︎ | ✔︎ | | @aws-sdk/credential-providers | | ✔︎ | ✔︎ | | @aws-sdk/lib-dynamodb | | ✔︎ | ✔︎ | | @aws-sdk/lib-storage | | ✔︎ | ✔︎ | | @aws-sdk/s3-presigned-post | | ✔︎ | ✔︎ | | @aws-sdk/s3-request-presigner | | ✔︎ | ✔︎ | | @aws-sdk/util-dynamodb | | ✔︎ | ✔︎ | | @aws-sdk/util-user-agent-browser | | ✔︎ | ✔︎ | | @smithy | | ✔︎ | ✔︎ |

[!IMPORTANT] LLRT currently does not support returning streams from SDK responses. Use response.Body.transformToString(); or response.Body.transformToByteArray(); as shown below.

javascript const response = await client.send(command); // or 'transformToByteArray()' const str = await response.Body.transformToString();

Running TypeScript with LLRT

Same principle as dependencies applies when using TypeScript. TypeScript must be bundled and transpiled into ES2023 JavaScript.

[!NOTE] LLRT will not support running TypeScript without transpilation. This is by design for performance reasons. Transpiling requires CPU and memory that adds latency and cost during execution. This can be avoided if done ahead of time during deployment.

Rationale

What justifies the introduction of another JavaScript runtime in light of existing options such as Node.js, Bun & Deno?

Node.js, Bun, and Deno represent highly proficient JavaScript runtimes. However, they are designed with general-purpose applications in mind. These runtimes were not specifically tailored for the demands of a Serverless environment, characterized by short-lived runtime instances. They each depend on a (Just-In-Time compiler (JIT) for dynamic code compilation and optimization during execution. While JIT compilation offers substantial long-term performance advantages, it carries a computational and memory overhead.

In contrast, LLRT distinguishes itself by not incorporating a JIT compiler, a strategic decision that yields two significant advantages:

A) JIT compilation is a notably sophisticated technological component, introducing increased system complexity and contributing substantially to the runtime's overall size.

B) Without the JIT overhead, LLRT conserves both CPU and memory resources that can be more efficiently allocated to code execution tasks, thereby reducing application startup times.

Limitations

There are many cases where LLRT shows notable performance drawbacks compared with JIT-powered runtimes, such as large data processing, Monte Carlo simulations or performing tasks with hundreds of thousands or millions of iterations. LLRT is most effective when applied to smaller Serverless functions dedicated to tasks such as data transformation, real time processing, AWS service integrations, authorization, validation etc. It is designed to complement existing components rather than serve as a comprehensive replacement for everything. Notably, given its supported APIs are based on Node.js specification, transitioning back to alternative solutions requires minimal code adjustments.

Building from source

  1. Clone code and cd to directory

git clone git@github.com:awslabs/llrt.git cd llrt

  1. Install git submodules

git submodule update --init --checkout

  1. Install rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y source "$HOME/.cargo/env"

  1. Install dependencies

```

MacOS

brew install zig make cmake zstd node corepack

Ubuntu

sudo apt -y install make zstd sudo snap install zig --classic --beta

Windows WSL2 (requires systemd to be enabled*)

sudo apt -y install cmake g++ gcc make zip zstd sudo snap install zig --classic --beta

Windows WSL2 (If Node.js is not yet installed)

sudo curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash nvm install --lts ```

* See Microsoft Devblogs

  1. Install Node.js packages

corepack enable yarn

  1. Install generate libs and setup rust targets & toolchains

make stdlib && make libs

[!NOTE] If these commands exit with an error that says can't cd to zstd/lib, you've not cloned this repository recursively. Run git submodule update --init to download the submodules and run the commands above again.

  1. Build binaries for Lambda (Per bundle type and architecture desired)

```

for arm64, use

make llrt-lambda-arm64.zip make llrt-lambda-arm64-no-sdk.zip make llrt-lambda-arm64-full-sdk.zip

or for x86-64, use

make llrt-lambda-x64.zip make llrt-lambda-x64-no-sdk.zip make llrt-lambda-x64-full-sdk.zip ```

  1. Build binaries for Container (Per bundle type and architecture desired)

```

for arm64, use

make llrt-container-arm64 make llrt-container-arm64-no-sdk make llrt-container-arm64-full-sdk

or for x86-64, use

make llrt-container-x64 make llrt-container-x64-no-sdk make llrt-container-x64-full-sdk ```

  1. Optionally build for your local machine (Mac or Linux)

make release make release-no-sdk make release-full-sdk

You should now have a llrt-lambda-arm64*.zip or llrt-lambda-x64*.zip. You can manually upload this as a Lambda layer or use it via your Infrastructure-as-code pipeline

Running Lambda emulator

Please note that in order to run the example you will need:

  • Valid AWS credentials via a ~/.aws/credentials or via environment variables.

bash export AWS_ACCESS_KEY_ID=XXX export AWS_SECRET_ACCESS_KEY=YYY export AWS_REGION=us-east-1

  • A DynamoDB table (with id as the partition key) on us-east-1
  • The dynamodb:PutItem IAM permission on this table. You can use this policy (don't forget to modify ):

json { "Version": "2012-10-17", "Statement": [ { "Sid": "putItem", "Effect": "Allow", "Action": "dynamodb:PutItem", "Resource": "arn:aws:dynamodb:us-east-1:<YOUR_ACCOUNT_ID>:table/quickjs-table" } ] }

Start the lambda-server.js in a separate terminal

node lambda-server.js

Then run llrt:

make run

Environment Variables

LLRT_EXTRA_CA_CERTS=file

Load extra certificate authorities from a PEM encoded file

LLRT_GC_THRESHOLD_MB=value

Set a memory threshold in MB for garbage collection. Default threshold is 20MB

LLRT_HTTP_VERSION=value

Extends the HTTP request version. By default, only HTTP/1.1 is enabled. Specifying '2' will enable HTTP/1.1 and HTTP/2.

LLRT_LOG=[target][=][level][,...]

Filter the log output by target module, level, or both (using =). Log levels are case-insensitive and will also enable any higher priority logs.

Log levels in descending priority order:

  • Error
  • Warn | Warning
  • Info
  • Debug
  • Trace

Example filters:

  • warn will enable all warning and error logs
  • llrt_core::vm=trace will enable all logs in the llrt_core::vm module
  • warn,llrt_core::vm=trace will enable all logs in the llrt_core::vm module and all warning and error logs in other modules

LLRT_NET_ALLOW="host[ ...]"

Space-delimited list of hosts or socket paths which should be allowed for network connections. Network connections will be denied for any host or socket path missing from this list. Set an empty list to deny all connections

LLRT_NET_DENY="host[ ...]"

Space-delimited list of hosts or socket paths which should be denied for network connections

LLRT_NET_POOL_IDLE_TIMEOUT=value

Set a timeout in seconds for idle sockets being kept-alive. Default timeout is 15 seconds

LLRT_PLATFORM=value

Used to explicitly specify a preferred platform for the Node.js package resolver. The default is browser. If node is specified, "node" takes precedence in the search path. If a value other than browser or node is specified, it will behave as if "browser" was specified.

LLRT_TLS_VERSION=value

Set the TLS version to be used for network connections. By default only TLS 1.2 is enabled. TLS 1.3 can also be enabled by setting this variable to 1.3

LLRT_ASYNC_HOOKS=value

When using asynchronous hooks, the hooking function inside QuickJS is activated. This is disabled by default as there is concern that it may have a significant impact on performance.

By setting this environment variable to 1, the asynchronous hook function can be enabled, allowing you to track asynchronous processing using the async_hooks module.

Benchmark Methodology

Although Init Duration reported by Lambda is commonly used to understand cold start impact on overall request latency, this metric does not include the time needed to copy code into the Lambda sandbox.

The technical definition of Init Duration (source):

For the first request served, the amount of time it took the runtime to load the function and run code outside of the handler method.

Measuring round-trip request duration provides a more complete picture of user facing cold-start latency.

Lambda invocation results (λ-labeled row) report the sum total of Init Duration + Function Duration.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the Apache-2.0 License. See the LICENSE file.

Owner

  • Name: Amazon Web Services - Labs
  • Login: awslabs
  • Kind: organization
  • Location: Seattle, WA

AWS Labs

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 761
  • Total Committers: 52
  • Avg Commits per committer: 14.635
  • Development Distribution Score (DDS): 0.619
Past Year
  • Commits: 423
  • Committers: 19
  • Avg Commits per committer: 22.263
  • Development Distribution Score (DDS): 0.619
Top Committers
Name Email Commits
richarddavison 8****n 290
dependabot[bot] 4****] 236
WATANABE Shinya n****0@g****m 112
阿豪 5****0@q****m 25
Émile Fugulin c****e@e****m 22
Frederic Bonin 9****n 15
Stephen Roberts s****s@e****o 3
Victor Korzunin 5****e 3
Nik Pinski n****i@a****m 3
Masashi Tomooka t****s 3
David Calavera d****a@g****m 3
George Smith g****9@g****m 2
Lewis Maitland l****m@g****m 2
iain maitland g****b@i****m 2
yollotltam 1****m 2
Maxime David g****x@g****m 2
Dezhi Wu w****7@1****m 1
Ayo Bamidele 4****n 1
Dgarc359 8****9 1
Antoine du Hamel d****5@g****m 1
Andreas Opferkuch a****h@g****m 1
Elliot Ford e****d@a****m 1
Ikko Eltociear Ashimine e****r@g****m 1
Jack Kleeman j****n@g****m 1
Jacob Heider j****r@g****m 1
Maitland i****d@b****m 1
AJ Stuyvenberg a****e@g****m 1
マルコメ a****o@b****p 1
watany 7****v 1
shulan s****1@g****m 1
and 22 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 234
  • Total pull requests: 1,191
  • Average time to close issues: 19 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 96
  • Total pull request authors: 57
  • Average comments per issue: 1.85
  • Average comments per pull request: 0.79
  • Merged pull requests: 920
  • Bot issues: 1
  • Bot pull requests: 518
Past Year
  • Issues: 102
  • Pull requests: 743
  • Average time to close issues: 7 days
  • Average time to close pull requests: 2 days
  • Issue authors: 43
  • Pull request authors: 20
  • Average comments per issue: 1.41
  • Average comments per pull request: 0.76
  • Merged pull requests: 543
  • Bot issues: 1
  • Bot pull requests: 393
Top Authors
Issue Authors
  • nabetti1720 (40)
  • ahaoboy (23)
  • Sytten (9)
  • richarddavison (9)
  • paul-uz (6)
  • teidesu (5)
  • ainsleyrutterford (5)
  • nomyfan (4)
  • imaitland (4)
  • fredbonin (3)
  • tmokmss (3)
  • m-rph (3)
  • jackkleeman (3)
  • ShivamJoker (3)
  • nocquidant (3)
Pull Request Authors
  • dependabot[bot] (518)
  • richarddavison (224)
  • nabetti1720 (216)
  • ahaoboy (55)
  • Sytten (48)
  • fredbonin (23)
  • calavera (6)
  • stephencroberts (6)
  • imaitland (5)
  • floydspace (5)
  • ainsleyrutterford (5)
  • nikp (4)
  • lewisgcm (4)
  • NoelJacob (4)
  • Dgarc359 (4)
Top Labels
Issue Labels
bug (24) enhancement (21) question (5) help wanted (4) rust (4) dependencies (3) wontfix (3) documentation (1) good first issue (1)
Pull Request Labels
dependencies (517) rust (324) javascript (189) github_actions (4) bug (1)

Packages

  • Total packages: 3
  • Total downloads:
    • npm 131 last-month
    • cargo 1,107 total
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 31
  • Total maintainers: 2
proxy.golang.org: github.com/awslabs/llrt
  • Versions: 26
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
npmjs.org: @dishuostec/llrt-types

Type definitions for LLRT, Low Latency Runtime

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 131 Last month
Rankings
Stargazers count: 0.9%
Forks count: 1.6%
Dependent repos count: 24.2%
Average: 25.2%
Dependent packages count: 34.9%
Downloads: 64.7%
Maintainers (1)
Last synced: 6 months ago
crates.io: llrt_utils

LLRT utilities

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,107 Total
Rankings
Dependent repos count: 25.7%
Dependent packages count: 34.0%
Average: 52.1%
Downloads: 96.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/build.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
  • actions/upload-artifact v4 composite
  • dtolnay/rust-toolchain v1 composite
.github/workflows/ci.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • dtolnay/rust-toolchain v1 composite
.github/workflows/release.yml actions
  • actions/download-artifact v4 composite
  • softprops/action-gh-release v1 composite
Cargo.lock cargo
  • 218 dependencies
Cargo.toml cargo
example/functions/package.json npm
  • @types/react 18.2.55 development
  • @types/react-dom 18.2.19 development
  • esbuild 0.20.0 development
  • @aws-sdk/client-dynamodb 3.509.0
  • @aws-sdk/client-s3 3.509.0
  • aws-sdk 2.1553.0
  • esbuild-css-modules-plugin 3.1.0
  • react 18.2.0
  • react-dom 18.2.0
example/infrastructure/package.json npm
  • @types/node 20.11.16 development
  • aws-cdk 2.126.0 development
  • aws-cdk-lib 2.126.0 development
  • constructs 10.3.0 development
  • esbuild 0.20.0 development
  • ts-node 10.9.2 development
  • typescript 5.3.3 development
package.json npm
  • @aws-sdk/client-cloudwatch-events 3.509.0 development
  • @aws-sdk/client-cloudwatch-logs 3.509.0 development
  • @aws-sdk/client-cognito-identity 3.509.0 development
  • @aws-sdk/client-dynamodb 3.509.0 development
  • @aws-sdk/client-eventbridge 3.509.0 development
  • @aws-sdk/client-kms 3.509.0 development
  • @aws-sdk/client-lambda 3.509.0 development
  • @aws-sdk/client-s3 3.509.0 development
  • @aws-sdk/client-secrets-manager 3.509.0 development
  • @aws-sdk/client-ses 3.509.0 development
  • @aws-sdk/client-sfn 3.509.0 development
  • @aws-sdk/client-sns 3.509.0 development
  • @aws-sdk/client-sqs 3.509.0 development
  • @aws-sdk/client-ssm 3.509.0 development
  • @aws-sdk/client-sts 3.507.0 development
  • @aws-sdk/client-xray 3.509.0 development
  • @aws-sdk/credential-providers 3.509.0 development
  • @aws-sdk/lib-dynamodb 3.509.0 development
  • @types/jest 29.5.12 development
  • @types/readable-stream 4.0.10 development
  • @types/uuid 9.0.8 development
  • assert 2.1.0 development
  • esbuild 0.20.0 development
  • esbuild-plugins-node-modules-polyfill 1.6.2 development
  • prettier 3.2.5 development
  • pretty-quick 4.0.0 development
  • pure-http 3.3.4 development
  • readable-stream 4.5.2 development
  • stream-browserify 3.0.0 development
  • typescript 5.3.3 development
yarn.lock npm
  • 367 dependencies
example/llrt-sam/hello-world/package-lock.json npm
  • 411 dependencies
example/llrt-sam/hello-world/package.json npm
  • @types/aws-lambda ^8.10.92 development
  • @types/node ^18.11.4 development
  • ts-node ^10.9.1 development
  • typescript ^4.8.4 development
example/llrt-sam-container-image/hello-world/Dockerfile docker
  • busybox latest build