公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-07-27 11:25 UTC

godaddy / asherah-ffi

Application-layer envelope encryption with automatic key rotation. Rust core with bindings for Node.js, Python, .NET, Java, Ruby, and Go.

RustApache-2.0★ 0 星标⑂ 1 复刻始于 2025年9月在 GitHub 上查看 ↗

godaddy/asherah-ffi 的健康指数为 100 分中的 70 分,处于「良好」区间。 其得分最高的类别是Engineering Quality(96/100),最低的是Community & Adoption(40/100)。 最近一次更新在 6 天前。 近期的大部分工作由 1 位贡献者完成。

70
总分 / 100
良好

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

70
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

GoDaddy组织
228 关注者215 个公开仓库始于 2012年2月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
Packagistgodaddy/asherahv1.0.0101937 天前encryptionkmsffienvelope-encryptionasherah
Gogithub.com/godaddy/asherah-ffi/asherah-gov1.0.0-1437 天前
crates.ioasherah1.0.0749437 天前asherahencryptionkmssecretssecuritycryptographyconfigmemory-management
crates.ioasherah-ffi1.0.016337 天前asherahencryptionffikmsapi-bindingscryptographymemory-management

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

85优秀 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 6 天前
17.3/36提交节奏 — 52 周中有 25 周有提交
18/18提交量 — 最近一年 667 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year667
human_commit_share0.84
days_since_last_push6
active_weeks_last_year25

发布纪律

90优秀
评分方式
27/27有发布版本 — 已发布 100 个发布版本
36/36发布时效 — 最近一次发布版本于 37 天前
27/27发布节奏 — 约每 3.2 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — Project has not signed or included provenance with any releases.
所用输入
releases_count100
latest_release_tagv1.0.0
releases_from_tags
days_since_latest_release37
mean_days_between_releases3.2

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

40存在风险 · 占总体的 18%
评分方式
0/60星标 — 0 个星标
0/25复刻 — 1 个复刻
0/15关注者 — 0 位关注者
所用输入
forks1
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

85优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(Apache-2.0)
18/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
38.5/80月度下载量 — crates, go, packagist 合计每月 775 次下载
0/20注册表被依赖数 — 0 个软件包依赖它
所用输入
packagesgodaddy/asherah, github.com/godaddy/asherah-ffi/asherah-go, asherah, asherah-ffi
dependents0
ecosystemscrates, go, packagist
total_downloads2,361
monthly_downloads775

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

63中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
4.3/22.5提交分布 — 头号贡献者编写了 81% 的提交
6.8/13.5贡献者广度 — 5 位贡献者
3/10OpenSSF Scorecard:Contributors — project has 1 contributing companies or organizations -- score normalized to 3
所用输入
bus_factor1
contributors_sampled5
top_contributor_share0.808
评分方式
37.4/46.8议题解决 — 80% 的议题已关闭
34/38.3PR 接受 — 已裁定的 PR 中 310/349 已合并
3/15OpenSSF Scorecard:Code-Review — Found 6/22 approved changesets -- score normalized to 2
所用输入
merged_prs310
open_issues1
closed_issues4
issue_closed_ratio0.8
closed_unmerged_prs39
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
17/25所有者影响力 — godaddy 有 228 位关注者
25/25既往记录 — 215 个公开仓库,账户约 14 年
所用输入
followers228
owner_typeOrganization
is_verified
owner_logingodaddy
public_repos215
account_age_days5,287
评分方式
25/25已发布且可解析 — crates, go, packagist 上有 4 个软件包
35/35发布时效 — 最近一次发布于 37 天前
20/20版本历史 — 19 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesgodaddy/asherah, github.com/godaddy/asherah-ffi/asherah-go, asherah, asherah-ffi
ecosystemscrates, go, packagist
any_deprecated
min_days_since_publish37

工程质量

基础的工程与文档实践是否到位?

96优秀 · 占总体的 20%

工程实践

100优秀
评分方式
24/24CI 工作流 — 19 个工作流
24/24存在测试
16/16Linter 配置 — .php-cs-fixer.php, .rubocop.yml, phpstan.neon
9.6/9.6Pre-commit 钩子
6.4/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 28 out of 28 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

90优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://github.com/godaddy/asherah-ffi
10/10仓库描述
10/10主题标签 — 13 个主题标签
0/10Wiki
所用输入
topicscryptography, dotnet, encryption, envelope-encryption, ffi, go, java, key-rotation, nodejs, python, ruby, rust, security
has_wiki
homepagehttps://github.com/godaddy/asherah-ffi
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

62中等 · 占总体的 16%

安全态势

60中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 28 out of 28 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
1.5/7.5Code-Review — Found 6/22 approved changesets -- score normalized to 2
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
0/10Dangerous-Workflow — 无数据
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — 无数据
5/5SAST — SAST tool is run on all commits
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — 无数据
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated14
scorecard_versionv5.5.0
checks_inconclusive4
scorecard_aggregate6
已排除计分(无数据或不适用):dangerous_workflow, packaging, pinned_dependencies, token_permissions。 其余权重已重新归一化。
评分方式
11.4/35直接依赖不含已知公告 — 4 个受影响:openssl 0.10.78 (high 7.5), anyhow 1.0.102 (unknown), scc 2.4.0 (unknown),另有 1 个
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
40/40没有长期未处理的公告 — 没有公告公开超过 90 天
所用输入
sourceosv
advisories90
affected_packages23
assessed_packages708
unassessed_packages76
affected_by_severitycritical 3, high 4, moderate 5, unknown 11
direct_affected_packages4
已排除计分(无数据或不适用):间接依赖不含已知公告。 其余权重已重新归一化。 已将 708 个已解析依赖与 OSV 比对。 有 76 项无法评估——没有已解析的版本、生态系统不受支持,或超出所报告的软件包清单。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

90优秀 · 占总体的 0%
评分方式
45/45代理指令 — AGENTS.md, CLAUDE.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 84 次人类提交中有 81 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.964
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes10,921
评分方式
12.6/18一条命令的引导启动 — Cargo.toml, asherah-cobhan/Cargo.toml, asherah-cobhan/interop/go.mod(工具链约定,无任务运行器)
22/22自动化测试
11/11Lint / 格式化配置 — .php-cs-fixer.php, .rubocop.yml, phpstan.neon
11/11静态类型检查 — asherah-py/asherah/py.typed
10/10可复现环境 — Dockerfile, lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 8 次由代理编写或署名代理
8/8自动化维护 — 最近 100 次提交中有 16 次为自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — 无数据
所用输入
has_nix
has_tests
lockfilesCargo.lock, go.sum, package-lock.json, packages.lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configsasherah-py/asherah/py.typed
agent_commit_share0.08
toolchain_manifestsCargo.toml, asherah-cobhan/Cargo.toml, asherah-cobhan/interop/go.mod, asherah-config/Cargo.toml, asherah-dotnet/src/GoDaddy.Asherah.Encryption.Compat/GoDaddy.Asherah.Encryption.Compat.csproj, asherah-dotnet/src/GoDaddy.Asherah.Encryption/GoDaddy.Asherah.Encryption.csproj, asherah-dotnet/tests/GoDaddy.Asherah.Encryption.Compat.Tests/GoDaddy.Asherah.Encryption.Compat.Tests.csproj, asherah-dotnet/tests/GoDaddy.Asherah.Encryption.Tests/GoDaddy.Asherah.Encryption.Tests.csproj, asherah-ffi/Cargo.toml, asherah-go/go.mod, asherah-java/Cargo.toml, asherah-java/java/pom.xml, asherah-node/Cargo.toml, asherah-py/Cargo.toml, asherah-server/Cargo.toml, asherah/Cargo.toml, benchmarks/asherah-bench/Cargo.toml, benchmarks/dotnet-bench-canonical/dotnet-bench-canonical.csproj, benchmarks/dotnet-bench-newmetastore/dotnet-bench-newmetastore.csproj, benchmarks/dotnet-bench/dotnet-bench.csproj, benchmarks/go-bench/go.mod, benchmarks/go-wrapper/go.mod, benchmarks/grpc-bench/go.mod, benchmarks/java-bench-canonical/pom.xml, benchmarks/java-bench/pom.xml, benchmarks/native-bench/go-bench/go.mod, benchmarks/native-bench/rust-bench/Cargo.toml, fuzz/Cargo.toml, interop-grpc/client/Cargo.toml, interop/canonical-csharp/CanonicalCsharpProbe.csproj, interop/canonical-go/go.mod, interop/canonical-java/pom.xml, samples/dotnet/Sample.csproj, samples/go/go.mod, samples/rust/Cargo.toml
dependency_bot_commit_share0.16
已排除计分(无数据或不适用):OpenSSF Scorecard:Pinned-Dependencies。 其余权重已重新归一化。
评分方式
45/45可类型检查的代码 — Rust(静态类型)
54.4/55可控的文件大小 — 采样的 352 个源文件中有 4 个超过 60KB
所用输入
primary_languageRust
largest_source_bytes198,446
source_files_sampled352
oversized_source_files4
评分方式
40/40API 模式(OpenAPI/GraphQL/proto) — asherah-server/proto/appencryption.proto, interop-grpc/client/proto/appencryption.proto
0/20MCP 服务器
40/40可运行示例 — examples, samples
所用输入
example_dirsexamples, samples
has_mcp_signal
api_schema_filesasherah-server/proto/appencryption.proto, interop-grpc/client/proto/appencryption.proto

关键数据

0GitHub 星标
5贡献者
667最近 12 个月提交数
6距最近推送天数
100发布版本数
1巴士系数(bus factor)
1开放议题
crates.io, Go, npm, Packagist, PyPI, RubyGems软件包生态系统数

数据采集警告

  • Could not fetch crates package 'asherah-workspace' from its registry
  • Could not fetch crates package 'asherah-py' from its registry
  • Could not fetch crates package 'asherah-java' from its registry
  • Could not fetch crates package 'asherah-node' from its registry

更多细节

OpenSSF Scorecard 6.0 / 10
6.0综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-27 11:25 UTC

10Binary-Artifactsno binaries found in the repo
3Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests28 out of 28 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
2Code-ReviewFound 6/22 approved changesets -- score normalized to 2
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
不适用Dangerous-Workflowno workflows found
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
不适用Pinned-Dependenciesno dependencies found
10SASTSAST tool is run on all commits
4Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
不适用Token-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
直接依赖 105
注册表软件包版本约束清单文件
crates.ioasherah1.0.0asherah-cobhan/Cargo.toml
crates.ioasherah-config1.0.0asherah-cobhan/Cargo.toml
crates.iolog0.4asherah-cobhan/Cargo.toml
crates.ioserde_json1.0asherah-cobhan/Cargo.toml
crates.ioserde1.0asherah-cobhan/Cargo.toml
crates.iozeroize1.8asherah-cobhan/Cargo.toml
crates.ioanyhow1.0asherah-config/Cargo.toml
crates.ioserde1.0asherah-config/Cargo.toml
crates.ioserde_json1.0asherah-config/Cargo.toml
crates.ioasherah1.0.0asherah-config/Cargo.toml
crates.ioasherah1.0.0asherah-ffi/Cargo.toml
crates.ioasherah-cobhan1.0.0asherah-ffi/Cargo.toml
crates.ioasherah-config1.0.0asherah-ffi/Cargo.toml
crates.ioserde_json1.0asherah-ffi/Cargo.toml
crates.ioanyhow1.0asherah-ffi/Cargo.toml
crates.iotokio1asherah-ffi/Cargo.toml
crates.ioonce_cell1asherah-ffi/Cargo.toml
crates.ioparking_lot0.12asherah-ffi/Cargo.toml
crates.iolog0.4asherah-ffi/Cargo.toml
crates.iozeroize1.8asherah-ffi/Cargo.toml
Gogithub.com/ebitengine/puregov0.10.1asherah-go/go.mod
crates.iojni0.22asherah-java/Cargo.toml
crates.ioasherah1.0.0asherah-java/Cargo.toml
crates.ioasherah-config1.0.0asherah-java/Cargo.toml
crates.ioanyhow1.0asherah-java/Cargo.toml
crates.ioserde_json1.0asherah-java/Cargo.toml
crates.iotokio1asherah-java/Cargo.toml
crates.ioonce_cell1asherah-java/Cargo.toml
crates.iolog0.4asherah-java/Cargo.toml
crates.ioparking_lot0.12asherah-java/Cargo.toml
crates.iozeroize1.8asherah-java/Cargo.toml
crates.ionapi3asherah-node/Cargo.toml
crates.ionapi-derive3asherah-node/Cargo.toml
crates.ioserde1.0asherah-node/Cargo.toml
crates.ioserde_json1.0asherah-node/Cargo.toml
crates.ioanyhow1.0asherah-node/Cargo.toml
crates.ioasherah1.0.0asherah-node/Cargo.toml
crates.ioasherah-config1.0.0asherah-node/Cargo.toml
crates.iotokio1asherah-node/Cargo.toml
crates.ioonce_cell1asherah-node/Cargo.toml
crates.ioparking_lot0.12asherah-node/Cargo.toml
crates.iolru0.16asherah-node/Cargo.toml
crates.iolog0.4asherah-node/Cargo.toml
crates.iopyo30.29asherah-py/Cargo.toml
crates.ioasherah1.0.0asherah-py/Cargo.toml
crates.iotokio1asherah-py/Cargo.toml
crates.ioasherah-config1.0.0asherah-py/Cargo.toml
crates.ioserde_json1.0asherah-py/Cargo.toml
crates.ioanyhow1.0asherah-py/Cargo.toml
crates.ioonce_cell1.21asherah-py/Cargo.toml
crates.ioparking_lot0.12asherah-py/Cargo.toml
crates.iolru0.16asherah-py/Cargo.toml
crates.iolog0.4asherah-py/Cargo.toml
crates.iozeroize1asherah-py/Cargo.toml
crates.ioasherahasherah-server/Cargo.toml
crates.ioasherah-configasherah-server/Cargo.toml
crates.iotonic0.14asherah-server/Cargo.toml
crates.iotonic-prost0.14asherah-server/Cargo.toml
crates.ioprost0.14asherah-server/Cargo.toml
crates.iotokio1asherah-server/Cargo.toml
crates.iotokio-stream0.1asherah-server/Cargo.toml
crates.ioclap4asherah-server/Cargo.toml
crates.ioserde_json1asherah-server/Cargo.toml
crates.ioanyhow1asherah-server/Cargo.toml
crates.iolog0.4asherah-server/Cargo.toml
crates.ioenv_logger0.11asherah-server/Cargo.toml
crates.iorustix1.1asherah-server/Cargo.toml
crates.ioserde1.0asherah/Cargo.toml
crates.ioserde_json1.0asherah/Cargo.toml
crates.ioonce_cell1.21asherah/Cargo.toml
crates.ioparking_lot0.12asherah/Cargo.toml
crates.iorand0.9asherah/Cargo.toml
crates.iorand_chacha0.9asherah/Cargo.toml
crates.ioitoa1asherah/Cargo.toml
crates.ioanyhow1.0asherah/Cargo.toml
crates.ioasync-trait0.1asherah/Cargo.toml
crates.iolog0.4asherah/Cargo.toml
crates.ioserde_bytes0.11asherah/Cargo.toml
crates.ioblake20.10asherah/Cargo.toml
crates.iobase640.22asherah/Cargo.toml
crates.iosubtle2.5asherah/Cargo.toml
crates.iosignal-hook0.4asherah/Cargo.toml
crates.iolibc0.2asherah/Cargo.toml
crates.iowindows-sys0.59asherah/Cargo.toml
crates.iohardware-rust-crypto1.0asherah/Cargo.toml
crates.ioring0.17asherah/Cargo.toml
crates.ioscc3asherah/Cargo.toml
crates.iopercent-encoding2asherah/Cargo.toml
crates.iozeroize1.8asherah/Cargo.toml
crates.iohardware-enclave0.2.9asherah/Cargo.toml
crates.iorusqlite0.38asherah/Cargo.toml
crates.ioaws-config1asherah/Cargo.toml
crates.ioaws-types1asherah/Cargo.toml
crates.ioaws-sdk-kms1asherah/Cargo.toml
crates.ioaws-sdk-dynamodb1asherah/Cargo.toml
crates.ioaws-sdk-secretsmanager1asherah/Cargo.toml
crates.iotokio1asherah/Cargo.toml
crates.iomysql27asherah/Cargo.toml
crates.iopostgres0.19asherah/Cargo.toml
crates.iopostgres-native-tls0.5asherah/Cargo.toml
crates.ionative-tls0.2asherah/Cargo.toml
crates.ioopenssl0.10asherah/Cargo.toml
crates.ioreqwest0.12asherah/Cargo.toml
npmasherah^3.0.12interop/package.json
npmasherah-nodefile:../asherah-nodeinterop/package.json
全部依赖 784

