Звіт у форматі 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"
}