{"id":24130627,"url":"https://github.com/iliana/minlambda","last_synced_at":"2025-10-06T04:06:28.466Z","repository":{"id":57639008,"uuid":"262718049","full_name":"iliana/minlambda","owner":"iliana","description":"A minimalist AWS Lambda runtime for Rust","archived":false,"fork":false,"pushed_at":"2020-10-02T23:56:05.000Z","size":27,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"matriarch","last_synced_at":"2025-04-02T03:24:11.190Z","etag":null,"topics":["aws","aws-lambda","lambda-runtime"],"latest_commit_sha":null,"homepage":"https://docs.rs/minlambda","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iliana.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-10T05:21:31.000Z","updated_at":"2022-01-03T09:16:23.000Z","dependencies_parsed_at":"2022-08-27T19:50:43.718Z","dependency_job_id":null,"html_url":"https://github.com/iliana/minlambda","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/iliana/minlambda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iliana%2Fminlambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iliana%2Fminlambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iliana%2Fminlambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iliana%2Fminlambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iliana","download_url":"https://codeload.github.com/iliana/minlambda/tar.gz/refs/heads/matriarch","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iliana%2Fminlambda/sbom","scorecard":{"id":484130,"data":{"date":"2025-08-11","repo":{"name":"github.com/iliana/minlambda","commit":"5bebca5f974dc29b855ad04dbc391b3958fac9e7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/8 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'matriarch'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}}]},"last_synced_at":"2025-08-19T17:22:46.182Z","repository_id":57639008,"created_at":"2025-08-19T17:22:46.182Z","updated_at":"2025-08-19T17:22:46.182Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275852254,"owners_count":25540136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","lambda-runtime"],"created_at":"2025-01-11T20:34:49.291Z","updated_at":"2025-09-18T23:32:52.937Z","avatar_url":"https://github.com/iliana.png","language":"Rust","readme":"# minlambda\n\nA minimalist [AWS Lambda][lambda] [runtime] for Rust.\n\n```rust\nfn main() -\u003e ! {\n    minlambda::run_ok(|_: serde::de::IgnoredAny| \"Hello, world!\")\n}\n```\n\n[lambda]: https://aws.amazon.com/lambda/\n[runtime]: https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html\n\n## What it does\n\nminlambda implements the [AWS Lambda runtime interface][interface], deserializing events and\nserializing responses with [Serde JSON][json].\n\nTo communicate with the runtime API over HTTP, minlambda uses a purpose-built HTTP client.\n\n[interface]: https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html\n[json]: https://docs.rs/serde_json\n\n## What it doesn't\n\nminlambda doesn't parse [response headers in the invocation event][next] (other than the\nrequest ID). This includes the function deadline, function ARN, AWS X-Ray tracing header, or\nadditional AWS Mobile SDK data. The crate author has never needed these and, well, this is a\nminimal runtime.\n\nminlambda doesn't run your handler in an async runtime. If you're using async code, you can\ncreate a runtime outside of `lambda::run` and call its blocking function (e.g. Tokio's\n`Runtime::block_on`). [An example for Tokio is available.][tokio-example]\n\n[next]: https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html#runtimes-api-next\n[tokio-example]: https://github.com/iliana/minlambda/blob/matriarch/examples/async.rs\n\n## When not to use this\n\nProbably most of the time.\n\nIf you're using Lambda to interact with other AWS services, which is very likely, you are\nprobably using an SDK (such as [Rusoto]) that probably relies on [hyper] and [Tokio], and\nyou're not really reducing your total dependency closure compared to the [AWS Labs\nruntime][awslabs].\n\nThe HTTP client was built to work with Lambda's runtime API, and not to be a generic\nRFC-compliant HTTP client; if Lambda's underlying interface subtly changes, this runtime could\nbreak unexpectedly. (This probably won't happen: we believe that the subset of the HTTP spec we\nimplement is by the book.)\n\n[Rusoto]: https://github.com/rusoto/rusoto\n[hyper]: https://docs.rs/hyper\n[tokio]: https://docs.rs/tokio\n[awslabs]: https://github.com/awslabs/aws-lambda-rust-runtime\n\n## When to use this\n\nYou like simple things, or your code already has minimal dependencies.\n\n## Examples\n\n[Some lovely examples are available in our repository.][examples]\n\n[examples]: https://github.com/iliana/minlambda/tree/matriarch/examples\n\n## Building Lambda functions\n\nBuilding binaries that actually work in the Lambda execution environment is a bit of an art, as\nit contains stable (old) versions of glibc and the like. Your compiler is probably targeting a\nsystem with newer shared libraries and symbol versions than what the execution environment has\navailable, resulting in [cryptic dynamic linker errors at runtime][cryptic].\n\nIf you find the musl libc toolchain reasonable to work with, [building a fully static binary is\nprobably the way to go][musl]. If you find containers reasonable to work with, [using\nsoftprops/lambda-rust is probably the way to go][container].\n\n[cryptic]: https://github.com/awslabs/aws-lambda-rust-runtime/issues/17\n[musl]: https://doc.rust-lang.org/edition-guide/rust-2018/platform-and-target-support/musl-support-for-fully-static-binaries.html\n[container]: https://github.com/softprops/lambda-rust\n\n## Disclaimer\n\nThe author of this crate works at AWS, but this is not an official AWS project, nor does it\nnecessarily represent opinions of or recommended best-practices on AWS.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filiana%2Fminlambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filiana%2Fminlambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filiana%2Fminlambda/lists"}