来自 GitHub 依赖图的完整解析依赖集合:127 个直接依赖与 657 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
crates.ioanyhow直接
crates.ioanyhow1.0.102直接
crates.ioasherah直接
crates.ioasherah-cobhan直接
crates.ioasherah-config直接
crates.ioasync-trait直接
crates.ioasync-trait0.1.89直接
crates.ioaws-config直接
crates.ioaws-config1.8.13直接
crates.ioaws-config1.8.15直接
crates.ioaws-sdk-dynamodb直接
crates.ioaws-sdk-dynamodb1.104.0直接
crates.ioaws-sdk-dynamodb1.108.0直接
crates.ioaws-sdk-kms直接
crates.ioaws-sdk-kms1.103.0直接
crates.ioaws-sdk-kms1.99.0直接
crates.ioaws-sdk-secretsmanager直接
crates.ioaws-sdk-secretsmanager1.99.0直接
crates.ioaws-types直接
crates.ioaws-types1.3.11直接
crates.ioaws-types1.3.14直接
crates.iobase64直接
crates.iobase640.21.7直接
crates.iobase640.22.1直接
crates.ioblake2直接
crates.ioblake20.10.6直接
crates.ioclap直接
crates.ioclap4.6.1直接
crates.ioenv_logger直接
crates.ioenv_logger0.11.10直接
crates.iohardware-enclave直接
crates.iohardware-enclave0.2.9直接
crates.iohardware-rust-crypto直接
crates.iohardware-rust-crypto1.0.1直接
crates.ioitoa直接
crates.ioitoa1.0.17直接
crates.ioitoa1.0.18直接
crates.iojni直接
crates.iojni0.22.4直接
crates.iolibc直接
crates.iolibc0.2.183直接
crates.iolibc0.2.186直接
crates.iolog直接
crates.iolog0.4.29直接
crates.iolog0.4.32直接
crates.iolru直接
crates.iolru0.16.3直接
crates.iolru0.16.4直接
crates.iomysql直接
crates.iomysql27.0.0直接
crates.ionapi直接
crates.ionapi3.9.0直接
crates.ionapi-derive直接
crates.ionapi-derive3.5.6直接
crates.ionative-tls直接
crates.ionative-tls0.2.18直接
crates.ioonce_cell直接
crates.ioonce_cell1.21.3直接
crates.ioonce_cell1.21.4直接
crates.ioopenssl直接
crates.ioopenssl0.10.78直接
crates.ioopenssl0.10.80直接
crates.ioparking_lot直接
crates.ioparking_lot0.12.5直接
crates.iopercent-encoding直接
crates.iopercent-encoding2.3.2直接
crates.iopostgres直接
crates.iopostgres0.19.12直接
crates.iopostgres0.19.13直接
crates.iopostgres-native-tls直接
crates.iopostgres-native-tls0.5.2直接
crates.iopostgres-native-tls0.5.3直接
crates.ioprost直接
crates.ioprost0.14.4直接
crates.iopyo3直接
crates.iopyo30.29.0直接
crates.iorand直接
crates.iorand0.10.1直接
crates.iorand0.9.4直接
crates.iorand_chacha直接
crates.iorand_chacha0.9.0直接
crates.ioreqwest直接
crates.ioreqwest0.12.28直接
crates.ioring直接
crates.ioring0.17.14直接
crates.iorusqlite直接
crates.iorusqlite0.38.0直接
crates.iorustix直接
crates.iorustix1.1.4直接
crates.ioscc直接
crates.ioscc2.4.0直接
crates.ioscc3.7.2直接
crates.ioserde直接
crates.ioserde1.0.228直接
crates.ioserde_bytes直接
crates.ioserde_bytes0.11.19直接
crates.ioserde_json直接
crates.ioserde_json1.0.149直接
crates.ioserde_json1.0.150直接
crates.iosignal-hook直接
crates.iosignal-hook0.4.3直接
crates.iosignal-hook0.4.4直接
crates.iosubtle直接
crates.iosubtle2.6.1直接
crates.iotokio直接
crates.iotokio1.50.0直接
crates.iotokio1.52.3直接
crates.iotokio-stream直接
crates.iotokio-stream0.1.18直接
crates.iotonic直接
crates.iotonic0.14.6直接
crates.iotonic-prost直接
crates.iotonic-prost0.14.6直接
crates.iowindows-sys直接
crates.iowindows-sys0.52.0直接
crates.iowindows-sys0.59.0直接
crates.iowindows-sys0.61.2直接
crates.iozeroize直接
crates.iozeroize1.8.2直接
Gogithub.com/ebitengine/puregov0.10.0直接
Gogithub.com/ebitengine/puregov0.10.1直接
Gogithub.com/ebitengine/puregov0.9.0直接
npmasherah3.0.12直接
npmasherah3.0.16直接
npmasherah4.0.0-beta.1直接
npmasherahlatest直接
npmasherahnext直接
crates.ioadler22.0.1间接
crates.ioaead0.5.2间接
crates.ioaes0.8.4间接
crates.ioaes-gcm0.10.3间接
crates.ioaho-corasick1.1.4间接
crates.ioallocator-api20.2.21间接
crates.ioandroid_system_properties0.1.5间接
crates.ioanes0.1.6间接
crates.ioanstream1.0.0间接
crates.ioanstyle1.0.14间接
crates.ioanstyle-parse1.0.0间接
crates.ioanstyle-query1.1.5间接
crates.ioanstyle-wincon3.0.11间接
crates.ioarbitrary1.4.2间接
crates.ioastral-tokio-tar0.6.2间接
crates.ioasync-stream0.3.6间接
crates.ioasync-stream-impl0.3.6间接
crates.ioatomic-waker1.1.2间接
crates.ioautocfg1.5.0间接
crates.ioaws-credential-types1.2.11间接
crates.ioaws-credential-types1.2.14间接
crates.ioaws-lc-rs1.16.2间接
crates.ioaws-lc-sys0.39.0间接
crates.ioaws-lc-sys0.39.1间接
crates.ioaws-runtime1.6.0间接
crates.ioaws-runtime1.7.2间接
crates.ioaws-sdk-sso1.93.0间接
crates.ioaws-sdk-sso1.96.0间接
crates.ioaws-sdk-ssooidc1.95.0间接
crates.ioaws-sdk-ssooidc1.98.0间接
crates.ioaws-sdk-sts1.100.0间接
crates.ioaws-sdk-sts1.97.0间接
crates.ioaws-sigv41.3.8间接
crates.ioaws-sigv41.4.2间接
crates.ioaws-smithy-async1.2.11间接
crates.ioaws-smithy-async1.2.14间接
crates.ioaws-smithy-http0.63.3间接
crates.ioaws-smithy-http0.63.6间接
crates.ioaws-smithy-http-client1.1.12间接
crates.ioaws-smithy-http-client1.1.9间接
crates.ioaws-smithy-json0.62.3间接
crates.ioaws-smithy-json0.62.5间接
crates.ioaws-smithy-observability0.2.4间接
crates.ioaws-smithy-observability0.2.6间接
crates.ioaws-smithy-query0.60.13间接
crates.ioaws-smithy-query0.60.15间接
crates.ioaws-smithy-runtime1.10.0间接
crates.ioaws-smithy-runtime1.10.3间接
crates.ioaws-smithy-runtime-api1.11.3间接
crates.ioaws-smithy-runtime-api1.11.6间接
crates.ioaws-smithy-types1.4.3间接
crates.ioaws-smithy-types1.4.6间接
crates.ioaws-smithy-xml0.60.13间接
crates.ioaws-smithy-xml0.60.15间接
crates.ioaxum0.8.8间接
crates.ioaxum-core0.5.6间接
crates.iobase64-simd0.8.0间接
crates.iobitflags2.11.0间接
crates.ioblock-buffer0.10.4间接
crates.ioblock-buffer0.12.0间接
crates.iobollard0.20.2间接
crates.iobollard-buildkit-proto0.7.0间接
crates.iobollard-stubs1.52.1-rc.29.1.3间接
crates.iobstr1.12.1间接
crates.iobtoi0.5.0间接
crates.iobufstream0.1.4间接
crates.iobumpalo3.20.2间接
crates.iobytecount0.6.9间接
crates.iobyteorder1.5.0间接
crates.iobytes1.11.1间接
crates.iobytes-utils0.1.4间接
crates.iocast0.3.0间接
crates.iocc1.2.56间接
crates.iocc1.2.60间接
crates.iocfg-if1.0.4间接
crates.iocfg_aliases0.2.1间接
crates.iochacha200.10.0间接
crates.iochrono0.4.44间接
crates.iociborium0.2.2间接
crates.iociborium-io0.2.2间接
crates.iociborium-ll0.2.2间接
crates.iocipher0.4.4间接
crates.ioclap_builder4.6.0间接
crates.ioclap_derive4.6.1间接
crates.ioclap_lex1.1.0间接
crates.iocmake0.1.57间接
crates.iocmake0.1.58间接
crates.iocmov0.5.3间接
crates.iocolorchoice1.0.5间接
crates.iocombine4.6.7间接
crates.ioconsole0.16.3间接
crates.ioconst-oid0.10.2间接
crates.ioconvert_case0.10.0间接
crates.ioconvert_case0.11.0间接
crates.iocore-foundation0.10.1间接
crates.iocore-foundation-sys0.8.7间接
crates.iocpufeatures0.2.17间接
crates.iocpufeatures0.3.0间接
crates.iocrc32fast1.5.0间接
crates.iocriterion间接
crates.iocriterion0.5.1间接
crates.iocriterion-plot0.5.0间接
crates.iocrossbeam-deque0.8.6间接
crates.iocrossbeam-epoch0.9.18间接
crates.iocrossbeam-queue0.3.12间接
crates.iocrossbeam-utils0.8.21间接
crates.iocrunchy0.2.4间接
crates.iocrypto-common0.1.7间接
crates.iocrypto-common0.2.1间接
crates.ioctor1.0.6间接
crates.ioctr0.9.2间接
crates.ioctutils0.4.2间接
crates.iocucumber间接
crates.iocucumber0.22.1间接
crates.iocucumber-codegen0.22.1间接
crates.iocucumber-expressions0.5.0间接
crates.iodarling0.20.11间接
crates.iodarling0.23.0间接
crates.iodarling_core0.20.11间接
crates.iodarling_core0.23.0间接
crates.iodarling_macro0.20.11间接
crates.iodarling_macro0.23.0间接
crates.ioderanged0.5.8间接
crates.ioderive_arbitrary1.4.2间接
crates.ioderive_more2.1.1间接
crates.ioderive_more-impl2.1.1间接
crates.ioderive_utils0.15.1间接
crates.iodigest0.10.7间接
crates.iodigest0.11.2间接
crates.iodisplaydoc0.2.5间接
crates.iodocker_credential1.3.2间接
crates.iodunce1.0.5间接
crates.iodyn-clone1.0.20间接
crates.ioeither1.15.0间接
crates.ioencode_unicode1.0.0间接
crates.ioenv_filter1.0.1间接
crates.ioequivalent1.0.2间接
crates.ioerrno0.3.14间接
crates.ioetcetera0.11.0间接
crates.iofallible-iterator0.2.0间接
crates.iofallible-iterator0.3.0间接
crates.iofallible-streaming-iterator0.1.9间接
crates.iofastrand2.3.0间接
crates.iofastrand2.4.1间接
crates.ioferroid2.0.0间接
crates.iofiletime0.2.27间接
crates.iofind-msvc-tools0.1.9间接
crates.iofixedbitset0.5.7间接
crates.ioflate21.1.9间接
crates.iofnv1.0.7间接
crates.iofoldhash0.1.5间接
crates.iofoldhash0.2.0间接
crates.ioforeign-types0.3.2间接
crates.ioforeign-types-shared0.1.1间接
crates.ioform_urlencoded1.2.2间接
crates.iofs_extra1.3.0间接
crates.iofutures间接
crates.iofutures0.3.32间接
crates.iofutures-channel0.3.32间接
crates.iofutures-core0.3.32间接
crates.iofutures-executor0.3.32间接
crates.iofutures-io0.3.32间接
crates.iofutures-macro0.3.32间接
crates.iofutures-sink0.3.32间接
crates.iofutures-task0.3.32间接
crates.iofutures-util0.3.32间接
crates.iogeneric-array0.14.7间接
crates.iogetrandom0.2.17间接
crates.iogetrandom0.3.4间接
crates.iogetrandom0.4.2间接
crates.ioghash0.5.1间接
crates.iogherkin0.15.0间接
crates.ioglob0.3.3间接
crates.ioglobset0.4.18间接
crates.ioglobwalk0.9.1间接
crates.ioh20.4.13间接
crates.iohalf2.7.1间接
crates.iohashbrown0.12.3间接
crates.iohashbrown0.15.5间接
crates.iohashbrown0.16.1间接
crates.iohashbrown0.17.0间接
crates.iohashlink0.11.0间接
crates.ioheck0.5.0间接
crates.iohermit-abi0.5.2间接
crates.iohex0.4.3间接
crates.iohmac0.12.1间接
crates.iohmac0.13.0间接
crates.iohome0.5.12间接
crates.iohttp0.2.12间接
crates.iohttp1.4.0间接
crates.iohttp-body0.4.6间接
crates.iohttp-body1.0.1间接
crates.iohttp-body-util0.1.3间接
crates.iohttparse1.10.1间接
crates.iohttpdate1.0.3间接
crates.iohumantime2.3.0间接
crates.iohybrid-array0.4.10间接
crates.iohyper1.8.1间接
crates.iohyper1.9.0间接
crates.iohyper-named-pipe0.1.0间接
crates.iohyper-rustls0.27.7间接
crates.iohyper-rustls0.27.8间接
crates.iohyper-timeout0.5.2间接
crates.iohyper-util间接
crates.iohyper-util0.1.20间接
crates.iohyperlocal0.9.1间接
crates.ioiana-time-zone0.1.65间接
crates.ioiana-time-zone-haiku0.1.2间接
crates.ioicu_collections2.1.1间接
crates.ioicu_collections2.2.0间接
crates.ioicu_locale_core2.1.1间接
crates.ioicu_locale_core2.2.0间接
crates.ioicu_normalizer2.1.1间接
crates.ioicu_normalizer2.2.0间接
crates.ioicu_normalizer_data2.1.1间接
crates.ioicu_normalizer_data2.2.0间接
crates.ioicu_properties2.1.2间接
crates.ioicu_properties2.2.0间接
crates.ioicu_properties_data2.1.2间接
crates.ioicu_properties_data2.2.0间接
crates.ioicu_provider2.1.1间接
crates.ioicu_provider2.2.0间接
crates.ioid-arena2.3.0间接
crates.ioident_case1.0.1间接
crates.ioidna1.1.0间接
crates.ioidna_adapter1.2.1间接
crates.ioignore0.4.25间接
crates.ioindexmap1.9.3间接
crates.ioindexmap2.13.0间接
crates.ioindexmap2.14.0间接
crates.ioinflections1.1.1间接
crates.ioinout0.1.4间接
crates.ioinventory0.3.24间接
crates.ioio-enum1.2.1间接
crates.ioipnet2.12.0间接
crates.ioiri-string0.7.12间接
crates.iois-terminal0.4.17间接
crates.iois_terminal_polyfill1.70.2间接
crates.ioitertools0.10.5间接
crates.ioitertools0.14.0间接
crates.iojava-locator0.1.9间接
crates.iojiff0.2.23间接
crates.iojiff-static0.2.23间接
crates.iojni-macros0.22.4间接
crates.iojni-sys0.4.1间接
crates.iojni-sys-macros0.4.1间接
crates.iojobserver0.1.34间接
crates.iojs-sys0.3.91间接
crates.iojs-sys0.3.95间接
crates.ioleb128fmt0.1.0间接
crates.iolibfuzzer-sys0.4.12间接
crates.iolibloading间接
crates.iolibloading0.8.9间接
crates.iolibloading0.9.0间接
crates.iolibredox0.1.14间接
crates.iolibredox0.1.16间接
crates.iolibsqlite3-sys0.36.0间接
crates.iolibz-sys1.1.25间接
crates.iolibz-sys1.1.28间接
crates.iolinked-hash-map0.5.6间接
crates.iolinux-raw-sys0.12.1间接
crates.iolitemap0.8.1间接
crates.iolitemap0.8.2间接
crates.iolock_api0.4.14间接
crates.iolru-slab0.1.2间接
crates.iomatchit0.8.4间接
crates.iomd-50.10.6间接
crates.iomd-50.11.0间接
crates.iomemchr2.8.0间接
crates.iomime0.3.17间接
crates.iominiz_oxide0.8.9间接
crates.iomio1.1.1间接
crates.iomio1.2.0间接
crates.iomultimap0.10.1间接
crates.iomysql-common-derive0.32.1间接
crates.iomysql_common0.36.2间接
crates.ionamed_pipe0.4.1间接
crates.ionapi-build间接
crates.ionapi-build2.3.2间接
crates.ionapi-derive-backend5.0.4间接
crates.ionapi-sys3.2.1间接
crates.ionohash-hasher0.2.0间接
crates.ionom8.0.0间接
crates.ionom_locate5.0.0间接
crates.ionum0.4.3间接
crates.ionum-bigint0.4.6间接
crates.ionum-complex0.4.6间接
crates.ionum-conv0.2.0间接
crates.ionum-conv0.2.1间接
crates.ionum-integer0.1.46间接
crates.ionum-iter0.1.45间接
crates.ionum-rational0.4.2间接
crates.ionum-traits0.2.19间接
crates.ioobjc2-core-foundation0.3.2间接
crates.ioobjc2-system-configuration0.3.2间接
crates.ioonce_cell_polyfill1.70.2间接
crates.iooorandom11.1.5间接
crates.ioopaque-debug0.3.1间接
crates.ioopenssl-macros0.1.1间接
crates.ioopenssl-probe0.2.1间接
crates.ioopenssl-src300.5.5+3.5.5间接
crates.ioopenssl-src300.6.0+3.6.2间接
crates.ioopenssl-sys0.9.115间接
crates.ioopenssl-sys0.9.116间接
crates.iooutref0.5.2间接
crates.ioparking_lot_core0.9.12间接
crates.ioparse-display0.9.1间接
crates.ioparse-display-derive0.9.1间接
crates.iopeg0.6.3间接
crates.iopeg-macros0.6.3间接
crates.iopeg-runtime0.6.3间接
crates.iopem3.0.6间接
crates.iopetgraph0.8.3间接
crates.iophf0.13.1间接
crates.iophf_shared0.13.1间接
crates.iopin-project1.1.11间接
crates.iopin-project-internal1.1.11间接
crates.iopin-project-lite0.2.17间接
crates.iopin-utils0.1.0间接
crates.iopkg-config0.3.32间接
crates.iopkg-config0.3.33间接
crates.ioplain0.2.3间接
crates.ioplotters0.3.7间接
crates.ioplotters-backend0.3.7间接
crates.ioplotters-svg0.3.7间接
crates.iopolyval0.6.2间接
crates.ioportable-atomic1.13.1间接
crates.ioportable-atomic-util0.2.6间接
crates.iopostgres-protocol0.6.10间接
crates.iopostgres-protocol0.6.11间接
crates.iopostgres-types0.2.12间接
crates.iopostgres-types0.2.13间接
crates.iopotential_utf0.1.4间接
crates.iopotential_utf0.1.5间接
crates.iopowerfmt0.2.0间接
crates.ioppv-lite860.2.21间接
crates.ioprettyplease0.2.37间接
crates.ioproc-macro-crate3.5.0间接
crates.ioproc-macro-error-attr22.0.0间接
crates.ioproc-macro-error22.0.1间接
crates.ioproc-macro21.0.106间接
crates.ioproptest间接
crates.ioproptest1.11.0间接
crates.ioprost-build0.14.3间接
crates.ioprost-derive0.14.4间接
crates.ioprost-types0.14.3间接
crates.iopulldown-cmark0.13.3间接
crates.iopulldown-cmark-to-cmark22.0.0间接
crates.iopyo3-build-config0.29.0间接
crates.iopyo3-ffi0.29.0间接
crates.iopyo3-macros0.29.0间接
crates.iopyo3-macros-backend0.29.0间接
crates.ioquick-error1.2.3间接
crates.ioquinn0.11.9间接
crates.ioquinn-proto0.11.14间接
crates.ioquinn-udp0.5.14间接
crates.ioquote1.0.45间接
crates.ior-efi5.3.0间接
crates.ior-efi6.0.0间接
crates.iorand_core0.10.0间接
crates.iorand_core0.6.4间接
crates.iorand_core0.9.5间接
crates.iorand_xorshift0.4.0间接
crates.iorayon1.11.0间接
crates.iorayon-core1.13.0间接
crates.ioredox_syscall0.5.18间接
crates.ioredox_syscall0.7.4间接
crates.ioref-cast1.0.25间接
crates.ioref-cast-impl1.0.25间接
crates.ioregex1.12.3间接
crates.ioregex-automata0.4.14间接
crates.ioregex-lite0.1.9间接
crates.ioregex-syntax0.8.10间接
crates.iorsqlite-vfs0.1.0间接
crates.iorustc-hash2.1.2间接
crates.iorustc_version0.4.1间接
crates.iorustls0.23.37间接
crates.iorustls0.23.38间接
crates.iorustls-native-certs0.8.3间接
crates.iorustls-pki-types1.14.0间接
crates.iorustls-webpki0.103.13间接
crates.iorustversion1.0.22间接
crates.iorusty-fork0.3.1间接
crates.ioryu1.0.23间接
crates.iosaa5.6.0间接
crates.iosame-file1.0.6间接
crates.iosaturating0.1.0间接
crates.ioschannel0.1.29间接
crates.ioschemars0.9.0间接
crates.ioschemars1.2.1间接
crates.ioscopeguard1.2.0间接
crates.iosdd3.0.10间接
crates.iosdd4.8.6间接
crates.iosealed0.6.0间接
crates.iosecurity-framework3.7.0间接
crates.iosecurity-framework-sys2.17.0间接
crates.iosemver1.0.27间接
crates.iosemver1.0.28间接
crates.ioserde_core1.0.228间接
crates.ioserde_derive1.0.228间接
crates.ioserde_repr0.1.20间接
crates.ioserde_urlencoded0.7.1间接
crates.ioserde_with3.18.0间接
crates.ioserde_with_macros3.18.0间接
crates.ioserial_test间接
crates.ioserial_test3.5.0间接
crates.ioserial_test_derive3.5.0间接
crates.iosha10.10.6间接
crates.iosha20.10.9间接
crates.iosha20.11.0间接
crates.ioshlex1.3.0间接
crates.iosignal-hook-registry1.4.8间接
crates.iosimd-adler320.3.8间接
crates.iosimd-adler320.3.9间接
crates.iosimd_cesu81.1.1间接
crates.iosimdutf80.1.5间接
crates.iosiphasher1.0.2间接
crates.ioslab0.4.12间接
crates.iosmallvec1.15.1间接
crates.iosmart-default0.7.1间接
crates.iosmawk0.3.2间接
crates.iosocket20.6.3间接
crates.iosqlite-wasm-rs0.5.2间接
crates.iostable_deref_trait1.2.1间接
crates.iostringprep0.1.5间接
crates.iostrsim0.11.1间接
crates.iostructmeta0.3.0间接
crates.iostructmeta-derive0.3.0间接
crates.iosyn2.0.117间接
crates.iosync_wrapper1.0.2间接
crates.iosynstructure0.13.2间接
crates.iosynthez0.4.0间接
crates.iosynthez-codegen0.4.0间接
crates.iosynthez-core0.4.0间接
crates.iotarget-lexicon0.13.5间接
crates.iotempfile间接
crates.iotempfile3.27.0间接
crates.iotermcolor1.4.1间接
crates.ioterminal_size0.4.4间接
crates.iotestcontainers间接
crates.iotestcontainers0.27.3间接
crates.iotestcontainers-modules间接
crates.iotestcontainers-modules0.15.0间接
crates.iotextwrap0.16.2间接
crates.iothiserror2.0.18间接
crates.iothiserror-impl2.0.18间接
crates.iotime0.3.47间接
crates.iotime-core0.1.8间接
crates.iotime-macros0.2.27间接
crates.iotinystr0.8.2间接
crates.iotinystr0.8.3间接
crates.iotinytemplate1.2.1间接
crates.iotinyvec1.10.0间接
crates.iotinyvec1.11.0间接
crates.iotinyvec_macros0.1.1间接
crates.iotokio-macros2.6.1间接
crates.iotokio-macros2.7.0间接
crates.iotokio-native-tls0.3.1间接
crates.iotokio-postgres0.7.16间接
crates.iotokio-postgres0.7.17间接
crates.iotokio-rustls0.26.4间接
crates.iotokio-util0.7.18间接
crates.iotoml_datetime1.0.0+spec-1.1.0间接
crates.iotoml_datetime1.1.1+spec-1.1.0间接
crates.iotoml_edit0.25.11+spec-1.1.0间接
crates.iotoml_edit0.25.4+spec-1.1.0间接
crates.iotoml_parser1.0.9+spec-1.1.0间接
crates.iotoml_parser1.1.2+spec-1.1.0间接
crates.iotonic-build0.14.6间接
crates.iotonic-prost-build间接
crates.iotonic-prost-build0.14.6间接
crates.iotower间接
crates.iotower0.5.3间接
crates.iotower-http0.6.8间接
crates.iotower-layer0.3.3间接
crates.iotower-service0.3.3间接
crates.iotracing0.1.44间接
crates.iotracing-attributes0.1.31间接
crates.iotracing-core0.1.36间接
crates.iotry-lock0.2.5间接
crates.iotwox-hash2.1.2间接
crates.iotyped-builder0.23.2间接
crates.iotyped-builder-macro0.23.2间接
crates.iotypenum1.19.0间接
crates.iounarray0.1.4间接
crates.iounicase2.9.0间接
crates.iounicode-bidi0.3.18间接
crates.iounicode-ident1.0.24间接
crates.iounicode-linebreak0.1.5间接
crates.iounicode-normalization0.1.25间接
crates.iounicode-properties0.1.4间接
crates.iounicode-segmentation1.13.2间接
crates.iounicode-width0.2.2间接
crates.iounicode-xid0.2.6间接
crates.iouniversal-hash0.5.1间接
crates.iountrusted0.9.0间接
crates.ioureq3.3.0间接
crates.ioureq-proto0.6.0间接
crates.iourl2.5.8间接
crates.iourlencoding2.1.3间接
crates.ioutf8-zero0.8.1间接
crates.ioutf8_iter1.0.4间接
crates.ioutf8parse0.2.2间接
crates.iouuid1.22.0间接
crates.iouuid1.23.0间接
crates.iovcpkg0.2.15间接
crates.ioversion_check0.9.5间接
crates.iovsimd0.8.0间接
crates.iowait-timeout0.2.1间接
crates.iowalkdir2.5.0间接
crates.iowant0.3.1间接
crates.iowasi0.11.1+wasi-snapshot-preview1间接
crates.iowasi0.14.7+wasi-0.2.4间接
crates.iowasip21.0.2+wasi-0.2.9间接
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06间接
crates.iowasite1.0.2间接
crates.iowasm-bindgen0.2.114间接
crates.iowasm-bindgen0.2.118间接
crates.iowasm-bindgen-futures0.4.68间接
crates.iowasm-bindgen-macro0.2.114间接
crates.iowasm-bindgen-macro0.2.118间接
crates.iowasm-bindgen-macro-support0.2.114间接
crates.iowasm-bindgen-macro-support0.2.118间接
crates.iowasm-bindgen-shared0.2.114间接
crates.iowasm-bindgen-shared0.2.118间接
crates.iowasm-encoder0.244.0间接
crates.iowasm-metadata0.244.0间接
crates.iowasmparser0.244.0间接
crates.ioweb-sys0.3.91间接
crates.ioweb-sys0.3.95间接
crates.ioweb-time1.1.0间接
crates.iowebpki-roots1.0.6间接
crates.iowhich间接
crates.iowhich8.0.3间接
crates.iowhoami2.1.1间接
crates.iowinapi0.3.9间接
crates.iowinapi-i686-pc-windows-gnu0.4.0间接
crates.iowinapi-util0.1.11间接
crates.iowinapi-x86_64-pc-windows-gnu0.4.0间接
crates.iowindows0.58.0间接
crates.iowindows-core0.58.0间接
crates.iowindows-core0.62.2间接
crates.iowindows-implement0.58.0间接
crates.iowindows-implement0.60.2间接
crates.iowindows-interface0.58.0间接
crates.iowindows-interface0.59.3间接
crates.iowindows-link0.2.1间接
crates.iowindows-result0.2.0间接
crates.iowindows-result0.4.1间接
crates.iowindows-strings0.1.0间接
crates.iowindows-strings0.5.1间接
crates.iowindows-targets0.52.6间接
crates.iowindows_aarch64_gnullvm0.52.6间接
crates.iowindows_aarch64_msvc0.52.6间接
crates.iowindows_i686_gnu0.52.6间接
crates.iowindows_i686_gnullvm0.52.6间接
crates.iowindows_i686_msvc0.52.6间接
crates.iowindows_x86_64_gnu0.52.6间接
crates.iowindows_x86_64_gnullvm0.52.6间接
crates.iowindows_x86_64_msvc0.52.6间接
crates.iowinnow0.7.15间接
crates.iowinnow1.0.1间接
crates.iowit-bindgen0.51.0间接
crates.iowit-bindgen-core0.51.0间接
crates.iowit-bindgen-rust0.51.0间接
crates.iowit-bindgen-rust-macro0.51.0间接
crates.iowit-component0.244.0间接
crates.iowit-parser0.244.0间接
crates.iowriteable0.6.2间接
crates.iowriteable0.6.3间接
crates.ioxattr1.6.1间接
crates.ioxmlparser0.13.6间接
crates.ioyoke0.8.1间接
crates.ioyoke0.8.2间接
crates.ioyoke-derive0.8.1间接
crates.ioyoke-derive0.8.2间接
crates.iozerocopy0.8.42间接
crates.iozerocopy0.8.48间接
crates.iozerocopy-derive0.8.42间接
crates.iozerocopy-derive0.8.48间接
crates.iozerofrom0.1.6间接
crates.iozerofrom0.1.7间接
crates.iozerofrom-derive0.1.6间接
crates.iozerofrom-derive0.1.7间接
crates.iozeroize_derive1.4.3间接
crates.iozerotrie0.2.3间接
crates.iozerotrie0.2.4间接
crates.iozerovec0.11.5间接
crates.iozerovec0.11.6间接
crates.iozerovec-derive0.11.2间接
crates.iozerovec-derive0.11.3间接
crates.iozmij1.0.21间接
Gogithub.com/awnumar/memcallv0.1.2间接
Gogithub.com/awnumar/memcallv0.4.0间接
Gogithub.com/awnumar/memguardv0.22.3间接
Gogithub.com/awnumar/memguardv0.22.5间接
Gogithub.com/aws/aws-sdk-gov1.44.265间接
Gogithub.com/aws/aws-sdk-gov1.55.8间接
Gogithub.com/goburrow/cachev0.1.4间接
Gogithub.com/godaddy/asherah/go/appencryptionv0.3.0间接
Gogithub.com/godaddy/asherah/go/appencryptionv0.9.0间接
Gogithub.com/godaddy/asherah/go/securememoryv0.1.4间接
Gogithub.com/godaddy/asherah/go/securememoryv0.1.7间接
Gogithub.com/jmespath/go-jmespathv0.4.0间接
Gogithub.com/pkg/errorsv0.9.1间接
Gogithub.com/rcrowley/go-metricsv0.0.0-20201227073835-cf1acfcdf475间接
Gogolang.org/x/cryptov0.45.0间接
Gogolang.org/x/cryptov0.48.0间接
Gogolang.org/x/netv0.48.0间接
Gogolang.org/x/sysv0.38.0间接
Gogolang.org/x/sysv0.39.0间接
Gogolang.org/x/sysv0.42.0间接
Gogolang.org/x/textv0.32.0间接
Gogoogle.golang.org/genproto/googleapis/rpcv0.0.0-20251202230838-ff82c1b0f217间接
Gogoogle.golang.org/grpcv1.79.3间接
Gogoogle.golang.org/protobufv1.36.11间接
Mavencom.godaddy.asherah:appencryption间接
Mavencom.godaddy.asherah:appencryption0.3.3间接
Mavencom.godaddy.asherah:appencryption0.4.0间接
Mavenio.micrometer:micrometer-core1.17.0间接
Mavenorg.apache.maven.plugins:maven-compiler-plugin3.15.0间接
Mavenorg.apache.maven.plugins:maven-gpg-plugin3.2.8间接
Mavenorg.apache.maven.plugins:maven-javadoc-plugin3.12.0间接
Mavenorg.apache.maven.plugins:maven-shade-plugin3.6.0间接
Mavenorg.apache.maven.plugins:maven-source-plugin3.4.0间接
Mavenorg.apache.maven.plugins:maven-surefire-plugin3.5.6间接
Mavenorg.codehaus.mojo:exec-maven-plugin3.6.3间接
Mavenorg.json:json20240303间接
Mavenorg.junit.jupiter:junit-jupiter5.14.4间接
Mavenorg.openjdk.jmh:jmh-core1.37间接
Mavenorg.openjdk.jmh:jmh-generator-annprocess1.37间接
Mavenorg.slf4j:slf4j-api2.0.18间接
Mavenorg.slf4j:slf4j-simple2.0.18间接
Mavenorg.slf4j:slf4j-simple2.0.7间接
Mavenorg.sonatype.central:central-publishing-maven-plugin0.10.0间接
npm../asherah-node0.1.0间接
npm@napi-rs/cli2.18.4间接
npmnode-addon-api8.5.0间接
npmnode-addon-api8.6.0间接
npmtinybench6.0.0间接
NuGetBenchmarkDotNet0.15.8间接
NuGetGoDaddy.Asherah.AppEncryption0.11.0间接
NuGetGoDaddy.Asherah.AppEncryption0.2.10间接
NuGetGoDaddy.Asherah.SecureMemory0.5.0间接
NuGetMicrosoft.Extensions.Logging10.0.7间接
NuGetMicrosoft.Extensions.Logging.Abstractions间接
NuGetNewtonsoft.Json间接
Packagistext-ffi间接
Packagistext-json间接
Packagistfriendsofphp/php-cs-fixer间接
Packagistphp间接
Packagistphpstan/phpstan间接
Packagistphpunit/phpunit间接
RubyGemsffi间接
RubyGemslogger间接
RubyGemsminitest5.27.0间接
RubyGemsrake13.4.2间接
依赖安全公告 23

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 708 个包,其中也包含从不交付的开发与测试版本固定:23 个存在已知公告,4 个为直接依赖。 有 76 个无法评估——没有已解析的版本、生态系统不受支持,或不在所列包清单之内。

