Architect runtime support
Overview
This document outlines the current runtime support commitments Architect makes, both for official AWS Lambda runtimes (such as Node.js), and Architect-specific runtimes (such as TypeScript and Deno).
Runtime support definitions
Deployment
Architect will deploy your function to AWS. Caveats:
- If you are using a compiled language, such as .NET, you may be responsible for compiling your own handlers via custom scripts or Architect plugins; however, once compiled, Deploy will ship your code.
- Some runtimes may be supported by way of an Architect runtime plugin. For example, Architect supports Rust via its official Rust plugin.
Sandbox
Architect’s local development environment, Sandbox, will execute your code locally in a fully-emulated Lambda. This may also include support for automatically compiling / transpiling handlers via plugin.
Runtime utils
Architect authors and maintains a runtime utility library, such as @architect/functions
(Node.js) or architect-functions
(Python), with helpers for various Architect primitives (@http
events, etc.), service discovery support, and more.
Automated dependency management
Architect Deploy (via Hydrate) can be relied upon to automatically install each handler’s unique dependency tree without any manual management of per-handler dependency manifests (e.g. src/http/get-index/package.json|requirements.txt
, etc.).
Runtime support matrix
Runtime | Deployment | Sandbox | Runtime utils | Automated dependency management |
---|---|---|---|---|
Node.js | ✓ | ✓ | ✓ | ✓ |
TypeScript¹ | ✓ | ✓ | ✓ | ✓ |
Python | ✓ | ✓ | ✓ | ✓ |
Deno² | ✓ | ✓ | ~² | |
Ruby | ✓ | ✓ | ||
Rust³ | ✓ | ✓ | ||
Go⁴ | ✓ | ✓ | ||
Java | ✓ | & | ||
.NET | ✓ | & | ||
Custom | & | & |
Legend:
✓
full support~
partial support&
planned support
¹ TypeScript supported via official plugin
² Deno support may not be current or stable due to ongoing issues related to Deno compiling to AWS Linux; an in-development Deno utility library can be found here
³ Rust supported via official plugin
⁴ Go supported via official plugin