rubyonjets/jets
54.0
Adequate · 19 September 2026
10.5k
lines of production code
Ruby
primary language
1
measurement over time
What this system is
Jets is a Ruby framework that enables the deployment of Rails, Sinatra, and Rack applications to AWS Lambda. It provides a comprehensive CLI for managing infrastructure, including CloudFormation stack orchestration, environment variable synchronization via AWS SSM, and CI/CD pipeline integration with CodeBuild. The system supports event-driven architectures through dedicated DSLs for various AWS services and allows for the definition of standalone Lambda functions alongside traditional web handlers.
How it got here
2017 — Rebranding to Jets and CloudFormation rewrite
12 changes.
The project was rebranded from Lam to Jets, involving a comprehensive rename of files, dependencies, and configuration to align with the new identity. This period also featured a complete rewrite of the CloudFormation deployment engine and the introduction of new CLI commands for managing Lambda concurrency and CI pipelines.
2018–2024 — Jets 6.0 architecture and Ruby 3 compatibility
10 changes.
This period focused on the development of the Jets 6.0 release, introducing a new event handling DSL, modular CloudFormation stack definitions, and a flexible code staging system. Significant effort was dedicated to ensuring compatibility with Ruby 3 and newer dependencies like Zeitwerk, alongside the implementation of a robust API client for remote deployments and CI/CD integration.
Features
New CLI commands for Lambda concurrency, CI, and environment management
The \jets\ CLI now includes new commands to manage Lambda concurrency (\jets concurrency\), AWS CodeBuild CI pipelines (\jets ci\), and environment variables (\jets dotenv\ and \jets env\). Users can now view, set, and unset reserved and provisioned concurrency limits, initialize and manage CI builds via CodeBuild, and manage environment variables either locally via dotenv or remotely via AWS SSM parameters.
lib/jets/cli · high confidence
New Jets::Git module for CI/CD and local repository metadata
This change introduces a new \Jets::Git\ module that provides a unified interface for retrieving git metadata (branch, SHA, URL, user, dirty status) across various environments. It includes a strategy pattern with specific implementations for Azure, Bitbucket, CircleCI, AWS CodeBuild, GitHub, GitLab, and custom environments, as well as a local fallback that queries the git CLI. The system automatically detects the current environment via specific environment variables (e.g., \GITHUB\_ACTIONS\, \GITLAB\_CI\, \SYSTEM\_TEAMFOUNDATIONSERVERURI\) and returns structured git information, supporting both CI/CD pipelines and local development workflows.
lib/jets/git · high confidence
New standalone Lambda function support with simplified handler interface
Users can now define standalone Lambda functions in \app/functions\ that are distinct from controllers and jobs. These functions use a simplified initialization signature, allowing them to be invoked directly as \function.lambda\_handler(event, context)\ without requiring event and context arguments in the constructor. The change introduces a new \Jets::Lambda::Function\ class and \FunctionConstructor\ to build these anonymous handler classes, along with DSL methods in \lib/jets/lambda/dsl.rb\ to configure function properties (such as timeout, memory, and IAM policies) and manage associated resources.
lib/jets/lambda · high confidence
Removals
Removal of initial CLI boilerplate and versioning
The initial CLI implementation for the \lam\ library has been removed, deleting the \CLI\, \Command\, \Help\, and \Version\ modules. This eliminates the basic Thor-based command-line interface (including the \hello\ command and help text) and the version constant, effectively stripping the library of its previous command-line entry points.
lib/lam · high confidence
Removal of the lam executable script
The bin/lam executable script has been removed from the project. This script previously served as the entry point for the CLI, handling signal trapping and initializing the Lam::CLI application. Its removal indicates that the command-line interface is no longer invoked via this specific binary path.
bin · high confidence
Behavioural changes
Adopts Zeitwerk 2.7 compatibility for autoloading
The Jets autoloading system has been updated to support Zeitwerk 2.7, ensuring compatibility with newer Ruby versions (including 3.4+). This change introduces dedicated autoloaders for the Jets gem itself and the main application code, utilizing Zeitwerk's loader for efficient file loading. A key behavioral adjustment addresses a breaking change in Zeitwerk 2.7 where \Zeitwerk::Registry.loaders\ shifted from an Array to a custom \Loaders\ object; the code now explicitly iterates using \.each.to\_a\ to correctly detect already-configured directories and prevent duplicate registrations.
lib/jets/autoloaders · high confidence
Compatibility shims for Ruby 3.2 and Bundler 2.1
Jets now includes core extensions to maintain compatibility with newer Ruby and Bundler versions. A shim restores the deprecated \File.exists?\ method (aliased to \exist?\) to support libraries like \aws\_config\ that have not yet migrated. Additionally, a compatibility layer ensures \Bundler.with\_unbundled\_env\ is available by falling back to \with\_clean\_env\ for older Bundler versions, and a \camelize\ method is added to the \Symbol\ class.
_lib/jets/core\ext · high confidence
Complete rewrite of the CloudFormation deployment engine
The \lib/jets/cfn\ directory has been entirely replaced with a new, modular CloudFormation deployment engine. This change introduces a structured builder system (including \Builder::Parent::Genesis\ for the bootstrap stack and \Builder::Interface\ for template composition) and a comprehensive resource definition layer (covering S3 buckets, CodeBuild projects, IAM roles, and policy standardization). The new engine handles the full lifecycle of stack management, including robust deployment synchronization, automatic rollback recovery for \UPDATE\_ROLLBACK\_FAILED\ states, and detailed failure diagnostics that surface nested stack errors to the user.
lib/jets/cfn · high confidence
Executable entry point moved to exe/jets
The CLI executable has been relocated to the \exe/jets\ path. This change updates the project structure to use the standard \exe/\ directory for executables, replacing the previous \bin/jets\ location, while maintaining the same Ruby-based CLI startup behavior.
exe · high confidence
Jets 6.0 beta1 release
This release introduces a new event handling system with dedicated DSL modules for AWS services including DynamoDB, IoT, Kinesis, CloudWatch Logs, S3, SNS, and SQS, alongside helper methods for parsing event data. It also adds a remote execution infrastructure for CodeBuild-based deployments, featuring a runner, log tailer, and template downloader. The CloudFormation stack DSL is restructured with modular components for defining Lambda functions, IAM roles, S3 buckets, and other resources, while the CLI gains improved help formatting, pagination, and authentication checks.
(repo-wide) · high confidence
New Jets API client with terms-of-service agreement and retry logic
The Jets CLI now includes a dedicated API client library (lib/jets/api) that handles communication with the Jets backend. Users will be prompted to agree to the Terms of Service on first use, with the ability to bypass the prompt in CI/CD environments via the JETS\_AGREE environment variable. The client manages API keys from \~/.jets/config.yml, implements automatic retry with exponential backoff for network errors, and provides structured error handling for HTTP status codes (e.g., 401, 404, 503). It also supports operations for pings, projects, releases, signatures, and stacks.
lib/jets/api · high confidence
New code staging and copy strategy system
The code staging process for deployments has been restructured with a new modular copy strategy system. A new \Jets::Code::Stager\ class now orchestrates the build process, including cleaning, staging code, and saving deployment metadata. The system supports multiple copy strategies (\Rsync\, \GitCopy\, \GitInline\, \Full\) selected via configuration or auto-detection, allowing for more efficient code transfer during deployment. Additionally, the staging process now automatically handles git information, ruby version files, and deploy user information within the staged code directory.
lib/jets/code · high confidence
Project rebranded from Lam to Jets with major documentation and structural updates
The project has been officially renamed from 'Lam' to 'Jets', reflected in the README, license, and new documentation files (CONDUCT.md, CONTRIBUTING.md). The repository structure has been updated to align with the Jets framework, including the addition of a comprehensive CHANGELOG.md, a new Rakefile configuration for RDoc generation, and updated .gitignore rules. Legacy files like Guardfile have been removed, and the README now highlights Jets' capabilities for deploying Rails, Sinatra, and Rack apps to AWS Lambda, along with quick-start instructions using the 'jets' CLI.
(repo-wide) · high confidence
Rebrand from 'Lam' to 'Jets' and update Ruby 3.4 compatibility
The library entry point has been renamed from \lib/lam.rb\ to \lib/jets.rb\, reflecting the project's rebranding. This change also updates the core initialization to explicitly require \logger\ and \mutex\_m\ early, addressing compatibility issues with Ruby 3.4+ changes, and integrates the \cfn\_status\ and \cfn\_camelizer\ dependencies for CloudFormation resource handling.
lib · high confidence
Refactored AWS service client caching and S3 bucket management
The AWS services layer has been restructured to improve Lambda cold-start performance and deployment reliability. A new global memoization mechanism caches AWS SDK clients across Lambda executions, reducing instantiation overhead. S3 bucket existence checks now provide clearer error messages when a bucket name is already taken, and CloudFormation stack status checks include caching to mitigate rate-limiting issues during deployment.
_lib/jets/aws\services · high confidence
Refactored dotenv SSM integration with improved error reporting and convention-based path resolution
The dotenv subsystem has been restructured into dedicated classes (Convention, Ssm, Var) to handle AWS SSM parameter lookups. This change introduces a convention-based resolver for constructing SSM parameter paths, supporting both short environment names (e.g., 'dev') and long names (e.g., 'development') via configurable mappings. It also enhances error reporting by explicitly listing missing SSM parameters when loading .env variables, rather than failing silently or with generic errors. The SSM autoload feature now respects skip lists and merges variables from both conventional paths and Jets-specific environment paths, with user-defined config values taking precedence.
lib/jets/dotenv · high confidence
Refactored utility modules for Ruby 3 compatibility and cleaner API
The utility modules in lib/jets/util have been restructured into individual files to improve organization and ensure compatibility with Ruby 3. Key changes include updating the YAML loader (Yamler) to handle Ruby 3's deprecation of the \aliases: true\ option, adding a new \CallLine\ module to identify the calling source within the Jets root, and introducing \FormatTime\ for human-readable time outputs. Other utilities like \Camelize\, \Git\, \Logging\, \Pretty\, \Sh\, \Sure\, and \Truthy\ have also been extracted or refined to provide clearer, more modular functionality for internal Jets operations.
lib/jets/util · high confidence
Test coverage
Added test coverage for Jets 6.0 shim adapters and fixtures; Removed CLI specification for the legacy 'lam' command; Updated test configuration and environment setup.
Dependencies
Project renamed from 'lam' to 'jets' with expanded AWS dependencies
The gem has been renamed from 'lam' to 'jets' and its dependency list has been significantly expanded to include a comprehensive set of AWS SDK gems (such as aws-sdk-apigateway, aws-sdk-lambda, aws-sdk-s3, aws-sdk-sqs, and aws-sdk-ssm) alongside core libraries like dotenv, thor, and zeitwerk. The previous gemspec and lockfile are removed, and the project now requires Ruby 2.7.0 or higher, while the Gemfile adds development dependencies for dynomite and mysql2.
(dependencies) · high confidence
Housekeeping
Jets 6.0.6 release
This update releases Jets version 6.0.6. The change is a version number bump with no visible code modifications in the provided diff excerpt.
lib/jets · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 54.
Lenses
- Code Health 98
- Architecture 92
- Maturity 44
- Readiness 38
- Security 90
Changes since last survey
- 300 commits — 252 feature/other, 48 fixes
By area
- lib/jets — 114 commits
- (repo) — 105 commits
- (root) — 64 commits
- docs/_docs — 6 commits
- spec/lib — 4 commits
- .github/FUNDING.yml — 1 commit
- .github/ISSUE_TEMPLATE — 1 commit
- docs/CNAME — 1 commit
- docs/_includes — 1 commit
- docs/_reference — 1 commit
- docs/index.html — 1 commit
- engines/internal — 1 commit
Notable commits
- fix: Fix Prewarming
- fix: Fix Zeitwerk 2.7 compatibility and add Ruby 3.4+ dependencies
- fix: Fix broken links in README and CONTRIBUTING
- fix: Fix job params serialization
- fix: Fix prewarming caused by undefined cfn
- fix: Fix private method names
- fix: Fixes IAM role permissions for PreheatJob
- fix: Merge pull request #587 from oieioi/fix-private-method-name
- fix: Merge pull request #596 from jtadeulopes/issue-595-fix-job-serializer
- fix: Merge pull request #598 from wurlinc/fix-mount
- fix: Merge pull request #656 from boltops-tools/prewarming-fix
- fix: Merge pull request #660 from boltops-tools/fix-prewarming
- fix: Merge pull request #683 from zfletch/fix-broken-links
- fix: Merge pull request #722 from greveritt/stubbing-fix
- fix: Merge pull request #727 from rubyonjets/fixes
- fix: PreheatJob: fix function lookups and iam function permission
- fix: Revert "Change job spec"
- fix: Revert "Fix job params serialization"
- fix: Validate lambda function names: fix regexp
- fix: [Fix] ApiGateway for local Middleware
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
rubyonjets/jets was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 4cf2c1fdb290a5af68b8a8fcaaa6de1c88871667 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.