软件包版本关系严重程度公告数修复版本
golang.org/x/cryptov0.45.0间接严重270.52.0
golang.org/x/cryptov0.48.0间接严重270.52.0
google.golang.org/grpcv1.79.3间接严重11.82.1
openssl0.10.78直接30.10.80
postgres-protocol0.6.10间接20.6.12
postgres-protocol0.6.11间接20.6.12
quinn-proto0.11.14间接20.11.15
cmov0.5.3间接10.5.4
golang.org/x/netv0.48.0间接91.26.3
serde_with3.18.0间接13.21.0
tokio-postgres0.7.16间接10.7.18
tokio-postgres0.7.17间接10.7.18
anyhow1.0.102直接未知11.0.103
scc2.4.0直接未知13.8.4
scc3.7.2直接未知13.8.4
crossbeam-epoch0.9.18间接未知10.9.20
github.com/aws/aws-sdk-gov1.44.265间接未知2
github.com/aws/aws-sdk-gov1.55.8间接未知2
golang.org/x/sysv0.38.0间接未知10.44.0
golang.org/x/sysv0.39.0间接未知10.44.0
golang.org/x/sysv0.42.0间接未知10.44.0
golang.org/x/textv0.32.0间接未知10.39.0
proc-macro-error22.0.1间接未知1

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "cryptography",
        "dotnet",
        "encryption",
        "envelope-encryption",
        "ffi",
        "go",
        "java",
        "key-rotation",
        "nodejs",
        "python",
        "ruby",
        "rust",
        "security"
      ],
      "is_fork": false,
      "size_kb": 49344,
      "has_wiki": false,
      "homepage": "https://github.com/godaddy/asherah-ffi",
      "languages": {
        "C": 103,
        "C#": 291295,
        "Go": 141534,
        "PHP": 133757,
        "Java": 190515,
        "Ruby": 97020,
        "Rust": 1775560,
        "Shell": 133459,
        "Python": 104338,
        "Gherkin": 2033,
        "Dockerfile": 4380,
        "JavaScript": 128261
      },
      "pushed_at": "2026-07-21T02:51:43Z",
      "created_at": "2025-09-30T18:32:43Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-16T09:32:26Z",
      "description": "Application-layer envelope encryption with automatic key rotation. Rust core with bindings for Node.js, Python, .NET, Java, Ruby, and Go.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Rust",
      "significant_languages": [
        "Rust"
      ]
    },
    "owner": {
      "blog": "https://godaddy.com/engineering/",
      "name": "GoDaddy",
      "type": "Organization",
      "login": "godaddy",
      "company": null,
      "location": "United States of America",
      "followers": 228,
      "avatar_url": "https://avatars.githubusercontent.com/u/1406546?v=4",
      "created_at": "2012-02-03T20:15:04Z",
      "is_verified": null,
      "public_repos": 215,
      "account_age_days": 5287
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2026-06-19T20:17:42Z"
        },
        {
          "tag": "v0.6.115",
          "kind": "patch",
          "published_at": "2026-06-10T10:57:46Z"
        },
        {
          "tag": "v0.6.114",
          "kind": "patch",
          "published_at": "2026-06-10T10:55:04Z"
        },
        {
          "tag": "v0.6.113",
          "kind": "patch",
          "published_at": "2026-06-10T04:58:46Z"
        },
        {
          "tag": "v0.6.112",
          "kind": "patch",
          "published_at": "2026-06-09T14:56:21Z"
        },
        {
          "tag": "v0.6.111",
          "kind": "patch",
          "published_at": "2026-06-09T03:40:48Z"
        },
        {
          "tag": "v0.6.110",
          "kind": "patch",
          "published_at": "2026-06-05T17:41:12Z"
        },
        {
          "tag": "v0.6.109",
          "kind": "patch",
          "published_at": "2026-06-05T14:18:05Z"
        },
        {
          "tag": "v0.6.108",
          "kind": "patch",
          "published_at": "2026-06-03T08:59:01Z"
        },
        {
          "tag": "v0.6.107",
          "kind": "patch",
          "published_at": "2026-05-21T21:43:07Z"
        },
        {
          "tag": "v0.6.106",
          "kind": "patch",
          "published_at": "2026-05-21T05:48:47Z"
        },
        {
          "tag": "v0.6.105",
          "kind": "patch",
          "published_at": "2026-05-14T15:53:42Z"
        },
        {
          "tag": "v0.6.104",
          "kind": "patch",
          "published_at": "2026-05-14T14:43:35Z"
        },
        {
          "tag": "v0.6.103",
          "kind": "patch",
          "published_at": "2026-05-14T01:28:14Z"
        },
        {
          "tag": "v0.6.102",
          "kind": "patch",
          "published_at": "2026-05-13T22:37:51Z"
        },
        {
          "tag": "v0.6.101",
          "kind": "patch",
          "published_at": "2026-05-13T00:39:32Z"
        },
        {
          "tag": "v0.6.100",
          "kind": "patch",
          "published_at": "2026-05-12T23:23:35Z"
        },
        {
          "tag": "v0.6.99",
          "kind": "patch",
          "published_at": "2026-05-12T19:35:48Z"
        },
        {
          "tag": "v0.6.98",
          "kind": "patch",
          "published_at": "2026-05-09T22:58:44Z"
        },
        {
          "tag": "v0.6.97",
          "kind": "patch",
          "published_at": "2026-05-06T20:28:06Z"
        },
        {
          "tag": "v0.6.96",
          "kind": "patch",
          "published_at": "2026-05-01T16:02:15Z"
        },
        {
          "tag": "v0.6.95",
          "kind": "patch",
          "published_at": "2026-05-01T14:55:19Z"
        },
        {
          "tag": "v0.6.94",
          "kind": "patch",
          "published_at": "2026-05-01T13:25:43Z"
        },
        {
          "tag": "v0.6.93",
          "kind": "patch",
          "published_at": "2026-04-29T21:51:16Z"
        },
        {
          "tag": "v0.6.92",
          "kind": "patch",
          "published_at": "2026-04-29T01:47:21Z"
        },
        {
          "tag": "v0.6.91",
          "kind": "patch",
          "published_at": "2026-04-28T00:42:56Z"
        },
        {
          "tag": "v0.6.90",
          "kind": "patch",
          "published_at": "2026-04-10T16:34:24Z"
        },
        {
          "tag": "v0.6.89",
          "kind": "patch",
          "published_at": "2026-04-08T19:40:03Z"
        },
        {
          "tag": "v0.6.88",
          "kind": "patch",
          "published_at": "2026-04-08T01:04:23Z"
        },
        {
          "tag": "v0.6.87",
          "kind": "patch",
          "published_at": "2026-03-30T15:55:31Z"
        },
        {
          "tag": "v0.6.86",
          "kind": "patch",
          "published_at": "2026-03-30T12:24:11Z"
        },
        {
          "tag": "v0.6.85",
          "kind": "patch",
          "published_at": "2026-03-29T04:01:33Z"
        },
        {
          "tag": "v0.6.84",
          "kind": "patch",
          "published_at": "2026-03-29T02:30:18Z"
        },
        {
          "tag": "v0.6.83",
          "kind": "patch",
          "published_at": "2026-03-28T20:17:14Z"
        },
        {
          "tag": "v0.6.82",
          "kind": "patch",
          "published_at": "2026-03-28T19:29:53Z"
        },
        {
          "tag": "v0.6.81",
          "kind": "patch",
          "published_at": "2026-03-28T19:28:31Z"
        },
        {
          "tag": "v0.6.80",
          "kind": "patch",
          "published_at": "2026-03-28T18:12:09Z"
        },
        {
          "tag": "v0.6.79",
          "kind": "patch",
          "published_at": "2026-03-28T17:08:21Z"
        },
        {
          "tag": "v0.6.78",
          "kind": "patch",
          "published_at": "2026-03-28T15:02:11Z"
        },
        {
          "tag": "v0.6.77",
          "kind": "patch",
          "published_at": "2026-03-28T14:19:45Z"
        },
        {
          "tag": "v0.6.76",
          "kind": "patch",
          "published_at": "2026-03-28T12:11:47Z"
        },
        {
          "tag": "v0.6.75",
          "kind": "patch",
          "published_at": "2026-03-27T17:20:42Z"
        },
        {
          "tag": "v0.6.74",
          "kind": "patch",
          "published_at": "2026-03-27T15:39:07Z"
        },
        {
          "tag": "v0.6.73",
          "kind": "patch",
          "published_at": "2026-03-27T12:46:06Z"
        },
        {
          "tag": "v0.6.72",
          "kind": "patch",
          "published_at": "2026-03-27T10:45:03Z"
        },
        {
          "tag": "v0.6.71",
          "kind": "patch",
          "published_at": "2026-03-27T02:27:52Z"
        },
        {
          "tag": "v0.6.70",
          "kind": "patch",
          "published_at": "2026-03-26T21:29:53Z"
        },
        {
          "tag": "v0.6.69",
          "kind": "patch",
          "published_at": "2026-03-26T18:19:17Z"
        },
        {
          "tag": "v0.6.68",
          "kind": "patch",
          "published_at": "2026-03-26T15:56:41Z"
        },
        {
          "tag": "v0.6.67",
          "kind": "patch",
          "published_at": "2026-03-26T13:14:32Z"
        },
        {
          "tag": "v0.6.66",
          "kind": "patch",
          "published_at": "2026-03-25T17:02:56Z"
        },
        {
          "tag": "v0.6.65",
          "kind": "patch",
          "published_at": "2026-03-25T15:59:27Z"
        },
        {
          "tag": "v0.6.64",
          "kind": "patch",
          "published_at": "2026-03-25T10:46:46Z"
        },
        {
          "tag": "v0.6.63",
          "kind": "patch",
          "published_at": "2026-03-25T02:39:38Z"
        },
        {
          "tag": "v0.6.62",
          "kind": "patch",
          "published_at": "2026-03-24T23:41:03Z"
        },
        {
          "tag": "v0.6.61",
          "kind": "patch",
          "published_at": "2026-03-24T21:20:45Z"
        },
        {
          "tag": "v0.6.60",
          "kind": "patch",
          "published_at": "2026-03-24T19:58:19Z"
        },
        {
          "tag": "v0.6.59",
          "kind": "patch",
          "published_at": "2026-03-24T18:29:42Z"
        },
        {
          "tag": "v0.6.58",
          "kind": "patch",
          "published_at": "2026-03-24T16:18:03Z"
        },
        {
          "tag": "v0.6.57",
          "kind": "patch",
          "published_at": "2026-03-24T14:35:00Z"
        },
        {
          "tag": "v0.6.56",
          "kind": "patch",
          "published_at": "2026-03-24T13:11:07Z"
        },
        {
          "tag": "v0.6.55",
          "kind": "patch",
          "published_at": "2026-03-24T12:55:24Z"
        },
        {
          "tag": "v0.6.54",
          "kind": "patch",
          "published_at": "2026-03-24T12:53:34Z"
        },
        {
          "tag": "v0.6.53",
          "kind": "patch",
          "published_at": "2026-03-24T11:51:24Z"
        },
        {
          "tag": "v0.6.52",
          "kind": "patch",
          "published_at": "2026-03-24T11:39:30Z"
        },
        {
          "tag": "v0.6.51",
          "kind": "patch",
          "published_at": "2026-03-24T05:33:01Z"
        },
        {
          "tag": "v0.6.50",
          "kind": "patch",
          "published_at": "2026-03-24T05:02:12Z"
        },
        {
          "tag": "v0.6.49",
          "kind": "patch",
          "published_at": "2026-03-24T02:43:27Z"
        },
        {
          "tag": "v0.6.48",
          "kind": "patch",
          "published_at": "2026-03-24T01:30:22Z"
        },
        {
          "tag": "v0.6.47",
          "kind": "patch",
          "published_at": "2026-03-24T00:43:45Z"
        },
        {
          "tag": "v0.6.46",
          "kind": "patch",
          "published_at": "2026-03-23T19:38:08Z"
        },
        {
          "tag": "v0.6.45",
          "kind": "patch",
          "published_at": "2026-03-23T05:39:00Z"
        },
        {
          "tag": "v0.6.44",
          "kind": "patch",
          "published_at": "2026-03-19T16:24:56Z"
        },
        {
          "tag": "v0.6.43",
          "kind": "patch",
          "published_at": "2026-03-19T15:36:04Z"
        },
        {
          "tag": "v0.6.42",
          "kind": "patch",
          "published_at": "2026-03-19T13:20:13Z"
        },
        {
          "tag": "v0.6.41",
          "kind": "patch",
          "published_at": "2026-03-19T12:40:45Z"
        },
        {
          "tag": "v0.6.40",
          "kind": "patch",
          "published_at": "2026-03-18T16:02:58Z"
        },
        {
          "tag": "v0.6.39",
          "kind": "patch",
          "published_at": "2026-03-17T21:15:31Z"
        },
        {
          "tag": "v0.6.38",
          "kind": "patch",
          "published_at": "2026-03-17T20:24:47Z"
        },
        {
          "tag": "v0.6.37",
          "kind": "patch",
          "published_at": "2026-03-17T19:23:23Z"
        },
        {
          "tag": "v0.6.36",
          "kind": "patch",
          "published_at": "2026-03-17T19:16:15Z"
        },
        {
          "tag": "v0.6.35",
          "kind": "patch",
          "published_at": "2026-03-17T19:02:28Z"
        },
        {
          "tag": "v0.6.34",
          "kind": "patch",
          "published_at": "2026-03-17T18:57:32Z"
        },
        {
          "tag": "v0.6.33",
          "kind": "patch",
          "published_at": "2026-03-17T17:54:54Z"
        },
        {
          "tag": "v0.6.32",
          "kind": "patch",
          "published_at": "2026-03-15T17:35:51Z"
        },
        {
          "tag": "v0.6.31",
          "kind": "patch",
          "published_at": "2026-03-15T16:42:59Z"
        },
        {
          "tag": "v0.6.30",
          "kind": "patch",
          "published_at": "2026-03-15T14:39:58Z"
        },
        {
          "tag": "v0.6.29",
          "kind": "patch",
          "published_at": "2026-03-14T13:49:06Z"
        },
        {
          "tag": "v0.6.28",
          "kind": "patch",
          "published_at": "2026-03-14T01:41:30Z"
        },
        {
          "tag": "v0.6.27",
          "kind": "patch",
          "published_at": "2026-03-13T20:15:50Z"
        },
        {
          "tag": "v0.6.26",
          "kind": "patch",
          "published_at": "2026-03-13T18:20:43Z"
        },
        {
          "tag": "v0.6.25",
          "kind": "patch",
          "published_at": "2026-03-13T17:02:46Z"
        },
        {
          "tag": "v0.6.24",
          "kind": "patch",
          "published_at": "2026-03-13T12:01:57Z"
        },
        {
          "tag": "v0.6.23",
          "kind": "patch",
          "published_at": "2026-03-13T04:18:13Z"
        },
        {
          "tag": "v0.6.22",
          "kind": "patch",
          "published_at": "2026-03-13T04:12:47Z"
        },
        {
          "tag": "v0.6.21",
          "kind": "patch",
          "published_at": "2026-03-13T03:04:21Z"
        },
        {
          "tag": "v0.6.20",
          "kind": "patch",
          "published_at": "2026-03-13T01:32:56Z"
        },
        {
          "tag": "v0.6.19",
          "kind": "patch",
          "published_at": "2026-03-13T00:31:55Z"
        },
        {
          "tag": "v0.6.18",
          "kind": "patch",
          "published_at": "2026-03-13T00:25:44Z"
        },
        {
          "tag": "v0.6.17",
          "kind": "patch",
          "published_at": "2026-03-12T22:42:33Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "07a27b18afa522b7436d2cc35a85055e7333dc27",
          "body": "fix(dotnet): match AsherahBuffer C# struct to Rust ABI (3 fields, not 2)",
          "is_bot": false,
          "headline": "Merge pull request #352 from chief-micco/issue-349-nre-under-load",
          "author_name": "Micco",
          "author_login": "chief-micco",
          "committed_at": "2026-07-16T09:32:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "787fe34549f2a5bd078bb77ff4bbd61efcc104b7",
          "body": "Convert blocking Task.WaitAll to async Task.WhenAll and pass\nCancellationToken to Task.Run, Barrier.SignalAndWait, and Task.Delay.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): resolve xUnit1031 and xUnit1051 analyzer warnings in tests",
          "author_name": "chief-micco",
          "author_login": "chief-micco",
          "committed_at": "2026-07-10T14:34:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "856c9a18280a5a5fed3b6b1d237b541d73b4eaa4",
          "body": "The C# `AsherahBuffer` struct declared only `data` and `len` (16 bytes on\n64-bit) while the Rust `#[repr(C)] struct AsherahBuffer` writes three\npointer-sized fields — `data`, `len`, `capacity` (24 bytes). Every\n`asherah_encrypt_to_json` / `asherah_decrypt_from_json` call therefore\noverflowed the cal\n[…]\nMultiThreadedSessionCacheTests` adds supplementary load coverage\n(concurrent GetSession + DecryptBytes) with short session/IK TTLs.\n\nFixes #349\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): match AsherahBuffer C# struct to Rust ABI (3 fields, not 2)",
          "author_name": "chief-micco",
          "author_login": "chief-micco",
          "committed_at": "2026-07-03T07:26:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6f8b8a3c31cfbc6d4f962968e8fd3f3c9b2dcd4e",
          "body": "GitHub Actions (bumped to latest, SHA-pinned):\n- actions/cache v5.0.5 → v6.0.0\n- actions/checkout v6.0.3 → v7.0.0\n- actions/setup-go v6.4.0 → v6.5.0\n- actions/setup-java v5.2.0 → v5.3.0\n- actions/setup-python v6.2.0 → v6.3.0\n- softprops/action-gh-release v3.0.0 → v3.0.1\n- ruby/setup-ruby v1.312.0 → \n[…]\n=1.9.4 (was unversioned pip install, now matches CI)\n\nRuby:\n- Pin minitest to 5.27.0 and rake to 13.4.2 in Gemfile (were ~> ranges)\n- Pin bundler:2.6.9 in scripts/test.sh (was unversioned gem install)",
          "is_bot": false,
          "headline": "ci: pin all unpinned dependency references (#348)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-24T13:22:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f1fef020ac6f6ede8b060d7f7d603113301ef739",
          "body": "…in (#344)\n\n* feat(asherah): default AES-256-GCM to hardware-rust-crypto, ring opt-in\n\nMake hardware-rust-crypto the default AEAD backend and gate ring behind an\nopt-in `ring-crypto` feature.\n\n- New mutually-exclusive features: `hardware-crypto` (default) and\n  `ring-crypto`; both backend deps are o\n[…]\n asherah's sanitizer job\nlikewise runs on x86_64.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(asherah): default AES-256-GCM to hardware-rust-crypto, ring opt-…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy",
          "committed_at": "2026-06-20T18:05:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d4d5390d827255135f6f4259d33c72f5d78aee2d",
          "body": "Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.28.3 to 0.29.0.\n- [Release notes](https://github.com/pyo3/pyo3/releases)\n- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/pyo3/pyo3/compare/v0.28.3...v0.29.0)\n\n---\nupdated-dependencies:\n- dependency-na\n[…]\nndency-version: 0.29.0\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump pyo3 from 0.28.3 to 0.29.0 (#338)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-20T03:20:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af07fd16cdb790ca294928a748157d5e23c4b6e8",
          "body": "* Release 1.0.0: bump asherah crates + Python/Java bindings to 1.0.0\n\nBumps to 1.0.0:\n- the crates.io publish set: asherah, asherah-config, asherah-cobhan, asherah-ffi\n- the Python and Java binding crates: asherah-py, asherah-java\n\nLeft on their own independent version tracks (published from this mo\n[…]\nlready set, so it is never a crates.io artifact).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Release 1.0.0 (#341)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy",
          "committed_at": "2026-06-19T20:17:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c1a545b727c556c66154949a2ce90f1eac353669",
          "body": "* fix(core): make key schedule caching optional\n\n* fix(memory): use guarded hardware-enclave slab\n\n* fix(init): harden process before factory setup\n\n* fix(security): warn on CPU side-channel exposure\n\n* Harden FFI and binding security boundaries (#336)\n\n* fix(security): harden FFI and binding bounda\n[…]\ne hardening branch\n\n* Fix review and binding CI regressions\n\n* Move drift guard override logs out of sensitive paths\n\n* Fix sanitizer Miri hardening tests\n\n* Clamp key timestamp precision in factories",
          "is_bot": false,
          "headline": "Harden cache secret residency and CPU side-channel posture (#335)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-12T04:06:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d9ae650ca0bc0264b174afc9a386ab4a800aba13",
          "body": "…tes (#328)\n\nBumps the rust-minor group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [log](https://github.com/rust-lang/log) | `0.4.30` | `0.4.32` |\n| scc | `3.7.1` | `3.7.2` |\n| [hardware-enclave](https://github.com/godaddy/hardware-enclave) | `0.2.0` | `0.2.8` \n[…]\n version-update:semver-patch\n  dependency-group: rust-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the rust-minor group across 1 directory with 6 upda…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T10:56:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "21d32386d07541b03fd525392cd492738b9a8d25",
          "body": "… (#326)\n\nBumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.16.5 to 1.17.0.\n- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)\n- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.16.5...v1.17.0)\n\n---\nupdated-d\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump io.micrometer:micrometer-core in /asherah-java/java…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T10:56:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "21474da4d683f5b53edb30294d11ef51cb28ef1c",
          "body": "Bumps [github.com/ebitengine/purego](https://github.com/ebitengine/purego) from 0.10.0 to 0.10.1.\n- [Release notes](https://github.com/ebitengine/purego/releases)\n- [Commits](https://github.com/ebitengine/purego/compare/v0.10.0...v0.10.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/ebit\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github.com/ebitengine/purego in /asherah-go (#317)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T10:56:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a70e0fd79e9d07acdf4b80bdbe62186506b0e716",
          "body": "…(#316)\n\nBumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.5 to 3.5.6.\n- [Release notes](https://github.com/apache/maven-surefire/releases)\n- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.5...surefire-3.5.6)\n\n---\nupdat\n[…]\nrect:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump org.apache.maven.plugins:maven-surefire-plugin …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-10T10:56:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "280d81777f1e975adbd98dbd03a8e6d20b132504",
          "body": null,
          "is_bot": false,
          "headline": "Fix ruby version when bundling from git (#334)",
          "author_name": "Dalibor Nasevic",
          "author_login": "dnasevic-godaddy",
          "committed_at": "2026-06-10T10:52:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56fdc507ff32f88f058ba0e4764af02409128b21",
          "body": null,
          "is_bot": false,
          "headline": "Promote .NET packages out of beta (and other chores) (#333)",
          "author_name": "Micco",
          "author_login": "chief-micco",
          "committed_at": "2026-06-10T04:56:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e260118acc3177f5196c4553dd726fb73b473de3",
          "body": "The v0.6.112 release had 5 jobs fail on transient GitHub Actions\ninfrastructure (runner reclamation / 'received a shutdown signal',\ncache-export 'not_found') — not on code. PyPI/Server/PHP failed while\nnpm/crates/cobhan/rubygems/nuget/maven succeeded; manual re-runs then fixed\nall 5 with no code cha\n[…]\nsh-dry-run-* jobs only build (never push), so the\npush-step wrappers need no ci.yml change; the only shared surface\n(download-musl-openssl.sh) is edited in place so publish + dry-run stay in\nlockstep.",
          "is_bot": false,
          "headline": "ci: add retry + auto-rerun resilience to the release pipeline (#332)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-09T18:02:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c713ebe1e6cfde90a7f4c052bc6060f014560fd6",
          "body": "T5 (#257) wrapped every sync encrypt/decrypt in py.detach to release the\nGIL across the native call, reasoning that a cache miss can block on the\nmetastore/KMS. But the warm path is a sub-microsecond in-memory AEAD op,\nand releasing+reacquiring the GIL around it collapses multi-threaded\nthroughput: \n[…]\ncrypt_bytes_async/\ndecrypt_bytes_async), which runs on the tokio runtime off the GIL.\n\nMirrors the Ruby fix (#330). Node needs no change — its T5 fix was\ndocs-only (sync path never released anything).",
          "is_bot": false,
          "headline": "fix(py): hold the GIL on sync encrypt/decrypt hot path (#331)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-09T14:55:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1032119f8c38b1f51f3da999a5196535005adf3a",
          "body": "…ression (#330)\n\n* Remove blocking: true from encrypt/decrypt FFI to fix performance regression\n\nThe GVL release/reacquire overhead of blocking: true dominates when\nencrypt/decrypt are sub-microsecond (warm key cache). Under multi-threaded\nruntime, this caused few times slower throughput vs the old \n[…]\nL, which is correct.\n\nComplements the sync encrypt/decrypt change on this branch.\n\n---------\n\nCo-authored-by: Dalibor Nasevic <dalibor.nasevic@gmail.com>\nCo-authored-by: Jay Gowdy <jgowdy@godaddy.com>",
          "is_bot": false,
          "headline": "Remove blocking: true from encrypt/decrypt FFI to fix performance reg…",
          "author_name": "Dalibor Nasevic",
          "author_login": "dnasevic-godaddy",
          "committed_at": "2026-06-09T14:45:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "807838e6cf4a1c67265bd3afbf7388f40a2b0ffa",
          "body": "Mark the four async KMS tests #[cfg_attr(miri, ignore)] — they exercise the tokio reactor / AWS config (FS), which Miri can't run under isolation, and contain no unsafe code. Restores the sanitizers job (red on main since #323). Also gate sanitizers on pull_request to main so regressions are caught pre-merge. Verified locally (all four Miri sub-commands exit 0) and on this PR (sanitizers green).",
          "is_bot": false,
          "headline": "Fix Miri sanitizers failure and gate sanitizers on PRs (#329)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-09T04:58:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b95ec35c481b1ae6a0cf8f22ac188169f4f102e",
          "body": "Recover decrypts that would fail because a row's intermediate-key id doesn't match the decrypting session's region suffix, instead of erroring. AES-GCM authenticates every attempt, so a wrong key can never yield wrong plaintext.\n\n- Gate accepts the bare-core IK id for suffixed sessions (rescues rows\n[…]\nvice/product isolation boundary.\n- Config: recovery_region_suffixes / RecoveryRegionSuffixes, self_heal_recovered_keys / SelfHealRecoveredKeys, RECOVERY_REGION_SUFFIXES / SELF_HEAL_RECOVERED_KEYS env.",
          "is_bot": false,
          "headline": "Best-effort cross-region decrypt recovery with self-heal (#325)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-09T02:54:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "159cb9d57df69c90067e0e199c708fad1268cf69",
          "body": "Bump the asherah crate to publish the AwsKms Drop fix (#323) to crates.io.\nThe Rust crate is published at its Cargo.toml version and skipped if that\nversion is already on crates.io, so 0.1.2 -> 0.1.3 is required for the fix\nto reach downstream Rust consumers. Dependent workspace crates use caret\nrequirements (^0.1.x) that already accept 0.1.3.",
          "is_bot": false,
          "headline": "release: asherah 0.1.3 (#324)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-05T17:40:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b876c4ae27de705ba7559531a90f617b6d90ee8",
          "body": "AwsKms::new_async always stores an owned Arc<Runtime>, and AwsKms had no\nDrop impl. Dropping a tokio Runtime performs a blocking shutdown of its\nworker/blocking pools, which panics with \"Cannot drop a runtime in a\ncontext where blocking is not allowed\" when it happens inside another\nruntime — exactl\n[…]\n a background thread via shutdown_background();\noutside a runtime the normal blocking drop is safe. Add a regression test\nthat builds AwsKms via new_async and drops it inside a #[tokio::test]\nruntime.",
          "is_bot": false,
          "headline": "fix(kms): shut down owned tokio runtime in background on drop (#323)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-05T16:48:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6a8f3c29ba55709131025950f18cc394f9ef025e",
          "body": "…#322)\n\ncreate_intermediate_key (sync + async) tried store-then-load_latest exactly\nonce. When expire_key_after_s is close to create_date_precision_s, a\nconcurrent first-encrypt burst can straddle the expiry boundary: a thread\nthat loses the store race then load_latest's an IK that has just expired,\n[…]\n2 in\npractice). Cold path only; the valid-IK hot path is unchanged.\n\nVerified: fmt, clippy -D warnings, scripts/test.sh --unit, and 40x stress of\nconcurrent_rotation_multiple_cycles all green locally.",
          "is_bot": false,
          "headline": "Fix flaky IK creation race under tight expiry (concurrent_rotation) (…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-05T15:38:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f570805ba1f5faab1f054f6c3656e7ccc2e920a2",
          "body": "* Fix CI to run all Ruby tests\n\n* Set Ruby version to 0.0.0.dev for git-sourced usage to clearly show it's a dev build\n\n* Publish to RubyGems\n\n* Remove unnecessary permissions\n\n* Install bundler in test.sh when missing\n\n* Enable bundler-cache in ruby/setup-ruby CI step for faster runs\n\n* Update inst\n[…]\nfore\nthe version bump on any real failure so a version is never silently skipped.\n\n---------\n\nCo-authored-by: Dalibor Nasevic <dalibor.nasevic@gmail.com>\nCo-authored-by: Jay Gowdy <jgowdy@godaddy.com>",
          "is_bot": false,
          "headline": "Run all Ruby tests in CI and publish to RubyGems (#321)",
          "author_name": "Dalibor Nasevic",
          "author_login": "dnasevic-godaddy",
          "committed_at": "2026-06-05T14:09:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "516fef33734618a4930486e2cd18ea44418931e5",
          "body": "Add blocking: true to asherah_set_log_hook, asherah_clear_log_hook,\nasherah_set_metrics_hook, and asherah_clear_metrics_hook FFI declarations.\n\nThese functions may drop the old AsyncLogSink/AsyncMetricsSink, whose Drop\nimpl joins the async dispatcher worker thread. That worker thread needs the\nGVL t\n[…]\ness.\n\nObserved as hooks_test.rb hanging after 5 tests (when teardown's\nclear_*_hook races with an in-flight callback on the worker thread).\n\nCo-authored-by: Dalibor Nasevic <dalibor.nasevic@gmail.com>",
          "is_bot": false,
          "headline": "Fix GVL deadlock in Ruby hook set/clear FFI calls (#320)",
          "author_name": "Dalibor Nasevic",
          "author_login": "dnasevic-godaddy",
          "committed_at": "2026-06-04T15:55:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "30a0e91d1eaedb8170de7a8ffed3a1ef4680e7cf",
          "body": "* Bump hardware-enclave to 0.2.0\n\n* ci: re-trigger after fmt fix",
          "is_bot": false,
          "headline": "Bump hardware-enclave to 0.2.0",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-03T19:05:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6c4f3805b20a793d754a2261f9eda31517f7aa3",
          "body": "* Replace asherah memguard/memcall with hardware-enclave memory primitives\n\nDeletes ~1900 lines of bespoke memory protection code that was ported\nto hardware-enclave v0.1.3, replacing it with a direct dependency on\nthe canonical implementation.\n\nDeleted (implementations now in hardware-enclave):\n- a\n[…]\nirtualLock/VirtualProtect are available in memory-only builds on Windows.\nTemporary [patch.crates-io] until 0.1.5 is published.\n\n* Remove [patch.crates-io]: hardware-enclave 0.1.5 is live on crates.io",
          "is_bot": false,
          "headline": "Replace asherah memguard/memcall with hardware-enclave memory primitives",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-03T08:26:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b096a8cac8da53f6afb76db4558092685b03a2d8",
          "body": "Previously publish-crates.yml only ran on a GitHub release or a manual\nworkflow_dispatch, so a merged version bump did not reach crates.io without a\nhuman trigger. Add a push:main trigger (paths-filtered to Cargo.toml / this\nworkflow) and make publishing idempotent: each crate is published only when\n[…]\ne or more crates publishes exactly those. release and\nworkflow_dispatch (with the dry-run input) remain as alternative triggers.\ncargo publish stays the ultimate guard against an accidental overwrite.",
          "is_bot": false,
          "headline": "ci: auto-publish crates on merge to main (idempotent) (#314)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-03T08:04:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "57de727d03ca246b904c461445b885a8af990d01",
          "body": "Bumps [astral-tokio-tar](https://github.com/astral-sh/tokio-tar) from 0.6.1 to 0.6.2.\n- [Release notes](https://github.com/astral-sh/tokio-tar/releases)\n- [Changelog](https://github.com/astral-sh/tokio-tar/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/astral-sh/tokio-tar/compare/v0.6.1...v0\n[…]\ntar\n  dependency-version: 0.6.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump astral-tokio-tar from 0.6.1 to 0.6.2 (#309)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-03T07:15:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "513ef9a1b174a24af568b9f22fc6c9e586ec1788",
          "body": "….1.1 (#312)\n\nVersion bump so the new async surface from #311 (MultiKms async overrides,\nPublicSession async store/load + the StorerAsync/LoaderAsync user traits) can\nbe published to crates.io. The three dependent crates are bumped in lockstep\nand their internal version requirements updated to 0.1.2/0.5.2 so the\npublish-crates workflow publishes all four cleanly (crates.io rejects\nre-publishing an unchanged version).\n\nNo code changes — versions and inter-crate requirements only.",
          "is_bot": false,
          "headline": "Release: asherah 0.1.2 (async API), config 0.1.2, cobhan 0.5.2, ffi 0…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-03T07:01:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e4e503c570a09a0385385fcfae615bb67103b34",
          "body": "…ync store/load) (#311)\n\n* Complete the async API surface for direct async-Rust consumption\n\nAsync (tokio) consumers — e.g. an axum server — must avoid the sync API,\nwhich bridges to the async AWS SDK via block_in_place(rt.block_on(..)): that\npanics on a current-thread runtime and blocks a worker th\n[…]\nc/load_async futures:\n  the surface exists for multi-threaded async servers, so the futures must\n  stay Send; this catches a non-Send-capture regression here instead of at\n  a downstream tokio::spawn.",
          "is_bot": false,
          "headline": "Complete the async API surface (MultiKms async overrides + session as…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-03T06:20:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3daff5d7c48f86859faca9bc64ebbb2a29ba8d3e",
          "body": "The Rust crates (asherah, asherah-config, asherah-ffi, asherah-cobhan)\nwere hand-published to crates.io on 2026-05-12. The repo had publish\nworkflows for npm/PyPI/NuGet/Maven/RubyGems but none for crates.io.\n\nThis adds .github/workflows/publish-crates.yml to automate future\nreleases, publishing the crates in dependency order:\nasherah -> asherah-config -> asherah-cobhan -> asherah-ffi.\n\nCo-authored-by: Jay Gowdy <jay@godaddy.com>",
          "is_bot": false,
          "headline": "Add crates.io publish workflow (#310)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-06-02T20:34:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7750684983c1fe2d5409f96f9bdebd109d9fb23a",
          "body": "…297)\n\nBumps org.slf4j:slf4j-simple from 2.0.17 to 2.0.18.\n\n---\nupdated-dependencies:\n- dependency-name: org.slf4j:slf4j-simple\n  dependency-version: 2.0.18\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump org.slf4j:slf4j-simple in /asherah-java/java (#…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-27T01:46:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "261bc05bf45ba5ea4b76b052a3f5260c2bd50f52",
          "body": "…tes (#308)\n\nBumps the rust-minor group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [serde_json](https://github.com/serde-rs/json) | `1.0.149` | `1.0.150` |\n| [log](https://github.com/rust-lang/log) | `0.4.29` | `0.4.30` |\n| scc | `3.7.0` | `3.7.1` |\n| [openssl]\n[…]\n version-update:semver-patch\n  dependency-group: rust-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the rust-minor group across 1 directory with 7 upda…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-27T01:27:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "460b2cca21a89fc0c5ff09b05e6db82ed6b8d114",
          "body": "… (#307)\n\nBumps the actions group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruby/setup-ruby](https://github.com/ruby/setup-ruby) | `1.307.0` | `1.310.0` |\n| [taiki-e/install-action](https://github.com/taiki-e/install-action) | `2.77.6` | `2.79.8` |\n| [docker/\n[…]\npe: version-update:semver-minor\n  dependency-group: actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the actions group across 1 directory with 6 updates…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-27T01:27:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e79ba784b38712040837952c22113ed83f85d1d7",
          "body": "Bumps org.slf4j:slf4j-api from 2.0.17 to 2.0.18.\n\n---\nupdated-dependencies:\n- dependency-name: org.slf4j:slf4j-api\n  dependency-version: 2.0.18\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump org.slf4j:slf4j-api in /asherah-java/java (#298)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-27T01:27:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af77ca8930460deed11774c440286cc11dee1f7f",
          "body": "* Add Ruby PHP and FFI foreign DRR tests\n\n* Clarify binding migration compatibility",
          "is_bot": false,
          "headline": "Clarify binding migration compatibility (#306)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-21T21:41:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47d188c963e0206c2acba5ec65863a7bf8de8cad",
          "body": null,
          "is_bot": false,
          "headline": "Add Ruby PHP and FFI foreign DRR tests (#305)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-21T05:45:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc99dc347a19482e49cb870c0102f173b266d86b",
          "body": null,
          "is_bot": false,
          "headline": "Add Node and Go foreign DRR session tests (#303)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-21T05:40:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90ccca1306fb2dd16b00f07d7b66af307d15b92e",
          "body": null,
          "is_bot": false,
          "headline": "Add Java and .NET foreign DRR session tests (#304)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-21T05:34:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30a8b1b88ed83628be0a8eea78cdafbff5736acb",
          "body": null,
          "is_bot": false,
          "headline": "Fix Python SessionFactory explicit config (#302)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-21T05:27:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc91be99f8fcd0ef1e6fc1b3cdf7c54af931e9f8",
          "body": null,
          "is_bot": false,
          "headline": "java: fallback native extraction dirs for SELinux/noexec (#296)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-14T15:53:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dba0068a7693a4787d04f04af701ce6ae299c49a",
          "body": null,
          "is_bot": false,
          "headline": "ci(maven): keep java publishes on 0.50.x track (#295)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-14T14:16:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b3a463296cd971167f1732e971110a9efdff362",
          "body": null,
          "is_bot": false,
          "headline": "docs(java): clarify compat vs jni API migration (#294)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-14T02:39:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce209a3d79659be08fe57350e5e85e538936c123",
          "body": null,
          "is_bot": false,
          "headline": "java: map compat JDBC pool settings to native config (#293)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-14T01:27:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "345023379caca4b3fd33b4c78bfea20e40b4c3be",
          "body": null,
          "is_bot": false,
          "headline": "ci: auto-create asherah-go release tag (#292)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-13T23:55:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ea56bbba8140e5dadcea9550afc7b643e57c26e",
          "body": null,
          "is_bot": false,
          "headline": "Align Java coordinates/docs and auto-publish Central on release (#291)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-13T22:35:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b5c9eadf5f8ec978dc82a2a6723751feda86e85",
          "body": "* Fix Maven Central credentials settings generation\n\n* Publish GPG key to keyservers before Central deploy\n\n* Add timeouts to keyserver publication step",
          "is_bot": false,
          "headline": "Fix Maven Central credential + keyserver handling (#290)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-13T21:56:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26019a55d3fa846bd51b5ce9334565962691d7c0",
          "body": null,
          "is_bot": false,
          "headline": "Configure Java publish for Maven Central namespace (#289)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-13T21:08:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d20d8272516b97da44df7bd4806408d632afce4a",
          "body": "chore: document crates.io publishing metadata",
          "is_bot": false,
          "headline": "Merge pull request #288 from godaddy/recover/published-crates-work",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-13T00:37:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56d6eb7a0ac32808d98ded1ff354137806ce6b24",
          "body": null,
          "is_bot": false,
          "headline": "chore: mark language binding crates private",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-13T00:01:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6eae904cc311fce3cd13700d142119be79e9d203",
          "body": null,
          "is_bot": false,
          "headline": "docs: trim published crates whitespace",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T23:57:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2852831eb9829b68ae946d83da484043da1ad9f8",
          "body": null,
          "is_bot": false,
          "headline": "Clarify: language binding crates NOT published to crates.io",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T23:57:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "436b1a414231b2cc73520cf13c533b9e77349b28",
          "body": null,
          "is_bot": false,
          "headline": "Clarify crate hierarchy: asherah for Rust, asherah-ffi for bindings",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T23:57:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c21cb4c53705e122da8e3cfd08d3049ba3fd374a",
          "body": "- Add version specs to all internal dependencies\n- Fix invalid \"ffi\" category (use \"api-bindings\")\n- Prepare for publishing language bindings\n\nPublished: asherah, asherah-config, asherah-cobhan, asherah-ffi\nPending: asherah-node, asherah-py, asherah-java (rate limited)\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add version requirements for crates.io publishing",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T23:57:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f8dd3096b5da53b203d47da3ac1fc4dda67306b1",
          "body": "…s-98bed8d410\n\nchore(deps): bump the actions group with 2 updates",
          "is_bot": false,
          "headline": "Merge pull request #286 from godaddy/dependabot/github_actions/action…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T23:54:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f94a693dc02b68e5c4548d08932585ed59bf1102",
          "body": "…5f277f\n\nchore(deps): bump tokio from 1.52.2 to 1.52.3 in the rust-minor group",
          "is_bot": false,
          "headline": "Merge pull request #285 from godaddy/dependabot/cargo/rust-minor-d7fe…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T23:54:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c67a1e5681e1e819c6e45c5b748b07d72996f561",
          "body": null,
          "is_bot": false,
          "headline": "fix(php): publish after native release assets",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T22:51:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cabedd004ede3e91f9746ca20c5275780b83c42e",
          "body": "Bumps the actions group with 2 updates: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [taiki-e/install-action](https://github.com/taiki-e/install-action).\n\n\nUpdates `ruby/setup-ruby` from 1.306.0 to 1.307.0\n- [Release notes](https://github.com/ruby/setup-ruby/releases)\n- [Changelog](http\n[…]\naction\n  dependency-version: 2.77.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the actions group with 2 updates",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-12T07:44:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f9a39974a1cf1584c468b47ba4a8c28d0f93394a",
          "body": "Bumps the rust-minor group with 1 update: [tokio](https://github.com/tokio-rs/tokio).\n\n\nUpdates `tokio` from 1.52.2 to 1.52.3\n- [Release notes](https://github.com/tokio-rs/tokio/releases)\n- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.52.2...tokio-1.52.3)\n\n---\nupdated-dependencies:\n- \n[…]\nkio\n  dependency-version: 1.52.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: rust-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump tokio from 1.52.2 to 1.52.3 in the rust-minor group",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-12T07:44:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0a37bb80fe4ce9c98637729ddd58deffc6fa839e",
          "body": "* feat(php): add DataRowRecord typed API alongside string methods\n\nAdd strongly-typed DataRowRecord class for encrypted data while keeping\nthe simple string-based API methods. Both APIs are fully supported:\n\nString API (simple):\n- encryptString()/decryptString() - returns/accepts JSON strings\n- encr\n[…]\ne typed API\n\nBoth APIs match patterns from other language bindings. Use string API\nfor simplicity or typed API when metadata inspection is needed.\n\n* fix(php): apply code style fixes for DataRowRecord",
          "is_bot": false,
          "headline": "feat(php): add DataRowRecord typed API alongside string methods (#284)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-12T00:15:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "79057782fe3711c7b188778b7a4e290dd9c8e25d",
          "body": null,
          "is_bot": false,
          "headline": "docs(php): update README for Packagist availability (#283)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-11T20:25:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d065c2baf60c4655dad550339ba9e7e78c89c637",
          "body": "…es (#282)\n\n* fix(metastore): insert into by_key before updating latest to prevent data race\n\nMiri detected a data race in concurrent_store_load_latest_invariant where\nload_latest could observe a `created` timestamp in the `latest` map before\nthe corresponding key was inserted into `by_key`.\n\nRace s\n[…]\nsitor with iter_sync() (closure returns bool to continue).\nMigrate all call sites in cache.rs, metastore.rs, and session_cache.rs.\n\n---------\n\nCo-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(deps): upgrade scc 2→3 to resolve Miri and ThreadSanitizer failur…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-09T22:15:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cc4557fe1b284418f997bebbd9b3f2d0b23cfba7",
          "body": "… (#255)\n\nBumps the actions group with 2 updates in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action) and [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `taiki-e/install-action` from 2.75.23 to 2.77.1\n- [Release notes](https://github.com\n[…]\npe: version-update:semver-minor\n  dependency-group: actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the actions group across 1 directory with 2 updates…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-09T01:49:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ead5cb0a1380bcc54f658bd345028a9dd73d3a94",
          "body": "Bumps [astral-tokio-tar](https://github.com/astral-sh/tokio-tar) from 0.6.0 to 0.6.1.\n- [Release notes](https://github.com/astral-sh/tokio-tar/releases)\n- [Changelog](https://github.com/astral-sh/tokio-tar/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/astral-sh/tokio-tar/compare/v0.6.0...v0\n[…]\ntar\n  dependency-version: 0.6.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump astral-tokio-tar from 0.6.0 to 0.6.1 (#259)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-09T01:49:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bc45e565015ca15bb1179acc4a04e7714d0afb59",
          "body": "Bumps [openssl](https://github.com/rust-openssl/rust-openssl) from 0.10.78 to 0.10.79.\n- [Release notes](https://github.com/rust-openssl/rust-openssl/releases)\n- [Commits](https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79)\n\n---\nupdated-dependencies:\n- dependenc\n[…]\ndency-version: 0.10.79\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump openssl from 0.10.78 to 0.10.79 (#260)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-09T01:49:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c35e0810000e0c4a1dd7c00ca43259000c63fe1",
          "body": "…tes (#270)\n\nBumps the rust-minor group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tokio](https://github.com/tokio-rs/tokio) | `1.52.1` | `1.52.2` |\n| [openssl](https://github.com/rust-openssl/rust-openssl) | `0.10.78` | `0.10.79` |\n| [napi](https://github.com\n[…]\n version-update:semver-patch\n  dependency-group: rust-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the rust-minor group across 1 directory with 8 upda…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-09T01:49:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3afef7342ae389874ba5fa1037a3a77d8ccb2438",
          "body": "…data race (#281)\n\nMiri detected a data race in concurrent_store_load_latest_invariant where\nload_latest could observe a `created` timestamp in the `latest` map before\nthe corresponding key was inserted into `by_key`.\n\nRace scenario with wrong order:\n  T1: store(k, 100): update latest[k] = 100\n  T2:\n[…]\nreads the timestamp.\n\nThis was caught by the sanitizers job added in #279 which now runs Miri on\nconcurrent tests including cache_concurrent.\n\nCo-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(metastore): insert into by_key before updating latest to prevent …",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-09T01:24:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47a043b317636d8651196a1cb103d43d5d019c9f",
          "body": "Adds asherah/features/rotation_parity.feature with two scenarios:\n- Rust decrypts both pre- and post-rotation DRRs encrypted by Node\n- Node decrypts both pre- and post-rotation DRRs encrypted by Rust\n\ngen.js takes an optional ExpireAfter argument (CLI position 7) so\nboth languages can configure shor\n[…]\nep impls for\nencrypt-with-expire (both languages), wait-for-rotation, and the\npre/post decrypt asserts. The IK-strictly-newer assertion compares\ndrr.key.parent_key_meta.created across the two bundles.",
          "is_bot": false,
          "headline": "test(cucumber): cross-language rotation parity scenarios (#280)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T21:15:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1b61ecaf6a8272dc08447bfc55bc71d8cf23ad85",
          "body": "…tize] (#279)\n\nThe existing sanitizers job runs ASAN + Miri + Valgrind on\n`asherah --lib` and `asherah-cobhan --lib` only. The rotation\nintegration tests — which use atomics, single-flight CAS in\nSimpleKeyCache::try_claim_reload_*, and barrier-synchronized\nmulti-thread bursts — never ran under any s\n[…]\nable) or fall back to\nthe existing sanitizer Docker image. --test-threads=1 keeps wall-clock\nrotation expectations from racing each other.\n\n[sanitize] tag triggers the gated sanitizers job on this PR.",
          "is_bot": false,
          "headline": "ci(sanitizers): run rotation tests under ASAN + ThreadSanitizer [sani…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T20:34:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d9ff343ae49da0e36c7d5bc8512fb6a383953b9",
          "body": "asherah-ruby had zero rotation tests. rotation_test.rb mirrors the\nasherah-node, asherah-py, asherah-java, asherah-dotnet, and\nasherah-go rotation suites:\n\n- test_sync_rotation_across_expiry: Asherah.encrypt rotates IK\n  across expiry; both DRRs round-trip.\n- test_async_rotation_across_expiry: encry\n[…]\ncrypts.\n\nHermetic config: Metastore=memory + KMS=test-debug-static, ExpireAfter\n+ CheckInterval = 1. Verifies the precision clamp from #272\npropagates through ruby-ffi.\n\nAll 4 tests pass via minitest.",
          "is_bot": false,
          "headline": "test(ruby): rotation, revocation, sync↔async interop tests (#277)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T19:53:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b4904c3e6cf8b66e30015125e12c8c044b750bb5",
          "body": "asherah-php had zero rotation tests. RotationTest mirrors the other\nbinding suites (PHP has no async API — sync only):\n\n- testSyncRotationAcrossExpiry: encryptString rotates IK across expiry.\n- testMultipleRotationCycles: 3 sequential rotation cycles.\n- testHistoricalDrrsDecryptAfterRotation: 5 pre-\n[…]\nion.\n\nHermetic: Metastore=memory + KMS=test-debug-static, ExpireAfter +\nCheckInterval = 1. Verifies the precision clamp from #272 propagates\nthrough PHP FFI marshalling.\n\nAll 3 tests pass via PHPUnit.",
          "is_bot": false,
          "headline": "test(php): rotation tests for asherah-php (#278)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T19:48:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8dae7414d66d0346da8437ad952d6cec061c16fc",
          "body": "asherah-go had zero rotation tests. rotation_test.go mirrors the\nother binding suites (Go has no separate async API — goroutines +\nsync calls cover concurrent use):\n\n- TestSyncRotationAcrossExpiry: EncryptString rotates IK across expiry.\n- TestMultipleRotationCycles: 3 sequential rotation cycles; ev\n[…]\ntore=memory, KMS=test-debug-static, ExpireAfter\n+ CheckInterval = 1s. Verifies the precision clamp from #272\npropagates correctly through purego's loadlibrary/dlsym FFI.\n\nAll 3 tests pass via go test.",
          "is_bot": false,
          "headline": "test(go): rotation, concurrent rotation tests for asherah-go (#276)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T19:47:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2bd0624ab61769f3b81f042c419830f2291b74b7",
          "body": "asherah-dotnet had zero rotation tests. RotationTests mirrors\nasherah-node, asherah-py, and asherah-java coverage:\n\n- SyncRotationAcrossExpiry: AsherahApi.EncryptString rotates IK across\n  expiry; both DRRs round-trip.\n- AsyncRotationAcrossExpiry: EncryptAsync/DecryptAsync (Task) rotate\n  the same w\n[…]\nKind.Memory + KmsKind.TestDebugStatic.\nVerifies the precision clamp from #272 propagates correctly through\nthe .NET P/Invoke (cobhan FFI) marshalling.\n\nAll 4 tests pass on both net8 and net10 targets.",
          "is_bot": false,
          "headline": "test(dotnet): rotation, revocation, sync↔async interop tests (#275)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T19:47:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "07aca05a1047f4ecd85f1f77a2132f549fa3e8d9",
          "body": "asherah-java had zero rotation tests. AsherahRotationTest mirrors\nthe Node and Python coverage:\n\n- syncRotationAcrossExpiry: Asherah.encryptString rotates IK across expiry.\n- asyncRotationAcrossExpiry: encryptAsync/decryptAsync (CompletableFuture)\n  rotate the same way.\n- syncAsyncInteropAfterRotati\n[…]\n DRR still decrypts.\n\nHermetic config: metastore='memory', kms='test-debug-static'.\nVerifies the precision clamp from #272 propagates through JNI.\n\nAll 4 tests pass via mvn -Dtest=AsherahRotationTest.",
          "is_bot": false,
          "headline": "test(java): rotation, revocation, sync↔async interop tests (#274)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T19:47:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb93def85c894fd27d96e9e9a944b622f21e55d7",
          "body": "…py (#273)\n\nasherah-py had zero rotation/revocation tests — test_roundtrip.py\nonly checked happy-path encrypt/decrypt. Mirrors the asherah-node\ntest/rotation.js coverage:\n\n- test_sync_rotation_across_expiry: sync encrypt rotates IK across\n  expiry, both DRRs round-trip.\n- test_async_rotation_across_\n[…]\nest-debug-static'.\nVerifies the precision clamp landed in #272 propagates correctly\nthrough PyO3 / pyproject FFI.\n\nAll 4 tests pass locally with the fresh asherah-py build (maturin\ndevelop --release).",
          "is_bot": false,
          "headline": "test(py): rotation, revocation, sync↔async interop tests for asherah-…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T19:15:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e348bfcacf73612abe7be39f9d7f6079174e817a",
          "body": "…ode rotation tests (#272)\n\n* fix(config): auto-clamp create_date_precision_s to short expiries\n\nFootgun discovered by tests/rotation_timing_edges.rs: when an operator\nsets `expire_after` < the default precision (60s), the engine cannot\nrotate the IK within a precision window and `encrypt` fails the\n[…]\ntputs and falling back to the\nartifact-staged `npm/asherah.node` (or platform subdir). This\nensures the test always exercises the binary built from the current\nsource, not whatever's published on npm.",
          "is_bot": false,
          "headline": "fix(config): auto-clamp create_date_precision_s to short expiries + N…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T17:33:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "01b263f9a80c8f27bf435c2a6a7597bad27734b8",
          "body": "…on (#271)\n\nTwo clusters of edge cases that previously had no coverage.\n\n## Time-precision boundary\n\n`Session::new_key_timestamp` rounds new-key timestamps to\n`create_date_precision_s`-aligned buckets. The interaction with\n`expire_key_after_s` and the metastore's `(id, created)` primary\nkey produced\n[…]\ntion.\n- old_drr_decrypts_via_exact_sk_meta_after_rotation: forces a cold\n  SK cache to confirm decrypt walks IK→exact-SK-meta rather than\n  load_latest.\n\n7 tests, all pass. cargo clippy --tests clean.",
          "is_bot": false,
          "headline": "test(rotation): time-precision boundary + simultaneous SK+IK expirati…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T05:35:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "97a444b677c91020a950b3711eeaa58e8fbd72fe",
          "body": "…ath (#269)\n\n`PublicSession::encrypt_async` / `decrypt_async` go through a parallel\nimplementation at session.rs:1054-1340 with its own\nget_or_load_system_key_async, load_intermediate_key_async,\nload_latest_or_create_intermediate_key_async, and\ncreate_intermediate_key_async — distinct code from the \n[…]\n covering all\n  combinations of sync/async encrypt × sync/async decrypt across a\n  rotation boundary)\n- async_ik_cache_ttl_reload\n- async_cascading_revocations\n\nAll 8 pass; cargo clippy --tests clean.",
          "is_bot": false,
          "headline": "test(async): rotation, revocation, race-loss coverage for the async p…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T04:29:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1029d2b887391a522aae6a5b55bea82037b4fccf",
          "body": "…ant (#268)\n\nThe single property that distinguishes a working envelope-encryption\nlibrary from a broken one is: any DRR ever returned by encrypt() must\ndecrypt to its original plaintext at any later point, regardless of\nintervening rotations / revocations / cache TTL events.\n\nHand-written tests exer\n[…]\netic execution; same shape as\n  the existing rotation/revocation tests.\n- Adds proptest 1.5 as a dev-dependency.\n\nAll 48 random traces + the explicit-trace smoke test pass.\ncargo clippy --tests clean.",
          "is_bot": false,
          "headline": "test(rotation): property-based test for the every-DRR-decrypts invari…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T03:35:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "76d636e164937a4671e1b6a0a6b8b99e3afd21e5",
          "body": "…B (#267)\n\n`tests/revocation.rs` exercises revocation against `InMemoryMetastore`.\n`tests/integration_containers.rs` had rotation parity for Postgres,\nMySQL, and DynamoDB but no revocation parity. This closes that gap by\nadding three tests that mark an IK row revoked in the real backend\n(production \n[…]\native-roots\nissue that blocks DDB tests on this macOS dev box also blocks the\npre-existing dynamodb_static_key_rotation locally — DDB tests run in\nthe CI Linux integration-tests job on ubuntu-latest).",
          "is_bot": false,
          "headline": "test(integration): DB-backed revocation parity for PG, MySQL, DynamoD…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T02:41:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b704b2aaf387faf869822d59ae115aef80d9f896",
          "body": "Add four integration test files filling gaps surfaced during a review of\ntest coverage around the highest-risk moments in the engine — the\nexpiration / rotation / revocation boundaries.\n\n- concurrent_rotation.rs (3 tests): N-thread barrier-synchronized\n  rotation bursts on a single hot partition. As\n[…]\nhe current master key\n  (asserted via a fresh factory + v2-only KMS to bypass the SK\n  cache's plaintext snapshot), and bulk pre/post round-trip.\n\nAll 18 new tests pass; cargo clippy --tests is clean.",
          "is_bot": false,
          "headline": "test: cover key expiration, rotation, and revocation gaps (#266)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-08T01:44:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a0f98998f138a4ef8e50ad72337d710e134db2d2",
          "body": null,
          "is_bot": false,
          "headline": "Add root Composer package metadata (#265)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-07T19:25:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16650dc185887172a7b95718b01e432cec76a4f2",
          "body": "* Explore PHP FFI Composer binding\n\n* docs: add PHP production binding ExecPlan\n\n* Implement PHP binding production hardening slice\n\n* docs: clarify PHP native staging model\n\n* Continue PHP binding production hardening\n\n* Harden PHP session cache parity\n\n* Add PHP AWS opt-in integration coverage\n\n* \n[…]\nheader generation\n\n* Fix PHP CI artifact loading\n\n* Resolve PHP native artifact path in CI\n\n* Prefer PHP FFI artifact in CI\n\n* Fix PHP source dry-run artifact path\n\n* Fix PHP source dry-run chmod path",
          "is_bot": false,
          "headline": "Explore PHP FFI Composer binding (#261)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-07T18:23:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6eaeff4bbc7eb6f375398b73f753721cf85ca877",
          "body": "* fix(kms): make static and test-debug-static exact synonyms\n\nThe hotfix at 9049fa4 made KMS=static reject empty StaticMasterKeyHex\nand added KMS=test-debug-static as a separate kind that auto-supplies\nthe publicly known test key. That diverged the two identifiers and\nbroke interop with the canonica\n[…]\nfter\nthe variant is confirmed. The new shape keeps the same coverage\n(KmsConfig::Static expected; key_hex equals TEST_DEBUG_STATIC_MASTER_KEY_HEX)\nwithout materialising the secret in any failure path.",
          "is_bot": false,
          "headline": "fix(kms): make static and test-debug-static exact synonyms (#262)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-07T16:57:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c544646540a99161bb1e75339223ba50ba81ef0",
          "body": "…s (#264)\n\nThree drop-in compatibility regressions vs the canonical\ngithub.com/godaddy/asherah Go reference server, surfaced by a PHP\nconsumer migrating from the Go binary to asherah-server, plus\ndocumentation work to make the gRPC use case discoverable on par with\nthe in-process language bindings.\n\n[…]\nverage:\n- asherah-server: 14 lib + 9 bin + 12 e2e + 22 integration + 11 unit_tests\n  = 68 tests, all green\n- asherah crate (mysql features): 68 tests, all green\n- workspace clippy --all-targets: clean",
          "is_bot": false,
          "headline": "docs(server): comprehensive gRPC-sidecar README + drop-in compat fixe…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-07T15:13:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b47bd39187e37a26affceae254fc96b8b136031b",
          "body": "fix(server): honor ASHERAH_VERBOSE over RUST_LOG; accept ASHERAH_SOCKET alias",
          "is_bot": false,
          "headline": "Merge pull request #263 from godaddy/fix/grpc-server-logging-compat",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy",
          "committed_at": "2026-05-07T02:40:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "645772ee1dabefc6b245e994218896af39bd4053",
          "body": "…ET alias\n\nThree issues surfaced by a consumer reporting \"no logs from the gRPC\nserver\" running with RUST_LOG=asherah_server=debug ASHERAH_VERBOSE=true\nand ASHERAH_SOCKET=unix:///sock/asherah.sock:\n\n1. ASHERAH_VERBOSE was a no-op when RUST_LOG was set, because\n   env_logger's default_filter_or only \n[…]\npath; 6 new e2e tests\nspawning the binary (3 socket-alias, 3 log-emission, including a\nregression test for the exact consumer config). Total 68 asherah-server\ntests, all green; workspace clippy clean.",
          "is_bot": false,
          "headline": "fix(server): honor ASHERAH_VERBOSE over RUST_LOG; accept ASHERAH_SOCK…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-07T01:26:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "487045e1eb5fff734875251c4b7cd23e87638ae4",
          "body": "* fix(builders): reject empty STATIC_MASTER_KEY_HEX for KMS=static\n\nKmsConfig::Static { key_hex: \"\" } previously fell through to the public\ntest key (the ASCII bytes of \"thisIsAStaticMasterKeyForTesting\"). With\nKMS=static being the default when no env var is set, an unconfigured\ndeployment silently \n[…]\nnaming the parity with .NET's ZeroizePlaintext, Go's Zeroize.\ndecrypt() Javadoc spells out the JVM heap residency contract.\n\nasherah-node/npm/index.js + index.d.ts: new public clearPlaintext\n(Buffer …",
          "is_bot": false,
          "headline": "fix: address 2026-05-05 review findings (B+S tier) (#257)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-06T22:15:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6ab862ccee043287fa834a066ce86d91122b29f8",
          "body": "* fix(builders): reject empty STATIC_MASTER_KEY_HEX for KMS=static\n\nKmsConfig::Static { key_hex: \"\" } previously fell through to the public\ntest key (the ASCII bytes of \"thisIsAStaticMasterKeyForTesting\"). With\nKMS=static being the default when no env var is set, an unconfigured\ndeployment silently \n[…]\n Connection reset by peer` even after retries. Add two community\n   mirror fallbacks (zigmirror.hryx.net, pkg.machengine.org) so\n   the script tries 3 independent infrastructures × 2 attempts\n   each.",
          "is_bot": false,
          "headline": "Hotfix: critical correctness and security fixes (#258)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-06T19:13:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "613ee7f49b05712cd5d2effcbefcbd39ceaf743c",
          "body": "* chore: address actionable CodeQL standard findings\n\nReal fixes for CodeQL maintainability/reliability findings; false\npositives are left alone (interface-method \"unused parameter\" findings,\nintentional FFI-boundary catches that already document why).\n\n* asherah-node/test/e2e-aws.js — drop unused `\n[…]\nofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>",
          "is_bot": false,
          "headline": "chore: address actionable CodeQL standard findings (#254)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T22:22:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3fffb25edbcb0d7aac8fec2c70045df6ff173d9d",
          "body": "Cherry-pick of the substantive change from AI auto-fix #250. \\`:latest\\`\nsilently shifts whenever HashiCorp publishes a new release, which can\nbreak our integration test in ways unrelated to the code under test.\nPin to 1.15.0 — the same version we've been transitively running.\n\nThe other two changes\n[…]\nadding 'do not\nuse in production' comments to test-only key generation) are dropped:\nthey trade clear, obviously-deterministic test code for a noisier\npseudo-random-looking literal with the same role.",
          "is_bot": false,
          "headline": "test(kms): pin hashicorp/vault test image to 1.15.0 (#253)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T20:26:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a8c5df21be68370c7dec5cdea878c1a464d5629a",
          "body": "…#252)\n\nThree small robustness fixes to asherah-server, cherry-picked from a\nGitHub AI code-review suggestion:\n\n1. parse_region_map: trim each key and value before insertion, and warn\n   (instead of silently dropping) when the key is empty. Without\n   trimming, an entry like \"REGION1 = ARN1\" would i\n[…]\n\nThe two #[cfg(not(unix))] arms touched by the original suggestion are\nleft alone — they're dead branches because the server unconditionally\nuses tokio::net::UnixListener, which only compiles on Unix.",
          "is_bot": false,
          "headline": "fix(server): trim region-map entries; surface socket-removal errors (…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T20:26:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "70a1da283a310828ae90fab743076bc455629484",
          "body": "…e (#246)\n\nTwo small test-quality fixes prompted by a GitHub AI code review:\n\n1. AsherahConfigTest used \"prod\" for both productId and the\n   awsProfileName under test, which would make a failure log ambiguous.\n   Use \"test-profile\" for the profile-name fixture.\n\n2. The reviewer asked for ~30 new Ash\n[…]\nontract once\n   (omits null entries, emits string/int/bool/map values, escapes\n   control and quote chars). Existing AsherahConfigTest already proves\n   AsherahConfig wires fields through to JsonUtil.",
          "is_bot": false,
          "headline": "test(java): cover JsonUtil null-omission directly; rename test fixtur…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T20:26:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "255dd7d7e5fece478c6828cf55ec2fe6ec9e00a3",
          "body": "… (#245)\n\nCodeQL flagged 12 call sites where Path.Combine could silently drop\nearlier arguments if a later argument were absolute. In every case here,\nthe trailing arguments are either string literals (\\\"Cargo.toml\\\",\n\\\"target\\\", \\\"debug\\\"), or values already gated by Path.IsPathRooted\n(benchmarks/d\n[…]\n-path footgun, so the\nanalyzer goes quiet and future callers can't accidentally trip it.\n\nTests: scripts/test.sh --bindings --binding=dotnet\n       (122 + 30 tests, both net8.0 and net10.0, all green)",
          "is_bot": false,
          "headline": "fix(dotnet): use Path.Join over Path.Combine to avoid silent arg drop…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T18:18:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba696af46b566d19800655b2202d8a72773ee638",
          "body": "Two small hygiene fixes for CI annotations:\n\n1. Set FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true on every mlugg/setup-zig\n   step (ci.yml x4, publish-npm.yml, release-cobhan.yml). The action's\n   v2.2.1 release and main branch still declare 'using: node20', so\n   pinning a newer SHA is not an option. The\n[…]\n.yml (binding-tests), benchmark-setup.yml, and codeql.yml. The\n   asherah Go module lives in asherah-go/, so the default repo-root\n   lookup fails and emits a \"Dependencies file is not found\" warning.",
          "is_bot": false,
          "headline": "chore(ci): silence Node 20 deprecation and Go cache warnings (#244)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T17:03:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f4e6423ec59a8ed99a12f8876c07d8358d9a9181",
          "body": "Disable default features on aws-sdk-kms, aws-sdk-dynamodb, and\naws-sdk-secretsmanager and re-enable only \"default-https-client\" and\n\"rt-tokio\". The dropped default feature is \"rustls\", which transitively\nenabled aws-smithy-runtime's tls-rustls -> aws-smithy-http-client's\nlegacy-rustls-ring path: rus\n[…]\nstls 0.21.12, rustls-webpki 0.101.7,\nhyper 0.14.32, hyper-rustls 0.24.2, h2 0.3.27, tokio-rustls 0.24.1, sct.\n\nCloses Dependabot alerts #49, #50, #51, #52, #64, #65 (rustls-webpki\n0.101.7 transitive).",
          "is_bot": false,
          "headline": "chore(deps): drop legacy-rustls feature from AWS SDK crates (#243)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T16:42:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3a4b37935eaaa81af93e5a549256c3c18123c50f",
          "body": "…s (#242)\n\nLockfile-only updates to address Dependabot alerts:\n\nCargo.lock:\n- rustls-webpki 0.103.11 -> 0.103.13 (GHSA-82j2-j2ch-gfr8 high,\n  GHSA-xgp8-3hg3-c2mh + GHSA-965h-392x-2mh5 low)\n\nfuzz/Cargo.lock:\n- openssl 0.10.75 -> 0.10.78 (GHSA-pqf5-4pqq-29f5, GHSA-8c75-8mhr-p7r9,\n  GHSA-hppc-g8h3-xhp3\n[…]\nsitive rustls-webpki 0.101.7 (via rustls 0.21 from\naws-smithy-http-client legacy-rustls feature) cannot be upgraded - rustls\n0.21 is end-of-line and 0.101.x has no further patches. Tracked separately.",
          "is_bot": false,
          "headline": "chore(deps): bump rustls-webpki, openssl, rand for security advisorie…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-04T15:26:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe1e8b2b2e8d2e521b6ae3f0ccb3067751447ff8",
          "body": "…n split (#241)\n\nWhen both DynamoDBRegion and DynamoDBSigningRegion were set with\ndifferent values, asherah-config previously collapsed them with\n.or() and used a single value as the SDK Region. The SDK then drove\n*both* endpoint URL resolution and SigV4 signing from that one value,\nsilently routing\n[…]\n's a separate design concern and changing it\nwould alter behavior for existing AWS-KMS deployments.\n\nUpdates the asherah-go production-setup doc to describe the precise\nendpoint resolution precedence.",
          "is_bot": false,
          "headline": "fix(metastore-dynamodb): honor DynamoDBSigningRegion vs DynamoDBRegio…",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-05-01T14:54:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5ac6e7792fb9c6fd78e76582587f64d05bcd21f6",
          "body": null,
          "is_bot": false,
          "headline": "Dotnet beta polish (#240)",
          "author_name": "Micco",
          "author_login": "chief-micco",
          "committed_at": "2026-05-01T13:21:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b0b4482d8e54059c21ea4f15c1bd38633792709",
          "body": "Exposes the existing asherah-config aws_profile_name field through the\ngRPC sidecar so operators can select an AWS shared-credentials profile\nfor KMS, DynamoDB, and Secrets Manager clients. Brings the sidecar to\nparity with the .NET, Node, Python, Java, Ruby, and Go bindings.\n\nWhen unset, the standard AWS credential chain (including AWS_PROFILE)\napplies, matching prior behavior.",
          "is_bot": false,
          "headline": "feat(server): add --aws-profile-name to asherah-server CLI (#239)",
          "author_name": "Jay Gowdy",
          "author_login": "jgowdy-godaddy",
          "committed_at": "2026-04-30T20:25:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 667,
      "latest_release_at": "2026-06-19T20:17:42Z",
      "latest_release_tag": "v1.0.0",
      "releases_from_tags": false,
      "days_since_last_push": 6,
      "active_weeks_last_year": 25,
      "days_since_latest_release": 37,
      "mean_days_between_releases": 3.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "godaddy/asherah",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "encryption",
            "kms",
            "ffi",
            "envelope-encryption",
            "asherah"
          ],
          "ecosystem": "packagist",
          "matches_repo": true,
          "registry_url": "https://packagist.org/packages/godaddy/asherah",
          "is_deprecated": false,
          "latest_version": "v1.0.0",
          "repository_url": "https://github.com/godaddy/asherah-ffi",
          "versions_count": 19,
          "total_downloads": 66,
          "dependents_count": 0,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 10,
          "first_published_at": null,
          "latest_published_at": "2026-06-19T20:17:34Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 37
        },
        {
          "name": "github.com/godaddy/asherah-ffi/asherah-go",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/godaddy/asherah-ffi/asherah-go",
          "is_deprecated": false,
          "latest_version": "v1.0.0",
          "repository_url": "https://github.com/godaddy/asherah-ffi",
          "versions_count": 14,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-06-19T20:17:34Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 37
        },
        {
          "name": "asherah",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "asherah",
            "encryption",
            "kms",
            "secrets",
            "security",
            "cryptography",
            "config",
            "memory-management"
          ],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/asherah",
          "is_deprecated": false,
          "latest_version": "1.0.0",
          "repository_url": "https://github.com/godaddy/asherah-ffi",
          "versions_count": 4,
          "total_downloads": 2247,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 749,
          "first_published_at": "2026-05-12T19:14:28.913545Z",
          "latest_published_at": "2026-06-19T20:19:00.460536Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 37
        },
        {
          "name": "asherah-ffi",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "asherah",
            "encryption",
            "ffi",
            "kms",
            "api-bindings",
            "cryptography",
            "memory-management"
          ],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/asherah-ffi",
          "is_deprecated": false,
          "latest_version": "1.0.0",
          "repository_url": "https://github.com/godaddy/asherah-ffi",
          "versions_count": 3,
          "total_downloads": 48,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 16,
          "first_published_at": "2026-05-12T19:15:18.371529Z",
          "latest_published_at": "2026-06-19T20:22:43.828047Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 37
        }
      ]
    },
    "popularity": {
      "forks": 1,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-16",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 11
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples",
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [
        "asherah-server/proto/appencryption.proto",
        "interop-grpc/client/proto/appencryption.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "asherah-py/asherah/py.typed"
      ],
      "toolchain_manifests": [
        "Cargo.toml",
        "asherah-cobhan/Cargo.toml",
        "asherah-cobhan/interop/go.mod",
        "asherah-config/Cargo.toml",
        "asherah-dotnet/src/GoDaddy.Asherah.Encryption.Compat/GoDaddy.Asherah.Encryption.Compat.csproj",
        "asherah-dotnet/src/GoDaddy.Asherah.Encryption/GoDaddy.Asherah.Encryption.csproj",
        "asherah-dotnet/tests/GoDaddy.Asherah.Encryption.Compat.Tests/GoDaddy.Asherah.Encryption.Compat.Tests.csproj",
        "asherah-dotnet/tests/GoDaddy.Asherah.Encryption.Tests/GoDaddy.Asherah.Encryption.Tests.csproj",
        "asherah-ffi/Cargo.toml",
        "asherah-go/go.mod",
        "asherah-java/Cargo.toml",
        "asherah-java/java/pom.xml",
        "asherah-node/Cargo.toml",
        "asherah-py/Cargo.toml",
        "asherah-server/Cargo.toml",
        "asherah/Cargo.toml",
        "benchmarks/asherah-bench/Cargo.toml",
        "benchmarks/dotnet-bench-canonical/dotnet-bench-canonical.csproj",
        "benchmarks/dotnet-bench-newmetastore/dotnet-bench-newmetastore.csproj",
        "benchmarks/dotnet-bench/dotnet-bench.csproj",
        "benchmarks/go-bench/go.mod",
        "benchmarks/go-wrapper/go.mod",
        "benchmarks/grpc-bench/go.mod",
        "benchmarks/java-bench-canonical/pom.xml",
        "benchmarks/java-bench/pom.xml",
        "benchmarks/native-bench/go-bench/go.mod",
        "benchmarks/native-bench/rust-bench/Cargo.toml",
        "fuzz/Cargo.toml",
        "interop-grpc/client/Cargo.toml",
        "interop/canonical-csharp/CanonicalCsharpProbe.csproj",
        "interop/canonical-go/go.mod",
        "interop/canonical-java/pom.xml",
        "samples/dotnet/Sample.csproj",
        "samples/go/go.mod",
        "samples/rust/Cargo.toml"
      ],
      "largest_source_bytes": 198446,
      "source_files_sampled": 352,
      "oversized_source_files": 4,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 10921
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "asherah-cobhan/Cargo.toml",
        "asherah-config/Cargo.toml",
        "asherah-ffi/Cargo.toml",
        "asherah-go/go.mod",
        "asherah-java/Cargo.toml",
        "asherah-node/Cargo.toml",
        "asherah-node/package.json",
        "asherah-php/composer.json",
        "asherah-py/Cargo.toml",
        "asherah-py/pyproject.toml",
        "asherah-ruby/Gemfile",
        "asherah-server/Cargo.toml",
        "asherah/Cargo.toml",
        "composer.json",
        "fuzz/Cargo.toml",
        "interop/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.45.0",
            "severity": "critical",
            "ecosystem": "go",
            "cvss_score": 10,
            "advisory_ids": [
              "GHSA-45gg-vh54-h5m9",
              "GHSA-5cgq-3rg8-m6cv",
              "GHSA-78mq-xcr3-xm33",
              "GHSA-89gr-r52h-f8rx",
              "GHSA-9m57-25v3-79x9",
              "GHSA-f5wc-c3c7-36mc",
              "GHSA-jppx-rxg9-jmrx",
              "GHSA-q4h4-gmj2-qvw2",
              "GHSA-qpw4-5x99-6vjp",
              "GHSA-rm3j-f69w-wqmq"
            ],
            "fixed_version": "0.52.0",
            "advisory_count": 27,
            "oldest_advisory_days": 66
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.48.0",
            "severity": "critical",
            "ecosystem": "go",
            "cvss_score": 10,
            "advisory_ids": [
              "GHSA-45gg-vh54-h5m9",
              "GHSA-5cgq-3rg8-m6cv",
              "GHSA-78mq-xcr3-xm33",
              "GHSA-89gr-r52h-f8rx",
              "GHSA-9m57-25v3-79x9",
              "GHSA-f5wc-c3c7-36mc",
              "GHSA-jppx-rxg9-jmrx",
              "GHSA-q4h4-gmj2-qvw2",
              "GHSA-qpw4-5x99-6vjp",
              "GHSA-rm3j-f69w-wqmq"
            ],
            "fixed_version": "0.52.0",
            "advisory_count": 27,
            "oldest_advisory_days": 66
          },
          {
            "name": "google.golang.org/grpc",
            "direct": false,
            "version": "v1.79.3",
            "severity": "critical",
            "ecosystem": "go",
            "cvss_score": 9.1,
            "advisory_ids": [
              "GHSA-hrxh-6v49-42gf"
            ],
            "fixed_version": "1.82.1",
            "advisory_count": 1,
            "oldest_advisory_days": 5
          },
          {
            "name": "openssl",
            "direct": true,
            "version": "0.10.78",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-phqj-4mhp-q6mq",
              "GHSA-xp3w-r5p5-63rr",
              "GHSA-xv59-967r-8726"
            ],
            "fixed_version": "0.10.80",
            "advisory_count": 3,
            "oldest_advisory_days": 82
          },
          {
            "name": "postgres-protocol",
            "direct": false,
            "version": "0.6.10",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "RUSTSEC-2026-0179",
              "RUSTSEC-2026-0180"
            ],
            "fixed_version": "0.6.12",
            "advisory_count": 2,
            "oldest_advisory_days": 44
          },
          {
            "name": "postgres-protocol",
            "direct": false,
            "version": "0.6.11",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "RUSTSEC-2026-0179",
              "RUSTSEC-2026-0180"
            ],
            "fixed_version": "0.6.12",
            "advisory_count": 2,
            "oldest_advisory_days": 44
          },
          {
            "name": "quinn-proto",
            "direct": false,
            "version": "0.11.14",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-4w2j-m93h-cj5j",
              "RUSTSEC-2026-0185"
            ],
            "fixed_version": "0.11.15",
            "advisory_count": 2,
            "oldest_advisory_days": 34
          },
          {
            "name": "cmov",
            "direct": false,
            "version": "0.5.3",
            "severity": "moderate",
            "ecosystem": "crates",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-3rjw-m598-pq24"
            ],
            "fixed_version": "0.5.4",
            "advisory_count": 1,
            "oldest_advisory_days": 24
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.48.0",
            "severity": "moderate",
            "ecosystem": "go",
            "cvss_score": 6.5,
            "advisory_ids": [
              "GHSA-5cv4-jp36-h3mw",
              "GO-2026-4918",
              "GO-2026-5025",
              "GO-2026-5026",
              "GO-2026-5027",
              "GO-2026-5028",
              "GO-2026-5029",
              "GO-2026-5030",
              "GO-2026-5942"
            ],
            "fixed_version": "1.26.3",
            "advisory_count": 9,
            "oldest_advisory_days": 80
          },
          {
            "name": "serde_with",
            "direct": false,
            "version": "3.18.0",
            "severity": "moderate",
            "ecosystem": "crates",
            "cvss_score": 4,
            "advisory_ids": [
              "GHSA-7gcf-g7xr-8hxj"
            ],
            "fixed_version": "3.21.0",
            "advisory_count": 1,
            "oldest_advisory_days": 11
          },
          {
            "name": "tokio-postgres",
            "direct": false,
            "version": "0.7.16",
            "severity": "moderate",
            "ecosystem": "crates",
            "cvss_score": 5.3,
            "advisory_ids": [
              "RUSTSEC-2026-0178"
            ],
            "fixed_version": "0.7.18",
            "advisory_count": 1,
            "oldest_advisory_days": 44
          },
          {
            "name": "tokio-postgres",
            "direct": false,
            "version": "0.7.17",
            "severity": "moderate",
            "ecosystem": "crates",
            "cvss_score": 5.3,
            "advisory_ids": [
              "RUSTSEC-2026-0178"
            ],
            "fixed_version": "0.7.18",
            "advisory_count": 1,
            "oldest_advisory_days": 44
          },
          {
            "name": "anyhow",
            "direct": true,
            "version": "1.0.102",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0190"
            ],
            "fixed_version": "1.0.103",
            "advisory_count": 1,
            "oldest_advisory_days": 31
          },
          {
            "name": "scc",
            "direct": true,
            "version": "2.4.0",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0205"
            ],
            "fixed_version": "3.8.4",
            "advisory_count": 1,
            "oldest_advisory_days": 20
          },
          {
            "name": "scc",
            "direct": true,
            "version": "3.7.2",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0205"
            ],
            "fixed_version": "3.8.4",
            "advisory_count": 1,
            "oldest_advisory_days": 20
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0204"
            ],
            "fixed_version": "0.9.20",
            "advisory_count": 1,
            "oldest_advisory_days": 20
          },
          {
            "name": "github.com/aws/aws-sdk-go",
            "direct": false,
            "version": "v1.44.265",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2022-0635",
              "GO-2022-0646"
            ],
            "fixed_version": null,
            "advisory_count": 2,
            "oldest_advisory_days": 1626
          },
          {
            "name": "github.com/aws/aws-sdk-go",
            "direct": false,
            "version": "v1.55.8",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2022-0635",
              "GO-2022-0646"
            ],
            "fixed_version": null,
            "advisory_count": 2,
            "oldest_advisory_days": 1626
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.38.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5024"
            ],
            "fixed_version": "0.44.0",
            "advisory_count": 1,
            "oldest_advisory_days": 65
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.39.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5024"
            ],
            "fixed_version": "0.44.0",
            "advisory_count": 1,
            "oldest_advisory_days": 65
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.42.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5024"
            ],
            "fixed_version": "0.44.0",
            "advisory_count": 1,
            "oldest_advisory_days": 65
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.32.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5970"
            ],
            "fixed_version": "0.39.0",
            "advisory_count": 1,
            "oldest_advisory_days": 12
          },
          {
            "name": "proc-macro-error2",
            "direct": false,
            "version": "2.0.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0173"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 49
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 4,
          "unknown": 11,
          "critical": 3,
          "moderate": 5
        },
        "advisory_count": 90,
        "affected_count": 23,
        "assessed_count": 708,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 76,
        "direct_affected_count": 4
      },
      "ecosystems": [
        "crates",
        "go",
        "npm",
        "packagist",
        "pypi",
        "rubygems"
      ],
      "dependencies": [
        {
          "name": "asherah",
          "manifest": "asherah-cobhan/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "asherah-config",
          "manifest": "asherah-cobhan/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "log",
          "manifest": "asherah-cobhan/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-cobhan/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "serde",
          "manifest": "asherah-cobhan/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "zeroize",
          "manifest": "asherah-cobhan/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.8"
        },
        {
          "name": "anyhow",
          "manifest": "asherah-config/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "serde",
          "manifest": "asherah-config/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-config/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "asherah",
          "manifest": "asherah-config/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "asherah",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "asherah-cobhan",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "asherah-config",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "anyhow",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "tokio",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "once_cell",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "parking_lot",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "log",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "zeroize",
          "manifest": "asherah-ffi/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.8"
        },
        {
          "name": "github.com/ebitengine/purego",
          "manifest": "asherah-go/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.10.1"
        },
        {
          "name": "jni",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.22"
        },
        {
          "name": "asherah",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "asherah-config",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "anyhow",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "tokio",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "once_cell",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "log",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "parking_lot",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "zeroize",
          "manifest": "asherah-java/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.8"
        },
        {
          "name": "napi",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3"
        },
        {
          "name": "napi-derive",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3"
        },
        {
          "name": "serde",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "anyhow",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "asherah",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "asherah-config",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "tokio",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "once_cell",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "parking_lot",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "lru",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.16"
        },
        {
          "name": "log",
          "manifest": "asherah-node/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "pyo3",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.29"
        },
        {
          "name": "asherah",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "tokio",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "asherah-config",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "anyhow",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "once_cell",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.21"
        },
        {
          "name": "parking_lot",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "lru",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.16"
        },
        {
          "name": "log",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "zeroize",
          "manifest": "asherah-py/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "asherah",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "asherah-config",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "tonic",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.14"
        },
        {
          "name": "tonic-prost",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.14"
        },
        {
          "name": "prost",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.14"
        },
        {
          "name": "tokio",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "tokio-stream",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "clap",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "4"
        },
        {
          "name": "serde_json",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "anyhow",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "log",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "env_logger",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.11"
        },
        {
          "name": "rustix",
          "manifest": "asherah-server/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.1"
        },
        {
          "name": "serde",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "serde_json",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "once_cell",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.21"
        },
        {
          "name": "parking_lot",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "rand",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "rand_chacha",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "itoa",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "anyhow",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "async-trait",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "log",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "serde_bytes",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.11"
        },
        {
          "name": "blake2",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.10"
        },
        {
          "name": "base64",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.22"
        },
        {
          "name": "subtle",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.5"
        },
        {
          "name": "signal-hook",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "libc",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2"
        },
        {
          "name": "windows-sys",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.59"
        },
        {
          "name": "hardware-rust-crypto",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "ring",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.17"
        },
        {
          "name": "scc",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3"
        },
        {
          "name": "percent-encoding",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "zeroize",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.8"
        },
        {
          "name": "hardware-enclave",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.9"
        },
        {
          "name": "rusqlite",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.38"
        },
        {
          "name": "aws-config",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "aws-types",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "aws-sdk-kms",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "aws-sdk-dynamodb",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "aws-sdk-secretsmanager",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "tokio",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "mysql",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "27"
        },
        {
          "name": "postgres",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.19"
        },
        {
          "name": "postgres-native-tls",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.5"
        },
        {
          "name": "native-tls",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2"
        },
        {
          "name": "openssl",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.10"
        },
        {
          "name": "reqwest",
          "manifest": "asherah/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "asherah",
          "manifest": "interop/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.12"
        },
        {
          "name": "asherah-node",
          "manifest": "interop/package.json",
          "ecosystem": "npm",
          "version_constraint": "file:../asherah-node"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "anyhow",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "anyhow",
            "direct": true,
            "version": "1.0.102",
            "ecosystem": "crates"
          },
          {
            "name": "asherah",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "asherah-cobhan",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "asherah-config",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "async-trait",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "async-trait",
            "direct": true,
            "version": "0.1.89",
            "ecosystem": "crates"
          },
          {
            "name": "aws-config",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "aws-config",
            "direct": true,
            "version": "1.8.13",
            "ecosystem": "crates"
          },
          {
            "name": "aws-config",
            "direct": true,
            "version": "1.8.15",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-dynamodb",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-dynamodb",
            "direct": true,
            "version": "1.104.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-dynamodb",
            "direct": true,
            "version": "1.108.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-kms",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-kms",
            "direct": true,
            "version": "1.103.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-kms",
            "direct": true,
            "version": "1.99.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-secretsmanager",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-secretsmanager",
            "direct": true,
            "version": "1.99.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-types",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "aws-types",
            "direct": true,
            "version": "1.3.11",
            "ecosystem": "crates"
          },
          {
            "name": "aws-types",
            "direct": true,
            "version": "1.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": true,
            "version": "0.21.7",
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": true,
            "version": "0.22.1",
            "ecosystem": "crates"
          },
          {
            "name": "blake2",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "blake2",
            "direct": true,
            "version": "0.10.6",
            "ecosystem": "crates"
          },
          {
            "name": "clap",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "clap",
            "direct": true,
            "version": "4.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "env_logger",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "env_logger",
            "direct": true,
            "version": "0.11.10",
            "ecosystem": "crates"
          },
          {
            "name": "hardware-enclave",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "hardware-enclave",
            "direct": true,
            "version": "0.2.9",
            "ecosystem": "crates"
          },
          {
            "name": "hardware-rust-crypto",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "hardware-rust-crypto",
            "direct": true,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": true,
            "version": "1.0.17",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": true,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "jni",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "jni",
            "direct": true,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": true,
            "version": "0.2.183",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": true,
            "version": "0.2.186",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": true,
            "version": "0.4.29",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": true,
            "version": "0.4.32",
            "ecosystem": "crates"
          },
          {
            "name": "lru",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "lru",
            "direct": true,
            "version": "0.16.3",
            "ecosystem": "crates"
          },
          {
            "name": "lru",
            "direct": true,
            "version": "0.16.4",
            "ecosystem": "crates"
          },
          {
            "name": "mysql",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "mysql",
            "direct": true,
            "version": "27.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "napi",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "napi",
            "direct": true,
            "version": "3.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "napi-derive",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "napi-derive",
            "direct": true,
            "version": "3.5.6",
            "ecosystem": "crates"
          },
          {
            "name": "native-tls",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "native-tls",
            "direct": true,
            "version": "0.2.18",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": true,
            "version": "1.21.3",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": true,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "openssl",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "openssl",
            "direct": true,
            "version": "0.10.78",
            "ecosystem": "crates"
          },
          {
            "name": "openssl",
            "direct": true,
            "version": "0.10.80",
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot",
            "direct": true,
            "version": "0.12.5",
            "ecosystem": "crates"
          },
          {
            "name": "percent-encoding",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "percent-encoding",
            "direct": true,
            "version": "2.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "postgres",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "postgres",
            "direct": true,
            "version": "0.19.12",
            "ecosystem": "crates"
          },
          {
            "name": "postgres",
            "direct": true,
            "version": "0.19.13",
            "ecosystem": "crates"
          },
          {
            "name": "postgres-native-tls",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "postgres-native-tls",
            "direct": true,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "postgres-native-tls",
            "direct": true,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "prost",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "prost",
            "direct": true,
            "version": "0.14.4",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": true,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": true,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": true,
            "version": "0.9.4",
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": true,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "reqwest",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "reqwest",
            "direct": true,
            "version": "0.12.28",
            "ecosystem": "crates"
          },
          {
            "name": "ring",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "ring",
            "direct": true,
            "version": "0.17.14",
            "ecosystem": "crates"
          },
          {
            "name": "rusqlite",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rusqlite",
            "direct": true,
            "version": "0.38.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": true,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "scc",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "scc",
            "direct": true,
            "version": "2.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "scc",
            "direct": true,
            "version": "3.7.2",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": true,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_bytes",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde_bytes",
            "direct": true,
            "version": "0.11.19",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": true,
            "version": "1.0.149",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": true,
            "version": "1.0.150",
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook",
            "direct": true,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook",
            "direct": true,
            "version": "0.4.4",
            "ecosystem": "crates"
          },
          {
            "name": "subtle",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "subtle",
            "direct": true,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": true,
            "version": "1.50.0",
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": true,
            "version": "1.52.3",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-stream",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tokio-stream",
            "direct": true,
            "version": "0.1.18",
            "ecosystem": "crates"
          },
          {
            "name": "tonic",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tonic",
            "direct": true,
            "version": "0.14.6",
            "ecosystem": "crates"
          },
          {
            "name": "tonic-prost",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tonic-prost",
            "direct": true,
            "version": "0.14.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": true,
            "version": "0.52.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": true,
            "version": "0.59.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": true,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "zeroize",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "zeroize",
            "direct": true,
            "version": "1.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "github.com/ebitengine/purego",
            "direct": true,
            "version": "v0.10.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ebitengine/purego",
            "direct": true,
            "version": "v0.10.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ebitengine/purego",
            "direct": true,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "asherah",
            "direct": true,
            "version": "3.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "asherah",
            "direct": true,
            "version": "3.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "asherah",
            "direct": true,
            "version": "4.0.0-beta.1",
            "ecosystem": "npm"
          },
          {
            "name": "asherah",
            "direct": true,
            "version": "latest",
            "ecosystem": "npm"
          },
          {
            "name": "asherah",
            "direct": true,
            "version": "next",
            "ecosystem": "npm"
          },
          {
            "name": "adler2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "aead",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "aes",
            "direct": false,
            "version": "0.8.4",
            "ecosystem": "crates"
          },
          {
            "name": "aes-gcm",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "allocator-api2",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "android_system_properties",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anes",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "anstream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle",
            "direct": false,
            "version": "1.0.14",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-parse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-query",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-wincon",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "crates"
          },
          {
            "name": "arbitrary",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "astral-tokio-tar",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "async-stream",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "crates"
          },
          {
            "name": "async-stream-impl",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "crates"
          },
          {
            "name": "atomic-waker",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-credential-types",
            "direct": false,
            "version": "1.2.11",
            "ecosystem": "crates"
          },
          {
            "name": "aws-credential-types",
            "direct": false,
            "version": "1.2.14",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-rs",
            "direct": false,
            "version": "1.16.2",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-sys",
            "direct": false,
            "version": "0.39.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-sys",
            "direct": false,
            "version": "0.39.1",
            "ecosystem": "crates"
          },
          {
            "name": "aws-runtime",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-runtime",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-sso",
            "direct": false,
            "version": "1.93.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-sso",
            "direct": false,
            "version": "1.96.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-ssooidc",
            "direct": false,
            "version": "1.95.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-ssooidc",
            "direct": false,
            "version": "1.98.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-sts",
            "direct": false,
            "version": "1.100.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sdk-sts",
            "direct": false,
            "version": "1.97.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sigv4",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "crates"
          },
          {
            "name": "aws-sigv4",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-async",
            "direct": false,
            "version": "1.2.11",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-async",
            "direct": false,
            "version": "1.2.14",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-http",
            "direct": false,
            "version": "0.63.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-http",
            "direct": false,
            "version": "0.63.6",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-http-client",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-http-client",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-json",
            "direct": false,
            "version": "0.62.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-json",
            "direct": false,
            "version": "0.62.5",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-observability",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-observability",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-query",
            "direct": false,
            "version": "0.60.13",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-query",
            "direct": false,
            "version": "0.60.15",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-runtime",
            "direct": false,
            "version": "1.10.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-runtime-api",
            "direct": false,
            "version": "1.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-runtime-api",
            "direct": false,
            "version": "1.11.6",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-types",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-types",
            "direct": false,
            "version": "1.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-xml",
            "direct": false,
            "version": "0.60.13",
            "ecosystem": "crates"
          },
          {
            "name": "aws-smithy-xml",
            "direct": false,
            "version": "0.60.15",
            "ecosystem": "crates"
          },
          {
            "name": "axum",
            "direct": false,
            "version": "0.8.8",
            "ecosystem": "crates"
          },
          {
            "name": "axum-core",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "crates"
          },
          {
            "name": "base64-simd",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "block-buffer",
            "direct": false,
            "version": "0.10.4",
            "ecosystem": "crates"
          },
          {
            "name": "block-buffer",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "bollard",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "crates"
          },
          {
            "name": "bollard-buildkit-proto",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "bollard-stubs",
            "direct": false,
            "version": "1.52.1-rc.29.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "bstr",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "btoi",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "bufstream",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "bumpalo",
            "direct": false,
            "version": "3.20.2",
            "ecosystem": "crates"
          },
          {
            "name": "bytecount",
            "direct": false,
            "version": "0.6.9",
            "ecosystem": "crates"
          },
          {
            "name": "byteorder",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "bytes-utils",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "cast",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.2.56",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.2.60",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg_aliases",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "chacha20",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "chrono",
            "direct": false,
            "version": "0.4.44",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium-io",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium-ll",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "cipher",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "crates"
          },
          {
            "name": "clap_builder",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "clap_derive",
            "direct": false,
            "version": "4.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "clap_lex",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "cmake",
            "direct": false,
            "version": "0.1.57",
            "ecosystem": "crates"
          },
          {
            "name": "cmake",
            "direct": false,
            "version": "0.1.58",
            "ecosystem": "crates"
          },
          {
            "name": "cmov",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "colorchoice",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "combine",
            "direct": false,
            "version": "4.6.7",
            "ecosystem": "crates"
          },
          {
            "name": "console",
            "direct": false,
            "version": "0.16.3",
            "ecosystem": "crates"
          },
          {
            "name": "const-oid",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "crates"
          },
          {
            "name": "convert_case",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "convert_case",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation-sys",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "crates"
          },
          {
            "name": "cpufeatures",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "cpufeatures",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "crc32fast",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "criterion",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "criterion",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "criterion-plot",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-deque",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-queue",
            "direct": false,
            "version": "0.3.12",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.21",
            "ecosystem": "crates"
          },
          {
            "name": "crunchy",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "crypto-common",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "crypto-common",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "ctor",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "ctr",
            "direct": false,
            "version": "0.9.2",
            "ecosystem": "crates"
          },
          {
            "name": "ctutils",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "cucumber",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "cucumber",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "crates"
          },
          {
            "name": "cucumber-codegen",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "crates"
          },
          {
            "name": "cucumber-expressions",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "darling",
            "direct": false,
            "version": "0.20.11",
            "ecosystem": "crates"
          },
          {
            "name": "darling",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "crates"
          },
          {
            "name": "darling_core",
            "direct": false,
            "version": "0.20.11",
            "ecosystem": "crates"
          },
          {
            "name": "darling_core",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "crates"
          },
          {
            "name": "darling_macro",
            "direct": false,
            "version": "0.20.11",
            "ecosystem": "crates"
          },
          {
            "name": "darling_macro",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "crates"
          },
          {
            "name": "deranged",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "derive_arbitrary",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "derive_more",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "derive_more-impl",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "derive_utils",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "crates"
          },
          {
            "name": "digest",
            "direct": false,
            "version": "0.10.7",
            "ecosystem": "crates"
          },
          {
            "name": "digest",
            "direct": false,
            "version": "0.11.2",
            "ecosystem": "crates"
          },
          {
            "name": "displaydoc",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "docker_credential",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "dunce",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "dyn-clone",
            "direct": false,
            "version": "1.0.20",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "encode_unicode",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "env_filter",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "errno",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "etcetera",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "fallible-iterator",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "fallible-iterator",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "fallible-streaming-iterator",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "ferroid",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "filetime",
            "direct": false,
            "version": "0.2.27",
            "ecosystem": "crates"
          },
          {
            "name": "find-msvc-tools",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "fixedbitset",
            "direct": false,
            "version": "0.5.7",
            "ecosystem": "crates"
          },
          {
            "name": "flate2",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "fnv",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "crates"
          },
          {
            "name": "foldhash",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "foldhash",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "foreign-types",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "foreign-types-shared",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "form_urlencoded",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "fs_extra",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "futures",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "futures",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-channel",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-core",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-executor",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-io",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-macro",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-sink",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-task",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-util",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "generic-array",
            "direct": false,
            "version": "0.14.7",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "ghash",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "gherkin",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "globset",
            "direct": false,
            "version": "0.4.18",
            "ecosystem": "crates"
          },
          {
            "name": "globwalk",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "h2",
            "direct": false,
            "version": "0.4.13",
            "ecosystem": "crates"
          },
          {
            "name": "half",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.15.5",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "hashlink",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "hermit-abi",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "hex",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "hmac",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "hmac",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "home",
            "direct": false,
            "version": "0.5.12",
            "ecosystem": "crates"
          },
          {
            "name": "http",
            "direct": false,
            "version": "0.2.12",
            "ecosystem": "crates"
          },
          {
            "name": "http",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "http-body",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "http-body",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "http-body-util",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "httparse",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "httpdate",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "humantime",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "hybrid-array",
            "direct": false,
            "version": "0.4.10",
            "ecosystem": "crates"
          },
          {
            "name": "hyper",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "hyper",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-named-pipe",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-rustls",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-rustls",
            "direct": false,
            "version": "0.27.8",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-timeout",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-util",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "hyper-util",
            "direct": false,
            "version": "0.1.20",
            "ecosystem": "crates"
          },
          {
            "name": "hyperlocal",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "iana-time-zone",
            "direct": false,
            "version": "0.1.65",
            "ecosystem": "crates"
          },
          {
            "name": "iana-time-zone-haiku",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_collections",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_collections",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_locale_core",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_locale_core",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer_data",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties_data",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_provider",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_provider",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "id-arena",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "ident_case",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna_adapter",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "0.4.25",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "1.9.3",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "inflections",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "inout",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "inventory",
            "direct": false,
            "version": "0.3.24",
            "ecosystem": "crates"
          },
          {
            "name": "io-enum",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "ipnet",
            "direct": false,
            "version": "2.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "iri-string",
            "direct": false,
            "version": "0.7.12",
            "ecosystem": "crates"
          },
          {
            "name": "is-terminal",
            "direct": false,
            "version": "0.4.17",
            "ecosystem": "crates"
          },
          {
            "name": "is_terminal_polyfill",
            "direct": false,
            "version": "1.70.2",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": false,
            "version": "0.10.5",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": false,
            "version": "0.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "java-locator",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "jiff",
            "direct": false,
            "version": "0.2.23",
            "ecosystem": "crates"
          },
          {
            "name": "jiff-static",
            "direct": false,
            "version": "0.2.23",
            "ecosystem": "crates"
          },
          {
            "name": "jni-macros",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys-macros",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jobserver",
            "direct": false,
            "version": "0.1.34",
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": "0.3.91",
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": "0.3.95",
            "ecosystem": "crates"
          },
          {
            "name": "leb128fmt",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "libfuzzer-sys",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "libloading",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "libloading",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "libloading",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "libredox",
            "direct": false,
            "version": "0.1.14",
            "ecosystem": "crates"
          },
          {
            "name": "libredox",
            "direct": false,
            "version": "0.1.16",
            "ecosystem": "crates"
          },
          {
            "name": "libsqlite3-sys",
            "direct": false,
            "version": "0.36.0",
            "ecosystem": "crates"
          },
          {
            "name": "libz-sys",
            "direct": false,
            "version": "1.1.25",
            "ecosystem": "crates"
          },
          {
            "name": "libz-sys",
            "direct": false,
            "version": "1.1.28",
            "ecosystem": "crates"
          },
          {
            "name": "linked-hash-map",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "litemap",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "litemap",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "lock_api",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "lru-slab",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "matchit",
            "direct": false,
            "version": "0.8.4",
            "ecosystem": "crates"
          },
          {
            "name": "md-5",
            "direct": false,
            "version": "0.10.6",
            "ecosystem": "crates"
          },
          {
            "name": "md-5",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "0.3.17",
            "ecosystem": "crates"
          },
          {
            "name": "miniz_oxide",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "mio",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "mio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "multimap",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "mysql-common-derive",
            "direct": false,
            "version": "0.32.1",
            "ecosystem": "crates"
          },
          {
            "name": "mysql_common",
            "direct": false,
            "version": "0.36.2",
            "ecosystem": "crates"
          },
          {
            "name": "named_pipe",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "napi-build",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "napi-build",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "napi-derive-backend",
            "direct": false,
            "version": "5.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "napi-sys",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "nohash-hasher",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "nom",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "nom_locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "num",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "num-bigint",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "num-complex",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "num-conv",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "num-conv",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "num-integer",
            "direct": false,
            "version": "0.1.46",
            "ecosystem": "crates"
          },
          {
            "name": "num-iter",
            "direct": false,
            "version": "0.1.45",
            "ecosystem": "crates"
          },
          {
            "name": "num-rational",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": false,
            "version": "0.2.19",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-core-foundation",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-system-configuration",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell_polyfill",
            "direct": false,
            "version": "1.70.2",
            "ecosystem": "crates"
          },
          {
            "name": "oorandom",
            "direct": false,
            "version": "11.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "opaque-debug",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-macros",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-probe",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-src",
            "direct": false,
            "version": "300.5.5+3.5.5",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-src",
            "direct": false,
            "version": "300.6.0+3.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-sys",
            "direct": false,
            "version": "0.9.115",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-sys",
            "direct": false,
            "version": "0.9.116",
            "ecosystem": "crates"
          },
          {
            "name": "outref",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot_core",
            "direct": false,
            "version": "0.9.12",
            "ecosystem": "crates"
          },
          {
            "name": "parse-display",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "parse-display-derive",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "peg",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "peg-macros",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "peg-runtime",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "pem",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "petgraph",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "phf",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_shared",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-internal",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-lite",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "pin-utils",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "pkg-config",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "pkg-config",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "plain",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "plotters",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "plotters-backend",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "plotters-svg",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "polyval",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic-util",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "postgres-protocol",
            "direct": false,
            "version": "0.6.10",
            "ecosystem": "crates"
          },
          {
            "name": "postgres-protocol",
            "direct": false,
            "version": "0.6.11",
            "ecosystem": "crates"
          },
          {
            "name": "postgres-types",
            "direct": false,
            "version": "0.2.12",
            "ecosystem": "crates"
          },
          {
            "name": "postgres-types",
            "direct": false,
            "version": "0.2.13",
            "ecosystem": "crates"
          },
          {
            "name": "potential_utf",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "potential_utf",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "powerfmt",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "ppv-lite86",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "prettyplease",
            "direct": false,
            "version": "0.2.37",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-crate",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-error-attr2",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-error2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "proptest",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "proptest",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "prost-build",
            "direct": false,
            "version": "0.14.3",
            "ecosystem": "crates"
          },
          {
            "name": "prost-derive",
            "direct": false,
            "version": "0.14.4",
            "ecosystem": "crates"
          },
          {
            "name": "prost-types",
            "direct": false,
            "version": "0.14.3",
            "ecosystem": "crates"
          },
          {
            "name": "pulldown-cmark",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "pulldown-cmark-to-cmark",
            "direct": false,
            "version": "22.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-ffi",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros-backend",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "quick-error",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "quinn",
            "direct": false,
            "version": "0.11.9",
            "ecosystem": "crates"
          },
          {
            "name": "quinn-proto",
            "direct": false,
            "version": "0.11.14",
            "ecosystem": "crates"
          },
          {
            "name": "quinn-udp",
            "direct": false,
            "version": "0.5.14",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "rand_xorshift",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "redox_syscall",
            "direct": false,
            "version": "0.5.18",
            "ecosystem": "crates"
          },
          {
            "name": "redox_syscall",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "crates"
          },
          {
            "name": "ref-cast",
            "direct": false,
            "version": "1.0.25",
            "ecosystem": "crates"
          },
          {
            "name": "ref-cast-impl",
            "direct": false,
            "version": "1.0.25",
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "1.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-lite",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.10",
            "ecosystem": "crates"
          },
          {
            "name": "rsqlite-vfs",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-hash",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "rustc_version",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustls",
            "direct": false,
            "version": "0.23.37",
            "ecosystem": "crates"
          },
          {
            "name": "rustls",
            "direct": false,
            "version": "0.23.38",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-native-certs",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-pki-types",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-webpki",
            "direct": false,
            "version": "0.103.13",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "rusty-fork",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.23",
            "ecosystem": "crates"
          },
          {
            "name": "saa",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "same-file",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "saturating",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "schannel",
            "direct": false,
            "version": "0.1.29",
            "ecosystem": "crates"
          },
          {
            "name": "schemars",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "schemars",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "scopeguard",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "sdd",
            "direct": false,
            "version": "3.0.10",
            "ecosystem": "crates"
          },
          {
            "name": "sdd",
            "direct": false,
            "version": "4.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "sealed",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "security-framework",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "security-framework-sys",
            "direct": false,
            "version": "2.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "1.0.27",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "1.0.28",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_repr",
            "direct": false,
            "version": "0.1.20",
            "ecosystem": "crates"
          },
          {
            "name": "serde_urlencoded",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "serde_with",
            "direct": false,
            "version": "3.18.0",
            "ecosystem": "crates"
          },
          {
            "name": "serde_with_macros",
            "direct": false,
            "version": "3.18.0",
            "ecosystem": "crates"
          },
          {
            "name": "serial_test",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serial_test",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "serial_test_derive",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "sha1",
            "direct": false,
            "version": "0.10.6",
            "ecosystem": "crates"
          },
          {
            "name": "sha2",
            "direct": false,
            "version": "0.10.9",
            "ecosystem": "crates"
          },
          {
            "name": "sha2",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "shlex",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook-registry",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "crates"
          },
          {
            "name": "simd-adler32",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "crates"
          },
          {
            "name": "simd-adler32",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "simd_cesu8",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "simdutf8",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "siphasher",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "slab",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "smallvec",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "crates"
          },
          {
            "name": "smart-default",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "smawk",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "socket2",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "sqlite-wasm-rs",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "stable_deref_trait",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "stringprep",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "strsim",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "structmeta",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "structmeta-derive",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "sync_wrapper",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "synthez",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "synthez-codegen",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "synthez-core",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "target-lexicon",
            "direct": false,
            "version": "0.13.5",
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": "3.27.0",
            "ecosystem": "crates"
          },
          {
            "name": "termcolor",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "terminal_size",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "crates"
          },
          {
            "name": "testcontainers",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "testcontainers",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "crates"
          },
          {
            "name": "testcontainers-modules",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "testcontainers-modules",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "textwrap",
            "direct": false,
            "version": "0.16.2",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "time",
            "direct": false,
            "version": "0.3.47",
            "ecosystem": "crates"
          },
          {
            "name": "time-core",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "crates"
          },
          {
            "name": "time-macros",
            "direct": false,
            "version": "0.2.27",
            "ecosystem": "crates"
          },
          {
            "name": "tinystr",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "tinystr",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "tinytemplate",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec_macros",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-macros",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-macros",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-native-tls",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-postgres",
            "direct": false,
            "version": "0.7.16",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-postgres",
            "direct": false,
            "version": "0.7.17",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-rustls",
            "direct": false,
            "version": "0.26.4",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-util",
            "direct": false,
            "version": "0.7.18",
            "ecosystem": "crates"
          },
          {
            "name": "toml_datetime",
            "direct": false,
            "version": "1.0.0+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_datetime",
            "direct": false,
            "version": "1.1.1+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_edit",
            "direct": false,
            "version": "0.25.11+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_edit",
            "direct": false,
            "version": "0.25.4+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_parser",
            "direct": false,
            "version": "1.0.9+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_parser",
            "direct": false,
            "version": "1.1.2+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "tonic-build",
            "direct": false,
            "version": "0.14.6",
            "ecosystem": "crates"
          },
          {
            "name": "tonic-prost-build",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tonic-prost-build",
            "direct": false,
            "version": "0.14.6",
            "ecosystem": "crates"
          },
          {
            "name": "tower",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "tower",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "tower-http",
            "direct": false,
            "version": "0.6.8",
            "ecosystem": "crates"
          },
          {
            "name": "tower-layer",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "tower-service",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "tracing",
            "direct": false,
            "version": "0.1.44",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-attributes",
            "direct": false,
            "version": "0.1.31",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-core",
            "direct": false,
            "version": "0.1.36",
            "ecosystem": "crates"
          },
          {
            "name": "try-lock",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "twox-hash",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "typed-builder",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "crates"
          },
          {
            "name": "typed-builder-macro",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "crates"
          },
          {
            "name": "typenum",
            "direct": false,
            "version": "1.19.0",
            "ecosystem": "crates"
          },
          {
            "name": "unarray",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "unicase",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-bidi",
            "direct": false,
            "version": "0.3.18",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-linebreak",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-normalization",
            "direct": false,
            "version": "0.1.25",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-properties",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-segmentation",
            "direct": false,
            "version": "1.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-width",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-xid",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "universal-hash",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "untrusted",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "ureq",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "ureq-proto",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": false,
            "version": "2.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "urlencoding",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "utf8-zero",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "utf8_iter",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "utf8parse",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "1.22.0",
            "ecosystem": "crates"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "1.23.0",
            "ecosystem": "crates"
          },
          {
            "name": "vcpkg",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "crates"
          },
          {
            "name": "version_check",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "vsimd",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "wait-timeout",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "want",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "wasi",
            "direct": false,
            "version": "0.11.1+wasi-snapshot-preview1",
            "ecosystem": "crates"
          },
          {
            "name": "wasi",
            "direct": false,
            "version": "0.14.7+wasi-0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.2+wasi-0.2.9",
            "ecosystem": "crates"
          },
          {
            "name": "wasip3",
            "direct": false,
            "version": "0.4.0+wasi-0.3.0-rc-2026-01-06",
            "ecosystem": "crates"
          },
          {
            "name": "wasite",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-futures",
            "direct": false,
            "version": "0.4.68",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro-support",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro-support",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-shared",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-shared",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-encoder",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-metadata",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasmparser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": "0.3.91",
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": "0.3.95",
            "ecosystem": "crates"
          },
          {
            "name": "web-time",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "webpki-roots",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "which",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "which",
            "direct": false,
            "version": "8.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "whoami",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "winapi",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-i686-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-util",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-x86_64-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows",
            "direct": false,
            "version": "0.58.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-core",
            "direct": false,
            "version": "0.58.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-core",
            "direct": false,
            "version": "0.62.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-implement",
            "direct": false,
            "version": "0.58.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-implement",
            "direct": false,
            "version": "0.60.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-interface",
            "direct": false,
            "version": "0.58.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-interface",
            "direct": false,
            "version": "0.59.3",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-result",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-result",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-strings",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-strings",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "winnow",
            "direct": false,
            "version": "0.7.15",
            "ecosystem": "crates"
          },
          {
            "name": "winnow",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-core",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust-macro",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-component",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-parser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "writeable",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "writeable",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "xattr",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "xmlparser",
            "direct": false,
            "version": "0.13.6",
            "ecosystem": "crates"
          },
          {
            "name": "yoke",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "yoke",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "yoke-derive",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "yoke-derive",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.42",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.48",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.42",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.48",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom-derive",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom-derive",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "zeroize_derive",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "zerotrie",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "zerotrie",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec",
            "direct": false,
            "version": "0.11.5",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec",
            "direct": false,
            "version": "0.11.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec-derive",
            "direct": false,
            "version": "0.11.2",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec-derive",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "github.com/awnumar/memcall",
            "direct": false,
            "version": "v0.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/awnumar/memcall",
            "direct": false,
            "version": "v0.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/awnumar/memguard",
            "direct": false,
            "version": "v0.22.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/awnumar/memguard",
            "direct": false,
            "version": "v0.22.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go",
            "direct": false,
            "version": "v1.44.265",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go",
            "direct": false,
            "version": "v1.55.8",
            "ecosystem": "go"
          },
          {
            "name": "github.com/goburrow/cache",
            "direct": false,
            "version": "v0.1.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/godaddy/asherah/go/appencryption",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/godaddy/asherah/go/appencryption",
            "direct": false,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/godaddy/asherah/go/securememory",
            "direct": false,
            "version": "v0.1.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/godaddy/asherah/go/securememory",
            "direct": false,
            "version": "v0.1.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/jmespath/go-jmespath",
            "direct": false,
            "version": "v0.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pkg/errors",
            "direct": false,
            "version": "v0.9.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rcrowley/go-metrics",
            "direct": false,
            "version": "v0.0.0-20201227073835-cf1acfcdf475",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.45.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.48.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.48.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.38.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.39.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.42.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.32.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genproto/googleapis/rpc",
            "direct": false,
            "version": "v0.0.0-20251202230838-ff82c1b0f217",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/grpc",
            "direct": false,
            "version": "v1.79.3",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.11",
            "ecosystem": "go"
          },
          {
            "name": "com.godaddy.asherah:appencryption",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.godaddy.asherah:appencryption",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "maven"
          },
          {
            "name": "com.godaddy.asherah:appencryption",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "maven"
          },
          {
            "name": "io.micrometer:micrometer-core",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-compiler-plugin",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-gpg-plugin",
            "direct": false,
            "version": "3.2.8",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-javadoc-plugin",
            "direct": false,
            "version": "3.12.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-shade-plugin",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-source-plugin",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-surefire-plugin",
            "direct": false,
            "version": "3.5.6",
            "ecosystem": "maven"
          },
          {
            "name": "org.codehaus.mojo:exec-maven-plugin",
            "direct": false,
            "version": "3.6.3",
            "ecosystem": "maven"
          },
          {
            "name": "org.json:json",
            "direct": false,
            "version": "20240303",
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter",
            "direct": false,
            "version": "5.14.4",
            "ecosystem": "maven"
          },
          {
            "name": "org.openjdk.jmh:jmh-core",
            "direct": false,
            "version": "1.37",
            "ecosystem": "maven"
          },
          {
            "name": "org.openjdk.jmh:jmh-generator-annprocess",
            "direct": false,
            "version": "1.37",
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-api",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-simple",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-simple",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "maven"
          },
          {
            "name": "org.sonatype.central:central-publishing-maven-plugin",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "maven"
          },
          {
            "name": "../asherah-node",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/cli",
            "direct": false,
            "version": "2.18.4",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "8.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "8.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "BenchmarkDotNet",
            "direct": false,
            "version": "0.15.8",
            "ecosystem": "nuget"
          },
          {
            "name": "GoDaddy.Asherah.AppEncryption",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "nuget"
          },
          {
            "name": "GoDaddy.Asherah.AppEncryption",
            "direct": false,
            "version": "0.2.10",
            "ecosystem": "nuget"
          },
          {
            "name": "GoDaddy.Asherah.SecureMemory",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging",
            "direct": false,
            "version": "10.0.7",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Abstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Newtonsoft.Json",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ext-ffi",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ext-json",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "friendsofphp/php-cs-fixer",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "php",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpstan/phpstan",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ffi",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "logger",
            "direct": false,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest",
            "direct": false,
            "version": "5.27.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rake",
            "direct": false,
            "version": "13.4.2",
            "ecosystem": "rubygems"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 784,
        "direct_count": 127,
        "indirect_count": 657
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 10,
        "merged_prs": 310,
        "open_issues": 1,
        "closed_ratio": 0.8,
        "closed_issues": 4,
        "closed_unmerged_prs": 39
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "jgowdy-godaddy",
          "commits": 508,
          "avatar_url": "https://avatars.githubusercontent.com/u/130084966?v=4"
        },
        {
          "type": "User",
          "login": "jgowdy",
          "commits": 98,
          "avatar_url": "https://avatars.githubusercontent.com/u/1331960?v=4"
        },
        {
          "type": "User",
          "login": "chief-micco",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/194434024?v=4"
        },
        {
          "type": "User",
          "login": "scourtney-godaddy",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/109175789?v=4"
        },
        {
          "type": "User",
          "login": "dnasevic-godaddy",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/84343272?v=4"
        }
      ],
      "contributors_sampled": 5,
      "top_contributor_share": 0.808
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "auto-rerun-failed-publish.yml",
        "benchmark-cold.yml",
        "benchmark-hot.yml",
        "benchmark-memory.yml",
        "benchmark-setup.yml",
        "benchmark-warm.yml",
        "ci.yml",
        "codeql.yml",
        "php-aws-integration.yml",
        "publish-crates.yml",
        "publish-maven.yml",
        "publish-npm.yml",
        "publish-nuget.yml",
        "publish-php.yml",
        "publish-pypi.yml",
        "publish-rubygems.yml",
        "publish-server.yml",
        "release-cobhan.yml",
        "test-runner.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".php-cs-fixer.php",
        ".rubocop.yml",
        "phpstan.neon"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "go.sum",
        "package-lock.json",
        "packages.lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 3,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 2,
            "reason": "Found 6/22 approved changesets -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "no dependencies found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 4,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "07a27b18afa522b7436d2cc35a85055e7333dc27",
        "ran_at": "2026-07-27T11:25:02Z",
        "aggregate_score": 6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-25T06:33:25Z",
      "oldest_open_prs": [
        {
          "number": 343,
          "created_at": "2026-06-20T03:17:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 345,
          "created_at": "2026-06-23T02:43:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 353,
          "created_at": "2026-07-04T05:49:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 355,
          "created_at": "2026-07-10T19:04:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 356,
          "created_at": "2026-07-10T19:08:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 357,
          "created_at": "2026-07-10T19:59:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 360,
          "created_at": "2026-07-15T23:24:38Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 362,
          "created_at": "2026-07-21T02:43:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 363,
          "created_at": "2026-07-21T02:48:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 364,
          "created_at": "2026-07-21T02:51:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-16T09:32:07Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": [
        {
          "number": 361,
          "created_at": "2026-07-16T15:32:48Z",
          "last_comment_at": "2026-07-17T14:28:51Z",
          "last_comment_author": "chief-micco"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/godaddy/asherah-ffi",
    "host": "github.com",
    "name": "asherah-ffi",
    "owner": "godaddy"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 62,
        "vitality": 85,
        "community": 40,
        "governance": 63,
        "engineering": 96
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 85,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "commits_last_year": 667,
              "human_commit_share": 0.84,
              "days_since_last_push": 6,
              "active_weeks_last_year": 25
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "25/52 weeks with commits",
                "points": 17.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 25
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "667 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 667
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v1.0.0",
              "releases_from_tags": false,
              "days_since_latest_release": 37,
              "mean_days_between_releases": 3.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 37 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 37
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~3.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 3.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 11,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 11 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 40,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 1,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "at_risk",
            "name": "Ecosystem adoption (downloads)",
            "note": null,
            "notes": [],
            "value": 38,
            "inputs": {
              "packages": [
                "godaddy/asherah",
                "github.com/godaddy/asherah-ffi/asherah-go",
                "asherah",
                "asherah-ffi"
              ],
              "dependents": 0,
              "ecosystems": "crates, go, packagist",
              "total_downloads": 2361,
              "monthly_downloads": 775
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "775 downloads/month across crates, go, packagist",
                "points": 38.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 775,
                      "ecosystems": "crates, go, packagist"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "0 packages depend on it",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "registry_dependents",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 63,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 23,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 5,
              "top_contributor_share": 0.808
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 81% of commits",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 81
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "5 contributors",
                "points": 6.8,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "merged_prs": 310,
              "open_issues": 1,
              "closed_issues": 4,
              "issue_closed_ratio": 0.8,
              "closed_unmerged_prs": 39
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "80% of issues closed",
                "points": 37.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 80
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "310/349 decided PRs merged",
                "points": 34,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 310,
                      "decided": 349
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 6/22 approved changesets -- score normalized to 2",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "followers": 228,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "godaddy",
              "public_repos": 215,
              "account_age_days": 5287
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "228 followers of godaddy",
                "points": 17,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 228,
                      "login": "godaddy"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "215 public repos, account ~14 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 215
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "godaddy/asherah",
                "github.com/godaddy/asherah-ffi/asherah-go",
                "asherah",
                "asherah-ffi"
              ],
              "ecosystems": "crates, go, packagist",
              "any_deprecated": false,
              "min_days_since_publish": 37
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "4 package(s) on crates, go, packagist",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 4,
                      "ecosystems": "crates, go, packagist"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 37 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 37
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "19 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "excellent",
        "name": "Engineering Quality",
        "value": 96,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "19 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".php-cs-fixer.php, .rubocop.yml, phpstan.neon",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".php-cs-fixer.php, .rubocop.yml, phpstan.neon"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "cryptography",
                "dotnet",
                "encryption",
                "envelope-encryption",
                "ffi",
                "go",
                "java",
                "key-rotation",
                "nodejs",
                "python",
                "ruby",
                "rust",
                "security"
              ],
              "has_wiki": false,
              "homepage": "https://github.com/godaddy/asherah-ffi",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://github.com/godaddy/asherah-ffi",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "13 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 62,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 14,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 4,
              "scorecard_aggregate": 6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 6/22 approved changesets -- score normalized to 2",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "moderate",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 708 resolved dependencies against OSV; 76 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 708
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 76
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 69,
            "inputs": {
              "source": "osv",
              "advisories": 90,
              "affected_packages": 23,
              "assessed_packages": 708,
              "unassessed_packages": 76,
              "affected_by_severity": "critical 3, high 4, moderate 5, unknown 11",
              "direct_affected_packages": 4
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "4 affected: openssl 0.10.78 (high 7.5), anyhow 1.0.102 (unknown), scc 2.4.0 (unknown), +1 more",
                "points": 11.4,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 4,
                      "packages": "openssl 0.10.78 (high 7.5), anyhow 1.0.102 (unknown), scc 2.4.0 (unknown)"
                    }
                  },
                  {
                    "code": "advisories_affected_more",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 708,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "excellent",
        "name": "AI Readiness",
        "value": 90,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.964,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 10921
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "81 of 84 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 81,
                      "sampled": 84
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 94,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "go.sum",
                "package-lock.json",
                "packages.lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "asherah-py/asherah/py.typed"
              ],
              "agent_commit_share": 0.08,
              "toolchain_manifests": [
                "Cargo.toml",
                "asherah-cobhan/Cargo.toml",
                "asherah-cobhan/interop/go.mod",
                "asherah-config/Cargo.toml",
                "asherah-dotnet/src/GoDaddy.Asherah.Encryption.Compat/GoDaddy.Asherah.Encryption.Compat.csproj",
                "asherah-dotnet/src/GoDaddy.Asherah.Encryption/GoDaddy.Asherah.Encryption.csproj",
                "asherah-dotnet/tests/GoDaddy.Asherah.Encryption.Compat.Tests/GoDaddy.Asherah.Encryption.Compat.Tests.csproj",
                "asherah-dotnet/tests/GoDaddy.Asherah.Encryption.Tests/GoDaddy.Asherah.Encryption.Tests.csproj",
                "asherah-ffi/Cargo.toml",
                "asherah-go/go.mod",
                "asherah-java/Cargo.toml",
                "asherah-java/java/pom.xml",
                "asherah-node/Cargo.toml",
                "asherah-py/Cargo.toml",
                "asherah-server/Cargo.toml",
                "asherah/Cargo.toml",
                "benchmarks/asherah-bench/Cargo.toml",
                "benchmarks/dotnet-bench-canonical/dotnet-bench-canonical.csproj",
                "benchmarks/dotnet-bench-newmetastore/dotnet-bench-newmetastore.csproj",
                "benchmarks/dotnet-bench/dotnet-bench.csproj",
                "benchmarks/go-bench/go.mod",
                "benchmarks/go-wrapper/go.mod",
                "benchmarks/grpc-bench/go.mod",
                "benchmarks/java-bench-canonical/pom.xml",
                "benchmarks/java-bench/pom.xml",
                "benchmarks/native-bench/go-bench/go.mod",
                "benchmarks/native-bench/rust-bench/Cargo.toml",
                "fuzz/Cargo.toml",
                "interop-grpc/client/Cargo.toml",
                "interop/canonical-csharp/CanonicalCsharpProbe.csproj",
                "interop/canonical-go/go.mod",
                "interop/canonical-java/pom.xml",
                "samples/dotnet/Sample.csproj",
                "samples/go/go.mod",
                "samples/rust/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0.16
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Cargo.toml, asherah-cobhan/Cargo.toml, asherah-cobhan/interop/go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Cargo.toml, asherah-cobhan/Cargo.toml, asherah-cobhan/interop/go.mod"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".php-cs-fixer.php, .rubocop.yml, phpstan.neon",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".php-cs-fixer.php, .rubocop.yml, phpstan.neon"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "asherah-py/asherah/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "asherah-py/asherah/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "8 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 8,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "16 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 16,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Rust",
              "largest_source_bytes": 198446,
              "source_files_sampled": 352,
              "oversized_source_files": 4
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Rust (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "4/352 source files over 60KB",
                "points": 54.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 352,
                      "oversized": 4
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "examples",
                "samples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "asherah-server/proto/appencryption.proto",
                "interop-grpc/client/proto/appencryption.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "asherah-server/proto/appencryption.proto, interop-grpc/client/proto/appencryption.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "asherah-server/proto/appencryption.proto, interop-grpc/client/proto/appencryption.proto"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples, samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples, samples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Could not fetch crates package 'asherah-workspace' from its registry",
    "Could not fetch crates package 'asherah-py' from its registry",
    "Could not fetch crates package 'asherah-java' from its registry",
    "Could not fetch crates package 'asherah-node' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T11:25:20.892180Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/godaddy/asherah-ffi.svg",
  "full_name": "godaddy/asherah-ffi",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计Packagist, Go, crates.io.