Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [
"wasm",
"javascript",
"rust",
"binding-generator",
"rust-wasm"
],
"is_fork": false,
"size_kb": 38528,
"has_wiki": false,
"homepage": "https://wasm-bindgen.github.io/wasm-bindgen/",
"languages": {
"HTML": 12053,
"Just": 4805,
"Rust": 15330360,
"Shell": 4747,
"JavaScript": 593259,
"TypeScript": 12894,
"WebAssembly": 202802,
"RenderScript": 4
},
"pushed_at": "2026-07-22T15:42:25Z",
"created_at": "2017-12-18T20:38:44Z",
"owner_type": "Organization",
"updated_at": "2026-07-22T13:45:59Z",
"description": "Facilitating high-level interactions between Wasm modules and JavaScript",
"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": null,
"name": null,
"type": "Organization",
"login": "wasm-bindgen",
"company": null,
"location": null,
"followers": 136,
"avatar_url": "https://avatars.githubusercontent.com/u/220058222?v=4",
"created_at": "2025-07-09T16:40:06Z",
"is_verified": null,
"public_repos": 6,
"account_age_days": 378
},
"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": "0.2.126",
"kind": "patch",
"published_at": "2026-06-24T19:58:54Z"
},
{
"tag": "0.2.125",
"kind": "patch",
"published_at": "2026-06-12T22:10:56Z"
},
{
"tag": "0.2.123",
"kind": "patch",
"published_at": "2026-06-08T21:53:31Z"
},
{
"tag": "0.2.122",
"kind": "patch",
"published_at": "2026-05-22T17:26:01Z"
},
{
"tag": "0.2.121",
"kind": "patch",
"published_at": "2026-05-07T00:53:27Z"
},
{
"tag": "0.2.120",
"kind": "patch",
"published_at": "2026-04-28T07:49:51Z"
},
{
"tag": "0.2.118",
"kind": "patch",
"published_at": "2026-04-10T16:58:04Z"
},
{
"tag": "0.2.117",
"kind": "patch",
"published_at": "2026-03-31T23:35:25Z"
},
{
"tag": "0.2.116",
"kind": "patch",
"published_at": "2026-03-31T00:19:52Z"
},
{
"tag": "0.2.115",
"kind": "patch",
"published_at": "2026-03-27T22:31:29Z"
},
{
"tag": "0.2.114",
"kind": "patch",
"published_at": "2026-02-27T19:18:10Z"
},
{
"tag": "0.2.113",
"kind": "patch",
"published_at": "2026-02-24T22:35:25Z"
},
{
"tag": "0.2.112",
"kind": "patch",
"published_at": "2026-02-24T03:58:15Z"
},
{
"tag": "0.2.111",
"kind": "patch",
"published_at": "2026-02-21T21:03:20Z"
},
{
"tag": "0.2.110",
"kind": "patch",
"published_at": "2026-02-21T00:14:33Z"
},
{
"tag": "0.2.109",
"kind": "patch",
"published_at": "2026-02-20T16:58:00Z"
},
{
"tag": "0.2.108",
"kind": "patch",
"published_at": "2026-01-15T01:05:35Z"
},
{
"tag": "0.2.107",
"kind": "patch",
"published_at": "2026-01-14T23:31:24Z"
},
{
"tag": "0.2.106",
"kind": "patch",
"published_at": "2025-11-28T02:20:58Z"
},
{
"tag": "0.2.105",
"kind": "patch",
"published_at": "2025-10-27T19:04:40Z"
},
{
"tag": "0.2.104",
"kind": "patch",
"published_at": "2025-09-24T15:09:02Z"
},
{
"tag": "0.2.103",
"kind": "patch",
"published_at": "2025-09-17T12:52:28Z"
},
{
"tag": "0.2.102",
"kind": "patch",
"published_at": "2025-09-16T22:47:18Z"
},
{
"tag": "0.2.101",
"kind": "patch",
"published_at": "2025-09-04T19:19:17Z"
},
{
"tag": "0.2.100",
"kind": "patch",
"published_at": "2025-01-12T23:12:53Z"
},
{
"tag": "0.2.99",
"kind": "patch",
"published_at": "2024-12-07T01:14:16Z"
},
{
"tag": "0.2.98",
"kind": "patch",
"published_at": "2024-12-07T00:04:58Z"
},
{
"tag": "0.2.97",
"kind": "patch",
"published_at": "2024-11-30T08:31:41Z"
},
{
"tag": "0.2.96",
"kind": "patch",
"published_at": "2024-11-29T16:56:18Z"
},
{
"tag": "0.2.95",
"kind": "patch",
"published_at": "2024-10-10T22:13:43Z"
},
{
"tag": "0.2.94",
"kind": "patch",
"published_at": "2024-10-09T20:11:43Z"
},
{
"tag": "0.2.93",
"kind": "patch",
"published_at": "2024-08-12T23:56:49Z"
},
{
"tag": "0.2.92",
"kind": "patch",
"published_at": "2024-03-04T10:36:54Z"
},
{
"tag": "0.2.91",
"kind": "patch",
"published_at": "2024-02-06T11:47:26Z"
},
{
"tag": "0.2.90",
"kind": "patch",
"published_at": "2024-01-12T16:10:53Z"
},
{
"tag": "0.2.89",
"kind": "patch",
"published_at": "2023-11-27T15:33:30Z"
},
{
"tag": "0.2.88",
"kind": "patch",
"published_at": "2023-11-01T15:58:42Z"
},
{
"tag": "0.2.87",
"kind": "patch",
"published_at": "2023-06-12T19:39:10Z"
},
{
"tag": "0.2.86",
"kind": "patch",
"published_at": "2023-05-15T22:42:01Z"
},
{
"tag": "0.2.85",
"kind": "patch",
"published_at": "2023-05-09T14:35:07Z"
},
{
"tag": "0.2.84",
"kind": "patch",
"published_at": "2023-02-01T17:21:07Z"
},
{
"tag": "0.2.83",
"kind": "patch",
"published_at": "2022-09-12T14:38:13Z"
},
{
"tag": "0.2.82",
"kind": "patch",
"published_at": "2022-07-25T15:16:08Z"
},
{
"tag": "0.2.81",
"kind": "patch",
"published_at": "2022-06-14T23:30:58Z"
},
{
"tag": "0.2.80",
"kind": "patch",
"published_at": "2022-04-07T20:28:56Z"
},
{
"tag": "0.2.79",
"kind": "patch",
"published_at": "2022-01-19T21:21:08Z"
},
{
"tag": "0.2.78",
"kind": "patch",
"published_at": "2021-09-15T16:43:28Z"
},
{
"tag": "0.2.77",
"kind": "patch",
"published_at": "2021-09-08T16:29:23Z"
},
{
"tag": "0.2.76",
"kind": "patch",
"published_at": "2021-08-19T15:52:00Z"
},
{
"tag": "0.2.75",
"kind": "patch",
"published_at": "2021-08-02T16:06:06Z"
},
{
"tag": "0.2.74",
"kind": "patch",
"published_at": "2021-05-10T14:44:03Z"
},
{
"tag": "0.2.73",
"kind": "patch",
"published_at": "2021-03-29T15:29:40Z"
},
{
"tag": "0.2.72",
"kind": "patch",
"published_at": "2021-03-18T16:37:30Z"
},
{
"tag": "0.2.71",
"kind": "patch",
"published_at": "2021-02-26T17:02:18Z"
},
{
"tag": "0.2.70",
"kind": "patch",
"published_at": "2021-01-25T17:24:50Z"
},
{
"tag": "0.2.69",
"kind": "patch",
"published_at": "2020-11-30T19:02:41Z"
},
{
"tag": "0.2.68",
"kind": "patch",
"published_at": "2020-09-09T01:22:13Z"
},
{
"tag": "0.2.67",
"kind": "patch",
"published_at": "2020-07-28T21:54:33Z"
},
{
"tag": "0.2.66",
"kind": "patch",
"published_at": "2020-07-28T18:55:29Z"
},
{
"tag": "0.2.65",
"kind": "patch",
"published_at": "2020-07-15T15:36:40Z"
},
{
"tag": "0.2.64",
"kind": "patch",
"published_at": "2020-06-29T15:16:45Z"
},
{
"tag": "0.2.63",
"kind": "patch",
"published_at": "2020-05-27T15:32:49Z"
},
{
"tag": "0.2.62",
"kind": "patch",
"published_at": "2020-05-01T15:57:50Z"
},
{
"tag": "0.2.61",
"kind": "patch",
"published_at": "2020-04-29T16:53:38Z"
},
{
"tag": "0.2.60",
"kind": "patch",
"published_at": "2020-03-26T00:49:55Z"
},
{
"tag": "0.2.59",
"kind": "patch",
"published_at": "2020-03-03T17:34:07Z"
},
{
"tag": "0.2.58",
"kind": "patch",
"published_at": "2020-01-07T20:19:30Z"
},
{
"tag": "0.2.57",
"kind": "patch",
"published_at": "2020-01-06T19:57:04Z"
},
{
"tag": "0.2.56",
"kind": "patch",
"published_at": "2019-12-20T17:45:42Z"
},
{
"tag": "0.2.55",
"kind": "patch",
"published_at": "2019-11-19T17:33:59Z"
},
{
"tag": "0.2.54",
"kind": "patch",
"published_at": "2019-11-07T19:28:23Z"
},
{
"tag": "0.2.53",
"kind": "patch",
"published_at": "2019-10-29T15:09:52Z"
},
{
"tag": "0.2.52",
"kind": "patch",
"published_at": "2019-10-24T21:36:14Z"
},
{
"tag": "0.2.51",
"kind": "patch",
"published_at": "2019-09-26T20:31:39Z"
},
{
"tag": "0.2.50",
"kind": "patch",
"published_at": "2019-08-19T11:53:46Z"
},
{
"tag": "0.2.49",
"kind": "patch",
"published_at": "2019-08-14T19:07:16Z"
},
{
"tag": "0.2.48",
"kind": "patch",
"published_at": "2019-07-11T23:09:44Z"
},
{
"tag": "0.2.47",
"kind": "patch",
"published_at": "2019-06-19T22:11:03Z"
},
{
"tag": "0.2.46",
"kind": "patch",
"published_at": "2019-06-14T19:22:34Z"
},
{
"tag": "0.2.44",
"kind": "patch",
"published_at": "2019-05-20T17:06:49Z"
},
{
"tag": "0.2.43",
"kind": "patch",
"published_at": "2019-04-29T16:47:45Z"
},
{
"tag": "0.2.42",
"kind": "patch",
"published_at": "2019-04-12T17:03:41Z"
},
{
"tag": "0.2.41",
"kind": "patch",
"published_at": "2019-04-10T21:47:41Z"
},
{
"tag": "0.2.40",
"kind": "patch",
"published_at": "2019-03-22T01:39:09Z"
},
{
"tag": "0.2.39",
"kind": "patch",
"published_at": "2019-03-13T20:09:39Z"
},
{
"tag": "0.2.38",
"kind": "patch",
"published_at": "2019-03-04T21:30:55Z"
},
{
"tag": "0.2.37",
"kind": "patch",
"published_at": "2019-02-15T17:16:09Z"
},
{
"tag": "0.2.36",
"kind": "patch",
"published_at": "2019-02-12T22:04:12Z"
},
{
"tag": "0.2.35",
"kind": "patch",
"published_at": "2019-02-12T20:04:04Z"
},
{
"tag": "0.2.34",
"kind": "patch",
"published_at": "2019-02-12T03:38:30Z"
},
{
"tag": "0.2.33",
"kind": "patch",
"published_at": "2019-01-18T23:38:28Z"
},
{
"tag": "0.2.32",
"kind": "patch",
"published_at": "2019-01-16T21:54:38Z"
},
{
"tag": "0.2.31",
"kind": "patch",
"published_at": "2019-01-09T17:45:04Z"
},
{
"tag": "0.2.30",
"kind": "patch",
"published_at": "2019-01-07T16:07:28Z"
},
{
"tag": "0.2.29",
"kind": "patch",
"published_at": "2018-12-04T14:39:41Z"
},
{
"tag": "0.2.28",
"kind": "patch",
"published_at": "2018-11-12T18:47:42Z"
},
{
"tag": "0.2.27",
"kind": "patch",
"published_at": "2018-10-29T21:36:47Z"
},
{
"tag": "0.2.26",
"kind": "patch",
"published_at": "2018-10-29T20:13:10Z"
},
{
"tag": "0.2.25",
"kind": "patch",
"published_at": "2018-10-10T20:47:19Z"
},
{
"tag": "0.2.24",
"kind": "patch",
"published_at": "2018-10-05T18:51:07Z"
}
],
"recent_commits": [
{
"oid": "1a2860ea1c2d730150bb71b37969165f8c68ed2f",
"body": null,
"is_bot": false,
"headline": "Reserve thread memory after `memory.initial` (#5225)",
"author_name": "Noz Wu",
"author_login": "Spxg",
"committed_at": "2026-07-08T03:21:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c741370ded991b4540d60b0d3546cfe9a6633a84",
"body": null,
"is_bot": false,
"headline": "Mention tarpaulin in the docs (#5224)",
"author_name": "xd009642",
"author_login": "xd009642",
"committed_at": "2026-07-06T07:03:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed23e4939656143212a2b5a26ae1a8a2968e3af7",
"body": "…re = \"atomics\") plus prevent a memory leak (#5214)",
"is_bot": false,
"headline": "Fix compilation with (feature = \"std\", panic = \"unwind\", target_featu…",
"author_name": "Ivan Mironov",
"author_login": "im-0",
"committed_at": "2026-07-03T22:16:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "78aa6ed58ca2d68616014e1805668e75639a1127",
"body": null,
"is_bot": false,
"headline": "Remove `#[used]` from the `EMSCRIPTEN_MARKER` (#5222)",
"author_name": "Noz Wu",
"author_login": "Spxg",
"committed_at": "2026-07-02T20:01:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a82919f71a222f2a059b9cec016fcda314cb984e",
"body": null,
"is_bot": false,
"headline": "Drop the emscripten marker static from wasm exports (#5220)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-07-01T18:25:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9cfe738f546d2694e2efa4b1ab66a1f6574302b1",
"body": "…ing 404 (#5211)",
"is_bot": false,
"headline": "Surface chromedriver/Edge session creation errors instead of a confus…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-30T17:33:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "08a7fe745a399e9543e28811428f79c1bca7e5ba",
"body": "…217)",
"is_bot": false,
"headline": "Reach wasm exports via `wasmExports['name']` in emscripten output (#5…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-30T17:33:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21ac804a96c0c5c5d6459084686a9a17a8a3c865",
"body": null,
"is_bot": false,
"headline": "Release 0.2.126",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-24T17:53:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b111cbe27e1d2bda384d54021823e17d902976d0",
"body": "…(#5215)\n\nemscripten's exception/longjmp lowering rewrites direct calls into indirect\ncalls through the function table, wrapped in imported invoke_*(fnptr, ..args)\nhelpers. This includes the describe helpers that a descriptor function must\nreach, so skipping the call (as we do for ctors/profiling) w\n[…]\ns evaluating richer control flow, so\nthe interpreter is generalized from the ad-hoc branch_target break to a Flow\nenum that models multi-level branches (if/else, loop, br_table) and comparison\nbinops.",
"is_bot": false,
"headline": "Follow emscripten invoke_* trampolines in the descriptor interpreter …",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-24T17:20:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5dc7131d8e92cbdc86b44c1814a04e52ce4366d2",
"body": "* Hoist emscripten exports into top-level library symbols\n\nNon-namespaced clean exports (free functions, classes, and their\nfinalization registries) are emitted as their own top-level addToLibrary\nsymbols instead of locals inside the $initBindgen init closure, and\nself-registered at compile time via\n[…]\negister a\ndeclaration-free tree entry' logic was copy-pasted across the function,\nclass, and enum emission paths. Extract hoist_emscripten_export_with_tree\nto collapse the three and reduce drift risk.",
"is_bot": false,
"headline": "Hoist emscripten exports into top-level library symbols (#5210)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-23T16:17:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f013c323fe2c3c64363cb677de2f16bda61855f",
"body": "Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).\n\n\nUpdates `actions/checkout` from 6 to 7\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https:\n[…]\nsion-update:semver-major\n dependency-group: github-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": "build(deps): bump actions/checkout in the github-actions group (#5212)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-19T15:58:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d37fcefbc4410f4c2f6039d839218f493f54d82d",
"body": "Under -Cinstrument-coverage the compiler injects i64\nprofiler-counter load/store into the __wbindgen_describe_* helpers.\nThese do not follow 8-byte alignment breaking the two\naddress % width == 0 asserts.",
"is_bot": false,
"headline": "Relaxed alignment requirement for 8-byte types. (#5204)",
"author_name": "Dragoș Tiselice",
"author_login": "dragostis",
"committed_at": "2026-06-17T17:12:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ff7f1cd2f636d6f19d29b45680885088cc9e653",
"body": null,
"is_bot": false,
"headline": "Release 0.2.125 (#5200)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-12T21:54:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ae2b88530a160e2c0bfac90defae8a7e7937bff",
"body": null,
"is_bot": false,
"headline": "Release 0.2.124 (#5199)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-12T20:56:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "197f5761f50f54f3ced885eee6e36b492b4093fc",
"body": null,
"is_bot": false,
"headline": "Wrapped fatal JS Error in panic=abort + abort handlers path (#5198)",
"author_name": "Hood Chatham",
"author_login": "hoodmane",
"committed_at": "2026-06-12T20:37:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f77521121defba35264ee593b67dadb5d2a7c6e",
"body": "Bumps the github-actions group with 1 update in the / directory: [codecov/codecov-action](https://github.com/codecov/codecov-action).\n\n\nUpdates `codecov/codecov-action` from 6 to 7\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-\n[…]\nsion-update:semver-major\n dependency-group: github-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": "build(deps): bump codecov/codecov-action (#5187)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-12T20:20:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "18c4e334419d69ee06db030d4bdbd0ed32cf4327",
"body": null,
"is_bot": false,
"headline": "Fix flaky abort-handler CLI tests by isolating build dirs (#5197)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-12T19:27:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98df86bf91f80a59248dcefdcd43adf390d2f23d",
"body": "…ndler`(#5191)",
"is_bot": false,
"headline": "Make abort handler work when panic=abort via `--force-enable-abort-ha…",
"author_name": "Hood Chatham",
"author_login": "hoodmane",
"committed_at": "2026-06-12T18:02:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b6d1863395b8ecace092d8e6490e5b75df37bf5",
"body": null,
"is_bot": false,
"headline": "fix: make __wbindgen_destroy_closure private (#5196)",
"author_name": "Evan Almloff",
"author_login": "ealmloff",
"committed_at": "2026-06-11T23:45:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f17390b5ca1d61ef945701aa193b011f81627d8",
"body": null,
"is_bot": false,
"headline": "Fix incorrect `abort_handler` ptr comparison (#5192)",
"author_name": "Hex Wu",
"author_login": "Spxg",
"committed_at": "2026-06-09T16:34:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c7b8dce0c50bf94277aa4cf40b80751f86791957",
"body": null,
"is_bot": false,
"headline": "Remove cast from fn() to usize in set_on_abort (#5189)",
"author_name": "Hood Chatham",
"author_login": "hoodmane",
"committed_at": "2026-06-08T22:19:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "861696ae5ad7679c6b3eed7a448e34d65ced12e4",
"body": null,
"is_bot": false,
"headline": "Release 0.2.123 (#5188)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-08T20:17:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c667a970170eedb568d393b5beedd33c9e77f036",
"body": null,
"is_bot": false,
"headline": "fix: remove Upcast from Array to ArrayTuple (#5185)",
"author_name": "Evan Almloff",
"author_login": "ealmloff",
"committed_at": "2026-06-08T19:53:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f674f214e8ae43a4227a55dad43421ed59b94da",
"body": null,
"is_bot": false,
"headline": "fix: mutable reference variance (#5183)",
"author_name": "Evan Almloff",
"author_login": "ealmloff",
"committed_at": "2026-06-08T19:13:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edb2c004d35493c53dddde5fb0947e72f71c9114",
"body": "Discover_main hardcoded `main`'s signature to `(i32, i32) -> i32`, this is incorrect for wasm64.",
"is_bot": false,
"headline": "Discover wasm64 main (#5181)",
"author_name": "Nick Babcock",
"author_login": "nickbabcock",
"committed_at": "2026-06-05T03:42:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd27e9ae20acfe78463a209b91a28b38de27e68a",
"body": null,
"is_bot": false,
"headline": "Fix unresolved __wbindgen_placeholder__ imports on WASI targets (#5175)",
"author_name": "Uriah Galang",
"author_login": "codeitlikemiley",
"committed_at": "2026-06-03T00:15:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b49c851b44bf849b15c4cc5437ff85eb6f90aea7",
"body": "…reter (#5179)\n\n* fix(cli-support): handle i64 (width-8) loads in descriptor interpreter\n\nThe descriptor interpreter handled width-8 stores but panicked on width-8\nloads (\"Unhandled load width 8\"). Building tests with -Cinstrument-coverage\ninjects i64 profiler-counter load/store/add into the __wbind\n[…]\nord is sufficient. Adds a regression smoke\ntest exercising an i64 load/store through the interpreter.\n\n* Add CHANGELOG entry for #5179\n\n---------\n\nCo-authored-by: Guy Bedford <gbedford@cloudflare.com>",
"is_bot": false,
"headline": "fix(cli-support): handle i64 (width-8) loads in the descriptor interp…",
"author_name": "npiesco",
"author_login": "npiesco",
"committed_at": "2026-06-02T00:18:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bf5261a29a8e07b6d25fd9f9927523c74632d61e",
"body": "* Polyfill WebAssembly.JSTag for legacy EH on Node 18+\n\nResolves #5151.\n\nWhen wasm-bindgen emits legacy EH (`try`/`catch`) catch handlers under\npanic=unwind, the generated JS shim now polyfills `WebAssembly.JSTag` with\na `new WebAssembly.Tag({ parameters: ['externref'] })` and wraps each\nimport in a\n[…]\nred-by: Hood Chatham <roberthoodchatham@gmail.com>\n\n* fixup comments\n\n* fix legacy EH CI: refresh snapshot, skip stack-trace test\n\n---------\n\nCo-authored-by: Hood Chatham <roberthoodchatham@gmail.com>",
"is_bot": false,
"headline": "Polyfill WebAssembly.JSTag for legacy EH on Node 20+ (#5168)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-01T23:47:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "04e946ebd3594fde701ac2048b84f3f6775ce091",
"body": "The js-sys futures codegen opt-in introduced in #5127 was gated on\n`cfg!(wasm_bindgen_use_js_sys)` inside wasm-bindgen-macro-support.\nThat cfg is evaluated when the proc-macro crate itself is compiled on\nthe host, and Cargo does not propagate `RUSTFLAGS` or\n`target.*.rustflags` to host proc-macros w\n[…]\nnsion time via std::env::var, so consumers can do:\n\n WASM_BINDGEN_USE_JS_SYS=1 cargo build --target wasm32-unknown-unknown\n\nThe existing cfg path continues to work; either source enables the\ncodegen.",
"is_bot": false,
"headline": "Allow opting into js-sys futures codegen via env var (#5164)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-06-01T23:15:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cc60a5104c8ce80128f8ab735834db9df10a8628",
"body": null,
"is_bot": false,
"headline": "Reuse LazyCell in js-sys (#5172)",
"author_name": "Evan Almloff",
"author_login": "ealmloff",
"committed_at": "2026-05-29T23:15:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0621e40fc716b89a6f558dc844fc9419d06b7d85",
"body": "Aligns JsOption<T> with TypeScript's strict T | undefined semantics and\nwith Rust's Option<T> wire shape (None ↔ undefined).\n\nPreviously is_empty/as_option/into_option treated both null and undefined\nas absent. JS null is now a distinct present value:\n* is_empty / as_option / into_option / unwrap / \n[…]\nay absent placeholder changed from \"null\" to \"undefined\"\n* doc comments updated\n\nTest fixtures updated accordingly. JS-side null is treated as a present\nvalue; only undefined exercises empty branches.",
"is_bot": false,
"headline": "JsOption: strict undefined-only emptiness (#5170)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-29T00:38:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bb37cd03ad76f0c5171ca0f48368b88b201b4d07",
"body": "The Cookie Store API spec includes a `maxAge` member on `CookieInit`,\nbut it was missing from the bundled WebIDL. Add it and regenerate the\nbindings so cookies set via `CookieStore.set` can specify a max-age.\n\nFixes #5166",
"is_bot": false,
"headline": "web-sys: add maxAge to CookieInit dictionary (#5169)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-29T00:11:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddd322514d87a4b21342b7ab9a9d70796fc60576",
"body": null,
"is_bot": false,
"headline": "release: 0.2.122 - schema bump (#5162)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-22T16:44:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a64603e2d69462b68985bc95d812640b85ced578",
"body": "…ns (#5156)",
"is_bot": false,
"headline": "Fix emscripten output: dep graph, HEAP_DATA_VIEW, function declaratio…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-21T15:43:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c543af606f5864317b6a20ae18d1d391a1df26c",
"body": "A JS value converts when it is a real Array (per Array.isArray) and\nevery element converts via T::try_from_js_value. Composes recursively\n(Vec<Vec<String>>, Vec<Option<T>>) for any T with a TryFromJsValue\nimpl, including primitives, String, JsValue, and JsCast types.\n\nImplemented in core via the existing __wbindgen_is_array intrinsic\nplus a small new __wbindgen_reflect_get binding to Reflect.get for\nlength and indexed element access, avoiding any extern Array type.",
"is_bot": false,
"headline": "Implement TryFromJsValue for Vec<T> (#5150)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-21T15:43:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fabc617e212c323ebf817c9fc3a0c63989de7cab",
"body": "…enamed-struct .into() duplicate class) (#5160)",
"is_bot": false,
"headline": "fix: key WrapInExportedClass/UnwrapExportedClass by qualified_name (r…",
"author_name": "XiaoYangShawn",
"author_login": "ZhaoXiangXML",
"committed_at": "2026-05-21T15:04:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32d8df2d0caf4600f9598b1724f833a19be935f2",
"body": null,
"is_bot": false,
"headline": "drop codspeed runner (#5161)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-21T01:52:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5bf1c8e79466419f33e99f7dbc59a3e88b6c839",
"body": "…r (#5158)",
"is_bot": false,
"headline": "fix: Handle `Br` and `BrIf` instructions in the descriptor interprete…",
"author_name": "Connor Hindley",
"author_login": "connyay",
"committed_at": "2026-05-19T21:19:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bbcdb9ccb9836ae0ab7194d6d3d713fe6ba0c7c0",
"body": "…s_class are combined (#5154)",
"is_bot": false,
"headline": "fix: route methods to the right class when js_name + js_namespace + j…",
"author_name": "XiaoYangShawn",
"author_login": "ZhaoXiangXML",
"committed_at": "2026-05-14T17:47:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b5d213843ddbdffd9d23104c469a882aec157b2",
"body": "…#5128)\n\n* Enforce unwind safety on #[wasm_bindgen] exports under panic=unwind\n\nPreviously the macro wrapped every exported sync function body in\n`maybe_catch_unwind(|| { ... })`, but emitted all argument and receiver\n`from_abi` conversions *inside* that closure. The closure therefore only\ncaptured \n[…]\nssert' overlaps with std's catch_unwind family of *_assert_unwind_safe\nwrappers (which mean 'AssertUnwindSafe', i.e. the opposite). 'ensure'\nreads as a compile-time requirement without that ambiguity.",
"is_bot": false,
"headline": "Enforce unwind safety on #[wasm_bindgen] exports under panic=unwind (…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-14T00:32:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e4fdb2cae39e9e38aaee91b3968dcffdc2d29465",
"body": "* ci: pin legacy EH job to nightly-2026-05-12\n\nThe legacy EH CI job has started failing because recent nightlies emit\nwasm-gc value types (e.g. `noexternref`) in the standard library that\nNode.js 20's V8 11.3 cannot validate, even when explicitly opted into\nlegacy EH via `-Cllvm-args=-wasm-use-legac\n[…]\ne 22.4+.\n Node 20 has legacy EH instructions but not the JSTag global.\n\nDocument the Node 22.22.3+ floor in the catch-unwind guide and\nchangelog, with a pointer to #5151 for tracking Node 20 support.",
"is_bot": false,
"headline": "ci: pin legacy EH job to nightly-2026-05-12 (#5155)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-13T19:32:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "14b86ad617100769519c027e20c7d525f4edfd21",
"body": "…5152)\n\n* Add --export=__heap_base for threading after rust-lang/rust#156174\n\nNightly Rust as of 2026-05-06 no longer implicitly exports\n__heap_base/__data_end on wasm32-unknown-unknown. wasm-bindgen's\nthreading post-processing requires __heap_base, so callers must now\npass -Clink-arg=--export=__hea\n[…]\ntice in CHANGELOG\n\nUpdated the notice regarding threading support in Rust to clarify the requirement for `-Clink-arg=--export=__heap_base` in `RUSTFLAGS` for nightly toolchains from 2026-05-06 onward.",
"is_bot": false,
"headline": "Add --export=__heap_base for threading after rust-lang/rust#156174 (#…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-13T01:27:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "49457f2db4465688cb597e9030ccfdefbd2b662e",
"body": "Imported `async fn -> Union` failed to compile because\n`From<Promise<T>> for JsFuture<T>` required `T: JsGeneric`, which\ndemands layout equivalence with `JsValue`. Dynamic-union enums are\ntagged Rust enums, not transparent newtypes around `JsValue`, so they\ncannot satisfy that bound. The closure shim that materialises the\nresolved value only needs `T::from_abi`, which is per-type ABI\nconversion — `T: FromWasmAbi` is the actual minimum.",
"is_bot": false,
"headline": "Loosen JsFuture<T> bound to support Promise<Union> (#5149)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-07T00:34:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e755d214947dcf5fc892333a3093d6ed98f4259e",
"body": null,
"is_bot": false,
"headline": "release: 0.2.121 - schema bump (#5148)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-06T23:15:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1cb17ad6b46dbd044db9727e1e51e0ec116abe63",
"body": null,
"is_bot": false,
"headline": "Release 0.2.121",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-06T22:56:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "206457010c2a7ab252362320234204a797ca57ce",
"body": "…#5146)\n\n`slice_to_array` is a fn-level / block-level mode that should only\nact on `&[T]` and `Option<&[T]>` arguments. Today it errors out at\nmacro-expansion time on any non-slice arg of a fn it covers — most\nnotably the `this: &Foo` of a method:\n\n #[wasm_bindgen(method, setter, js_name = \"cc\", \n[…]\ns.\nThe rewrite still applies to every slice-shaped arg the mode\ncovers.\n\nAdds a method test exercising the fix (`#[wasm_bindgen(method,\nslice_to_array)] fn push_strings(this: &Tagged, v: &[String])`).",
"is_bot": false,
"headline": "Fix slice_to_array erroring on non-slice args of slice_to_array fns (…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-06T22:33:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dfefda7dfa2a91c182667f97322c3516d01c9ba7",
"body": null,
"is_bot": false,
"headline": "Fix panic unwind bundler js (#5142)",
"author_name": "alexjg",
"author_login": "alexjg",
"committed_at": "2026-05-06T22:07:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12646be9f88ab54f168b1fb8a4cae6a2aa3faca3",
"body": "Adds an opt-in per-fn or per-`extern \"C\"`-block attribute that lets\nidiomatic `&[T]` arguments be used when binding JS APIs that take a\nplain `Array<T>` rather than a typed array.\n\nIdiomatic Rust uses `&[T]` for borrowed sequences. When binding a JS\nfunction that takes an array of values, the natura\n[…]\n/reference/slice-to-array.*`\n locking in the bg.js / wat output, including the no-free codegen\n for primitive borrows.\n* new guide page at\n `reference/attributes/on-js-imports/slice_to_array.html`.",
"is_bot": false,
"headline": "Add slice_to_array attribute for plain-Array slice imports (#5145)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-06T22:03:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f4706e3b55094a9afdc2ed6aaa76fcc29cae40e8",
"body": null,
"is_bot": false,
"headline": "feat: support union types with Rust enums (#4734)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-06T21:30:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b75c754716518a8157ee50ab49dec050d5eb2e8f",
"body": "…= ...)] (#5120)",
"is_bot": false,
"headline": "feat: inheritance for Rust-exported types via #[wasm_bindgen(extends …",
"author_name": "XiaoYangShawn",
"author_login": "ZhaoXiangXML",
"committed_at": "2026-05-06T17:42:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b259436424eca292b93f14bcad9b618aa043e395",
"body": "…mpls (#4323)",
"is_bot": false,
"headline": "Support raw identifiers for enums, enum variants, extern types, and i…",
"author_name": "Michael Schmidt",
"author_login": "RunDevelopment",
"committed_at": "2026-05-06T01:10:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7ffebc661f8df83102da14ef03d485dbcff34bd",
"body": "* Update experimental ViewTransition interface\n\nA level 2 version of ViewTransitions has been published and has been\nimplemented by more browsers than level 1.",
"is_bot": false,
"headline": "Update experimental ViewTransition interface (#5138)",
"author_name": "Jackson Garner",
"author_login": "jhgarner",
"committed_at": "2026-05-06T00:12:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a14fbc697f8f2544c265b4012d59a2c39e6094d",
"body": "* Add js_sys::AggregateError bindings\n\nAdds bindings for the JS `AggregateError` builtin: the type, its three\nconstructor overloads (`new`, `new_with_message`, `new_with_options`)\ntaking the errors as a `&[JsValue]` slice, and the `errors` getter.\nIncludes wasm tests covering construction, message/o\n[…]\ny.CompileError, WebAssembly.LinkError, WebAssembly.RuntimeError.\nError keeps its existing untyped new_with_options(&str, &Object) for\nback-compat and gains new_with_error_options(&str, &ErrorOptions).",
"is_bot": false,
"headline": "Add js_sys::AggregateError and typed ErrorOptions bindings (#5139)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-06T00:05:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0afc5334d4c45074f9d5babb5599e5c2c7552cbf",
"body": "* Add js_sys::FinalizationRegistry bindings\n\nPairs with the existing WeakRef bindings to expose ES2021's\nFinalizationRegistry API: the type, its constructor, register,\nregister_with_token, and unregister. The cleanup callback is typed as\n`&Function<fn(JsValue) -> Undefined>` so user code can convert\n[…]\nf` (for borrowed scoped closures).\n\n* Update crates/js-sys/src/lib.rs\n\nCo-authored-by: Hood Chatham <roberthoodchatham@gmail.com>\n\n---------\n\nCo-authored-by: Hood Chatham <roberthoodchatham@gmail.com>",
"is_bot": false,
"headline": "Add js_sys::FinalizationRegistry bindings (#5140)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-05T23:05:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fee2e02ddc4b6d4eb2b0977ac746604cd6a3bc80",
"body": null,
"is_bot": false,
"headline": "Implement TypedArray for DataView, note future rename (#5135)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-05T22:30:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "083568a7ad9a8a7d2d0bbc07907c2aaa8e664684",
"body": null,
"is_bot": false,
"headline": "Add support for symbols in `js_name` and `getter`/`setter` (#4230)",
"author_name": "Michael Schmidt",
"author_login": "RunDevelopment",
"committed_at": "2026-05-05T22:20:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6bd08b57e4da3589d2ca15d95ef8b7055b8de18d",
"body": null,
"is_bot": false,
"headline": "Remove flaky promise combinator benchmarks (#5130)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-05-05T22:17:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "778bd5cf5bee862e39ff62fd241d8919d1fe1ce3",
"body": null,
"is_bot": false,
"headline": "Fix compilation failure with `no_std` + `release` (#5134)",
"author_name": "Spxg",
"author_login": "Spxg",
"committed_at": "2026-04-29T06:12:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "66b1b3c97b42ef132b0dcacff146d8d141c91f41",
"body": null,
"is_bot": false,
"headline": "Remove `msrv/cli/Cargo.lock` (#5132)",
"author_name": "daxpedda",
"author_login": "daxpedda",
"committed_at": "2026-04-28T07:50:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3c5043f94d85c7df1b25195ab005814ba001a93b",
"body": null,
"is_bot": false,
"headline": "Release 0.2.120 (#5131)",
"author_name": "daxpedda",
"author_login": "daxpedda",
"committed_at": "2026-04-28T07:28:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c68c40f498176a7923b1cf0a45d860f0efef6e16",
"body": null,
"is_bot": false,
"headline": "release: 0.2.119 - schema bump (#5129)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-28T01:00:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9f3fb64182f7adadd1564ffe20dc1a217e00ec3",
"body": null,
"is_bot": false,
"headline": "Release 0.2.119 (#5126)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-28T00:34:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "17d783e0a359c5d4688c4770acc7c687747143bd",
"body": null,
"is_bot": false,
"headline": "Switch js-sys macro codegen opt-in from Cargo feature to cfg (#5127)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-27T22:38:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33b12445d81501bb8ecc09b655d83c83e27c4eb9",
"body": "…pose typed collection via Array::from_iter_typed (#5125)",
"is_bot": false,
"headline": "Restore stable AsRef<JsValue>-based FromIterator/Extend for Array; ex…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-27T21:25:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "208e874857938bdc91a21af95f53cfd62c8e676a",
"body": null,
"is_bot": false,
"headline": "Simplify web-sys generated bindings (#5122)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-27T20:07:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34553458b90a55d3d1370afb3006b2d615c76357",
"body": null,
"is_bot": false,
"headline": "Add wasm64/memory64 support for wasm64-unknown-unknown target (#5004)",
"author_name": "唐鳳",
"author_login": "audreyt",
"committed_at": "2026-04-27T19:36:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c8fd1fd024a4e374422e93123dd7540e1cd45ed",
"body": "* Use js_sys::futures instead of wasm_bindgen_futures in codegen\n\nResolves #5104. When `#[wasm_bindgen(js_sys)]` is set, the macro\ngenerates `js_sys::futures::spawn_local`, `js_sys::futures::future_to_promise`,\nand `js_sys::futures::JsFuture` instead of their `wasm_bindgen_futures`\nequivalents. This\n[…]\ntham <roberthoodchatham@gmail.com>\n\n* Apply suggestion from @hoodmane\n\nCo-authored-by: Hood Chatham <roberthoodchatham@gmail.com>\n\n---------\n\nCo-authored-by: Hood Chatham <roberthoodchatham@gmail.com>",
"is_bot": false,
"headline": "Use js_sys::futures instead of wasm_bindgen_futures in codegen (#5112)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-27T19:12:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e82e6937dd9c1e31b3b6354cd332d9ea3bb449b0",
"body": null,
"is_bot": false,
"headline": "Use Publish Environment (#5124)",
"author_name": "daxpedda",
"author_login": "daxpedda",
"committed_at": "2026-04-27T18:10:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5727923826294d3df3cf6689c097485991511c1f",
"body": null,
"is_bot": false,
"headline": "feat: Promise ergonomics for typed concurrent awaits (#5121)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-24T23:43:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed2345c9568abc4ec2f6dd3ca5641755ec1a005a",
"body": null,
"is_bot": false,
"headline": "feat: expose `WebAssembly.Instance` (#5118)",
"author_name": "CPunisher",
"author_login": "CPunisher",
"committed_at": "2026-04-22T17:09:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c3b393e7ac3a72b8b8d93aaa34e3b4fbf14fe79",
"body": null,
"is_bot": false,
"headline": "bench: remove 10mb console log flake (#5114)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-20T16:55:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d6e4220cb3d021e2e06d7e51e73252842d84dd9",
"body": null,
"is_bot": false,
"headline": "Use Crates.io Trusted Publishing (#5116)",
"author_name": "daxpedda",
"author_login": "daxpedda",
"committed_at": "2026-04-18T18:45:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c94914eb5de5dbf50fca61b6aa3df1a27d92350",
"body": null,
"is_bot": false,
"headline": "Rust v1.95 Formatting (#5117)",
"author_name": "daxpedda",
"author_login": "daxpedda",
"committed_at": "2026-04-18T06:47:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a7c4032eb571d344b3832b04fab5e62d0db7634",
"body": "ChromeDriver (and potentially other WebDriver binaries) routinely emit\nwarnings to stderr during normal startup, e.g.:\n\n [WARNING]: FromSockAddr failed on netmask\n\nThe BackgroundChild::has_failed() method previously returned true whenever\nany stderr output was detected, even if the child process wa\n[…]\nns dialog), a per-attempt timeout of 10 seconds is added. If a\ndriver hasn't bound its port within that window, it is killed and retried\non a new port — without relying on stderr content.\n\nFixes #5110",
"is_bot": false,
"headline": "fix: don't treat driver stderr output as startup failure (#5111)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-15T17:17:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "50ef3cb2f7f6a60d3e1193545e58c130bf4a182c",
"body": null,
"is_bot": false,
"headline": "fix: use qualified TS names for namespaced exports (#5106)",
"author_name": "XiaoYangShawn",
"author_login": "ZhaoXiangXML",
"committed_at": "2026-04-14T22:00:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8359d01d54578be1c3584930427c1d74c88ecbb7",
"body": "…nd docs (#5108)",
"is_bot": false,
"headline": "fix: remove stale ImmediateClosure references and update closure unwi…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-13T23:15:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be916d0816cbf46677ef74bcb604ac3146ba2a31",
"body": null,
"is_bot": false,
"headline": "Correct MSRV history for version 0.2.118 (#5105)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-13T23:15:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "56d6569a441c0023444d19b8f8ced839ef6855ee",
"body": "Bumps the github-actions group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release).\n\n\nUpdates `softprops/action-gh-release` from 2 to 3\n- [Release notes](https://github.com/softprops/action-gh-release/releases)\n- [Changelog](https://github.com/softprops/actio\n[…]\nsion-update:semver-major\n dependency-group: github-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": "build(deps): bump softprops/action-gh-release (#5107)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-13T22:27:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "753bb7ff4de2a00e30d2c6b56ee8e06a9e527f01",
"body": null,
"is_bot": false,
"headline": "Release 0.2.118 (#5100)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-10T16:36:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a12884a7c1f4078a67b35f76559c910440a8d739",
"body": null,
"is_bot": false,
"headline": "fix: hoist ES module import statements to top of generated JS (#5103)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-10T16:17:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "17d4344b94e6251b0c9e0835a77dd6cbe141a527",
"body": null,
"is_bot": false,
"headline": "fix: handle lifetime params in codegen for generic extern types (#5096)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-10T03:25:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c0a6a82ecefd2f8608caf91c436866f232aa80fd",
"body": "…097)",
"is_bot": false,
"headline": "fix: use thread_local_v2 for console.createTask feature detection (#5…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-10T02:36:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5bd8fa90b6c4557cf439ada0637b6852fc33e843",
"body": null,
"is_bot": false,
"headline": "chore: bump library MSRV to 1.77 and CLI MSRV to 1.86 (#5102)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-10T00:06:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6640596c174b1e36abffeeb29efd4e828b236d68",
"body": null,
"is_bot": false,
"headline": "feat: support schedule_reinit() under panic=abort builds (#5099)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-09T20:24:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d83d96e6ee095f27d28c144198e104879dcba35",
"body": "… (#5101)\n\nBumps the github-actions group with 1 update: [mymindstorm/setup-emsdk](https://github.com/mymindstorm/setup-emsdk).\n\n\nUpdates `mymindstorm/setup-emsdk` from 15 to 16\n- [Release notes](https://github.com/mymindstorm/setup-emsdk/releases)\n- [Commits](https://github.com/mymindstorm/setup-em\n[…]\nsion-update:semver-major\n dependency-group: github-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": "build(deps): bump mymindstorm/setup-emsdk in the github-actions group…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-09T20:21:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a44bc043f1f894f6f65d6d063fcb2381ed15ea30",
"body": null,
"is_bot": false,
"headline": "fix: auto-detect schedule_reinit and tighten termination guard (#5083)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-08T23:35:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48495bd2a9a813613168402e430cbab8ce531b63",
"body": "…ter (#5095)",
"is_bot": false,
"headline": "fix: use globals HashMap for all global access in descriptor interpre…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-08T21:21:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a543f073e3d7fd3fe3922e5db5bad3b9df421d3",
"body": null,
"is_bot": false,
"headline": "feat: add `Error.stackTraceLimit` getter and setter to js-sys (#5082)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-08T20:50:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06cb26cce84b0678aa211365fc0f72562403b38c",
"body": null,
"is_bot": false,
"headline": "fix: mark unstable dictionary primitive-slice setters as unsafe (#5094)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-08T20:47:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6c12bdf9ab295ee0feea8e85a605a8733179a58",
"body": "… (#5081)",
"is_bot": false,
"headline": "feat: support multiple and private `#[wasm_bindgen(start)]` functions…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-06T23:14:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cbd0b73baa436c29cc258c62c11f0b46ed2e17c3",
"body": "…or rustc 1.94+ (#5077)",
"is_bot": false,
"headline": "fix: handle element segment offsets and interpreter global tracking f…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-06T23:00:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3c92fe4e8b596f586cc178983b5eb62b43fea2c",
"body": null,
"is_bot": false,
"headline": "fix headless WASM_BINDGEN_TEST_ADDRESS (#5087)",
"author_name": "Tom Wyllie",
"author_login": "TomWyllie",
"committed_at": "2026-04-06T22:33:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "875a25d74c87691d307d22db4403bd2e32676f3b",
"body": "…updates (#5086)",
"is_bot": true,
"headline": "build(deps): bump the github-actions group across 1 directory with 2 …",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-06T21:39:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae2bc8174aecf8cfbf30e40fc2eacbe91895a10d",
"body": null,
"is_bot": false,
"headline": "fix: resolve coverage and MSRV CI failures (#5088)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-04-06T21:14:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fb403cfef5041fbe320eb8423003bda49ca33125",
"body": null,
"is_bot": false,
"headline": "Release 0.2.117 (#5074)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-03-31T18:33:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "585409641374888fb9ad086e5e4274664813dc2e",
"body": null,
"is_bot": false,
"headline": "webidl: propagate WbgGeneric per-signature-expansion from types (#5073)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-03-31T17:30:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddf99e20b4dc6f17d7d7041a19a901122d38c48d",
"body": null,
"is_bot": false,
"headline": "Release 0.2.116 (#5070)",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-03-31T00:00:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06655fb6caa9ecbe396c9f09281e9664cfb74ea5",
"body": "…import args (#5056)",
"is_bot": false,
"headline": "feat: auto-inject MaybeUnwindSafe bound for &dyn Fn / &mut dyn FnMut …",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-03-30T23:35:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2fc02106d41367919ddb0d6c938014384c660bac",
"body": "…(#5069)",
"is_bot": false,
"headline": "fix: update walrus to 0.26.1 for deterministic type section ordering …",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-03-30T22:57:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1be19fdbb264cb15d61682d319c28783ccc17ed1",
"body": "…f32 (#5067)",
"is_bot": false,
"headline": "fix(js-sys): add missing js_name = \"fill\" to Float16Array::fill_with_…",
"author_name": "Guy Bedford",
"author_login": "guybedford",
"committed_at": "2026-03-30T22:33:14Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 436,
"latest_release_at": "2026-06-24T19:58:54Z",
"latest_release_tag": "0.2.126",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 50,
"days_since_latest_release": 28,
"mean_days_between_releases": 9.9
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 62,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "wasm-bindgen",
"exists": true,
"license": "MIT OR Apache-2.0",
"keywords": [
"wasm"
],
"ecosystem": "crates",
"matches_repo": true,
"registry_url": "https://crates.io/crates/wasm-bindgen",
"is_deprecated": false,
"latest_version": "0.2.126",
"repository_url": "https://github.com/wasm-bindgen/wasm-bindgen",
"versions_count": 126,
"total_downloads": 443251756,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 37592987,
"first_published_at": "2018-03-06T04:24:26.947567Z",
"latest_published_at": "2026-06-24T19:05:14.113437Z",
"latest_version_yanked": false,
"days_since_latest_publish": 28
}
]
},
"popularity": {
"forks": 1224,
"stars": 9098,
"watchers": 93,
"fork_history": {
"days": [
{
"date": "2019-05-07",
"count": 1
},
{
"date": "2019-05-08",
"count": 1
},
{
"date": "2019-05-10",
"count": 1
},
{
"date": "2019-05-14",
"count": 1
},
{
"date": "2019-05-15",
"count": 1
},
{
"date": "2019-05-16",
"count": 1
},
{
"date": "2019-05-17",
"count": 1
},
{
"date": "2019-05-18",
"count": 1
},
{
"date": "2019-05-20",
"count": 1
},
{
"date": "2019-05-26",
"count": 1
},
{
"date": "2019-06-03",
"count": 1
},
{
"date": "2019-06-10",
"count": 1
},
{
"date": "2019-06-12",
"count": 1
},
{
"date": "2019-06-15",
"count": 1
},
{
"date": "2019-06-16",
"count": 1
},
{
"date": "2019-06-17",
"count": 1
},
{
"date": "2019-06-25",
"count": 1
},
{
"date": "2019-06-26",
"count": 1
},
{
"date": "2019-06-27",
"count": 1
},
{
"date": "2019-06-28",
"count": 1
},
{
"date": "2019-06-29",
"count": 1
},
{
"date": "2019-06-30",
"count": 1
},
{
"date": "2019-07-13",
"count": 1
},
{
"date": "2019-07-18",
"count": 1
},
{
"date": "2019-07-20",
"count": 1
},
{
"date": "2019-07-21",
"count": 1
},
{
"date": "2019-07-27",
"count": 2
},
{
"date": "2019-07-28",
"count": 1
},
{
"date": "2019-07-30",
"count": 1
},
{
"date": "2019-07-31",
"count": 1
},
{
"date": "2019-08-08",
"count": 1
},
{
"date": "2019-08-09",
"count": 1
},
{
"date": "2019-08-10",
"count": 1
},
{
"date": "2019-08-14",
"count": 1
},
{
"date": "2019-08-15",
"count": 1
},
{
"date": "2019-08-16",
"count": 1
},
{
"date": "2019-08-21",
"count": 2
},
{
"date": "2019-08-29",
"count": 1
},
{
"date": "2019-08-31",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-06",
"count": 1
},
{
"date": "2019-09-08",
"count": 2
},
{
"date": "2019-09-17",
"count": 2
},
{
"date": "2019-09-19",
"count": 2
},
{
"date": "2019-09-20",
"count": 1
},
{
"date": "2019-09-26",
"count": 1
},
{
"date": "2019-09-27",
"count": 1
},
{
"date": "2019-09-28",
"count": 2
},
{
"date": "2019-09-30",
"count": 4
},
{
"date": "2019-10-01",
"count": 1
},
{
"date": "2019-10-03",
"count": 2
},
{
"date": "2019-10-05",
"count": 1
},
{
"date": "2019-10-08",
"count": 3
},
{
"date": "2019-10-12",
"count": 1
},
{
"date": "2019-10-15",
"count": 1
},
{
"date": "2019-10-18",
"count": 1
},
{
"date": "2019-10-20",
"count": 1
},
{
"date": "2019-10-21",
"count": 2
},
{
"date": "2019-10-28",
"count": 1
},
{
"date": "2019-10-29",
"count": 3
},
{
"date": "2019-10-30",
"count": 1
},
{
"date": "2019-10-31",
"count": 1
},
{
"date": "2019-11-06",
"count": 1
},
{
"date": "2019-11-07",
"count": 1
},
{
"date": "2019-11-09",
"count": 1
},
{
"date": "2019-11-10",
"count": 1
},
{
"date": "2019-11-12",
"count": 1
},
{
"date": "2019-11-15",
"count": 1
},
{
"date": "2019-11-19",
"count": 1
},
{
"date": "2019-11-21",
"count": 2
},
{
"date": "2019-11-23",
"count": 1
},
{
"date": "2019-11-24",
"count": 1
},
{
"date": "2019-11-25",
"count": 1
},
{
"date": "2019-11-26",
"count": 1
},
{
"date": "2019-11-27",
"count": 1
},
{
"date": "2019-12-07",
"count": 1
},
{
"date": "2019-12-09",
"count": 2
},
{
"date": "2019-12-14",
"count": 1
},
{
"date": "2019-12-16",
"count": 1
},
{
"date": "2019-12-17",
"count": 1
},
{
"date": "2019-12-18",
"count": 1
},
{
"date": "2019-12-28",
"count": 1
},
{
"date": "2019-12-31",
"count": 1
},
{
"date": "2020-01-01",
"count": 1
},
{
"date": "2020-01-02",
"count": 1
},
{
"date": "2020-01-06",
"count": 1
},
{
"date": "2020-01-07",
"count": 1
},
{
"date": "2020-01-15",
"count": 1
},
{
"date": "2020-01-19",
"count": 1
},
{
"date": "2020-01-21",
"count": 1
},
{
"date": "2020-01-22",
"count": 2
},
{
"date": "2020-01-31",
"count": 1
},
{
"date": "2020-02-03",
"count": 1
},
{
"date": "2020-02-08",
"count": 1
},
{
"date": "2020-02-11",
"count": 1
},
{
"date": "2020-02-12",
"count": 1
},
{
"date": "2020-02-16",
"count": 1
},
{
"date": "2020-02-17",
"count": 1
},
{
"date": "2020-02-18",
"count": 1
},
{
"date": "2020-02-19",
"count": 1
},
{
"date": "2020-02-25",
"count": 1
},
{
"date": "2020-02-28",
"count": 5
},
{
"date": "2020-03-02",
"count": 1
},
{
"date": "2020-03-06",
"count": 1
},
{
"date": "2020-03-09",
"count": 2
},
{
"date": "2020-03-10",
"count": 1
},
{
"date": "2020-03-12",
"count": 1
},
{
"date": "2020-03-15",
"count": 1
},
{
"date": "2020-03-20",
"count": 1
},
{
"date": "2020-03-21",
"count": 2
},
{
"date": "2020-03-26",
"count": 1
},
{
"date": "2020-03-30",
"count": 1
},
{
"date": "2020-04-01",
"count": 1
},
{
"date": "2020-04-02",
"count": 1
},
{
"date": "2020-04-04",
"count": 1
},
{
"date": "2020-04-05",
"count": 1
},
{
"date": "2020-04-10",
"count": 1
},
{
"date": "2020-04-11",
"count": 1
},
{
"date": "2020-04-15",
"count": 3
},
{
"date": "2020-04-19",
"count": 1
},
{
"date": "2020-04-22",
"count": 2
},
{
"date": "2020-04-25",
"count": 1
},
{
"date": "2020-04-28",
"count": 1
},
{
"date": "2020-04-30",
"count": 1
},
{
"date": "2020-05-02",
"count": 2
},
{
"date": "2020-05-06",
"count": 1
},
{
"date": "2020-05-07",
"count": 1
},
{
"date": "2020-05-11",
"count": 1
},
{
"date": "2020-05-12",
"count": 2
},
{
"date": "2020-05-16",
"count": 2
},
{
"date": "2020-05-23",
"count": 1
},
{
"date": "2020-05-24",
"count": 1
},
{
"date": "2020-05-26",
"count": 2
},
{
"date": "2020-05-27",
"count": 1
},
{
"date": "2020-05-29",
"count": 1
},
{
"date": "2020-05-31",
"count": 2
},
{
"date": "2020-06-03",
"count": 1
},
{
"date": "2020-06-05",
"count": 2
},
{
"date": "2020-06-06",
"count": 1
},
{
"date": "2020-06-09",
"count": 1
},
{
"date": "2020-06-10",
"count": 1
},
{
"date": "2020-06-11",
"count": 1
},
{
"date": "2020-06-16",
"count": 1
},
{
"date": "2020-06-17",
"count": 1
},
{
"date": "2020-06-18",
"count": 1
},
{
"date": "2020-06-19",
"count": 1
},
{
"date": "2020-06-21",
"count": 2
},
{
"date": "2020-06-23",
"count": 1
},
{
"date": "2020-06-24",
"count": 1
},
{
"date": "2020-06-29",
"count": 1
},
{
"date": "2020-06-30",
"count": 1
},
{
"date": "2020-07-06",
"count": 1
},
{
"date": "2020-07-09",
"count": 1
},
{
"date": "2020-07-12",
"count": 2
},
{
"date": "2020-07-15",
"count": 1
},
{
"date": "2020-07-18",
"count": 1
},
{
"date": "2020-07-23",
"count": 1
},
{
"date": "2020-08-11",
"count": 1
},
{
"date": "2020-08-12",
"count": 1
},
{
"date": "2020-08-18",
"count": 1
},
{
"date": "2020-08-21",
"count": 3
},
{
"date": "2020-08-23",
"count": 1
},
{
"date": "2020-08-26",
"count": 1
},
{
"date": "2020-09-05",
"count": 1
},
{
"date": "2020-09-15",
"count": 1
},
{
"date": "2020-09-17",
"count": 1
},
{
"date": "2020-09-20",
"count": 2
},
{
"date": "2020-09-21",
"count": 1
},
{
"date": "2020-09-23",
"count": 1
},
{
"date": "2020-09-29",
"count": 1
},
{
"date": "2020-10-09",
"count": 1
},
{
"date": "2020-10-11",
"count": 1
},
{
"date": "2020-10-13",
"count": 1
},
{
"date": "2020-10-18",
"count": 2
},
{
"date": "2020-10-19",
"count": 1
},
{
"date": "2020-10-22",
"count": 2
},
{
"date": "2020-10-30",
"count": 1
},
{
"date": "2020-11-03",
"count": 1
},
{
"date": "2020-11-06",
"count": 1
},
{
"date": "2020-11-07",
"count": 1
},
{
"date": "2020-11-08",
"count": 1
},
{
"date": "2020-11-13",
"count": 1
},
{
"date": "2020-11-14",
"count": 1
},
{
"date": "2020-11-17",
"count": 1
},
{
"date": "2020-11-19",
"count": 2
},
{
"date": "2020-11-20",
"count": 1
},
{
"date": "2020-11-21",
"count": 1
},
{
"date": "2020-11-23",
"count": 1
},
{
"date": "2020-11-24",
"count": 1
},
{
"date": "2020-12-02",
"count": 1
},
{
"date": "2020-12-04",
"count": 1
},
{
"date": "2020-12-07",
"count": 2
},
{
"date": "2020-12-12",
"count": 1
},
{
"date": "2020-12-15",
"count": 1
},
{
"date": "2020-12-19",
"count": 1
},
{
"date": "2020-12-24",
"count": 1
},
{
"date": "2020-12-29",
"count": 1
},
{
"date": "2021-01-02",
"count": 1
},
{
"date": "2021-01-18",
"count": 1
},
{
"date": "2021-01-22",
"count": 1
},
{
"date": "2021-01-23",
"count": 1
},
{
"date": "2021-01-29",
"count": 1
},
{
"date": "2021-02-02",
"count": 1
},
{
"date": "2021-02-05",
"count": 1
},
{
"date": "2021-02-12",
"count": 1
},
{
"date": "2021-02-23",
"count": 1
},
{
"date": "2021-02-24",
"count": 2
},
{
"date": "2021-02-25",
"count": 1
},
{
"date": "2021-02-27",
"count": 1
},
{
"date": "2021-03-02",
"count": 1
},
{
"date": "2021-03-03",
"count": 1
},
{
"date": "2021-03-09",
"count": 2
},
{
"date": "2021-03-17",
"count": 1
},
{
"date": "2021-03-18",
"count": 1
},
{
"date": "2021-03-19",
"count": 2
},
{
"date": "2021-03-24",
"count": 1
},
{
"date": "2021-03-27",
"count": 1
},
{
"date": "2021-03-29",
"count": 1
},
{
"date": "2021-04-05",
"count": 1
},
{
"date": "2021-04-06",
"count": 2
},
{
"date": "2021-04-11",
"count": 1
},
{
"date": "2021-04-13",
"count": 1
},
{
"date": "2021-04-14",
"count": 1
},
{
"date": "2021-04-17",
"count": 1
},
{
"date": "2021-04-19",
"count": 2
},
{
"date": "2021-04-26",
"count": 1
},
{
"date": "2021-04-30",
"count": 1
},
{
"date": "2021-05-01",
"count": 1
},
{
"date": "2021-05-08",
"count": 1
},
{
"date": "2021-05-14",
"count": 1
},
{
"date": "2021-05-18",
"count": 1
},
{
"date": "2021-05-24",
"count": 1
},
{
"date": "2021-05-29",
"count": 1
},
{
"date": "2021-05-30",
"count": 1
},
{
"date": "2021-06-02",
"count": 1
},
{
"date": "2021-06-07",
"count": 1
},
{
"date": "2021-06-08",
"count": 1
},
{
"date": "2021-06-09",
"count": 2
},
{
"date": "2021-06-15",
"count": 1
},
{
"date": "2021-06-17",
"count": 1
},
{
"date": "2021-06-21",
"count": 1
},
{
"date": "2021-06-22",
"count": 2
},
{
"date": "2021-06-23",
"count": 1
},
{
"date": "2021-06-24",
"count": 1
},
{
"date": "2021-06-29",
"count": 1
},
{
"date": "2021-07-03",
"count": 1
},
{
"date": "2021-07-08",
"count": 1
},
{
"date": "2021-07-09",
"count": 1
},
{
"date": "2021-07-11",
"count": 1
},
{
"date": "2021-07-12",
"count": 1
},
{
"date": "2021-07-14",
"count": 1
},
{
"date": "2021-07-21",
"count": 1
},
{
"date": "2021-07-26",
"count": 3
},
{
"date": "2021-07-28",
"count": 1
},
{
"date": "2021-07-29",
"count": 1
},
{
"date": "2021-08-08",
"count": 1
},
{
"date": "2021-08-09",
"count": 1
},
{
"date": "2021-08-10",
"count": 1
},
{
"date": "2021-08-14",
"count": 1
},
{
"date": "2021-08-22",
"count": 1
},
{
"date": "2021-08-24",
"count": 1
},
{
"date": "2021-08-25",
"count": 2
},
{
"date": "2021-09-02",
"count": 1
},
{
"date": "2021-09-04",
"count": 1
},
{
"date": "2021-09-06",
"count": 2
},
{
"date": "2021-09-07",
"count": 1
},
{
"date": "2021-09-10",
"count": 1
},
{
"date": "2021-09-14",
"count": 3
},
{
"date": "2021-09-16",
"count": 1
},
{
"date": "2021-09-21",
"count": 1
},
{
"date": "2021-09-23",
"count": 1
},
{
"date": "2021-09-24",
"count": 1
},
{
"date": "2021-10-06",
"count": 1
},
{
"date": "2021-10-08",
"count": 1
},
{
"date": "2021-10-09",
"count": 1
},
{
"date": "2021-10-16",
"count": 1
},
{
"date": "2021-10-19",
"count": 2
},
{
"date": "2021-10-23",
"count": 1
},
{
"date": "2021-10-25",
"count": 1
},
{
"date": "2021-10-27",
"count": 2
},
{
"date": "2021-10-28",
"count": 1
},
{
"date": "2021-10-29",
"count": 1
},
{
"date": "2021-11-03",
"count": 1
},
{
"date": "2021-11-05",
"count": 1
},
{
"date": "2021-11-07",
"count": 1
},
{
"date": "2021-11-11",
"count": 1
},
{
"date": "2021-11-17",
"count": 2
},
{
"date": "2021-11-18",
"count": 3
},
{
"date": "2021-11-22",
"count": 1
},
{
"date": "2021-11-24",
"count": 1
},
{
"date": "2021-11-27",
"count": 1
},
{
"date": "2021-11-29",
"count": 2
},
{
"date": "2021-11-30",
"count": 1
},
{
"date": "2021-12-02",
"count": 1
},
{
"date": "2021-12-13",
"count": 1
},
{
"date": "2021-12-14",
"count": 1
},
{
"date": "2021-12-16",
"count": 1
},
{
"date": "2021-12-18",
"count": 2
},
{
"date": "2021-12-22",
"count": 1
},
{
"date": "2021-12-23",
"count": 1
},
{
"date": "2021-12-25",
"count": 1
},
{
"date": "2021-12-27",
"count": 1
},
{
"date": "2022-01-05",
"count": 1
},
{
"date": "2022-01-06",
"count": 1
},
{
"date": "2022-01-07",
"count": 1
},
{
"date": "2022-01-09",
"count": 1
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-01-16",
"count": 1
},
{
"date": "2022-01-18",
"count": 2
},
{
"date": "2022-01-19",
"count": 2
},
{
"date": "2022-01-26",
"count": 2
},
{
"date": "2022-01-28",
"count": 2
},
{
"date": "2022-01-31",
"count": 1
},
{
"date": "2022-02-03",
"count": 1
},
{
"date": "2022-02-08",
"count": 1
},
{
"date": "2022-02-09",
"count": 1
},
{
"date": "2022-02-11",
"count": 2
},
{
"date": "2022-02-12",
"count": 1
},
{
"date": "2022-02-14",
"count": 2
},
{
"date": "2022-02-16",
"count": 1
},
{
"date": "2022-02-18",
"count": 1
},
{
"date": "2022-02-19",
"count": 2
},
{
"date": "2022-02-21",
"count": 1
},
{
"date": "2022-02-23",
"count": 1
},
{
"date": "2022-02-25",
"count": 1
},
{
"date": "2022-02-27",
"count": 1
},
{
"date": "2022-02-28",
"count": 1
},
{
"date": "2022-03-03",
"count": 1
},
{
"date": "2022-03-06",
"count": 1
},
{
"date": "2022-03-07",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-03-13",
"count": 1
},
{
"date": "2022-03-14",
"count": 1
},
{
"date": "2022-03-18",
"count": 1
},
{
"date": "2022-03-24",
"count": 1
},
{
"date": "2022-03-29",
"count": 1
},
{
"date": "2022-03-30",
"count": 1
},
{
"date": "2022-04-04",
"count": 2
},
{
"date": "2022-04-06",
"count": 2
},
{
"date": "2022-04-07",
"count": 1
},
{
"date": "2022-04-15",
"count": 3
},
{
"date": "2022-04-18",
"count": 1
},
{
"date": "2022-04-19",
"count": 1
},
{
"date": "2022-04-20",
"count": 1
},
{
"date": "2022-04-21",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-04-27",
"count": 2
},
{
"date": "2022-04-29",
"count": 2
},
{
"date": "2022-05-17",
"count": 2
},
{
"date": "2022-05-18",
"count": 1
},
{
"date": "2022-05-19",
"count": 2
},
{
"date": "2022-05-20",
"count": 2
},
{
"date": "2022-05-23",
"count": 1
},
{
"date": "2022-05-25",
"count": 1
},
{
"date": "2022-05-27",
"count": 1
},
{
"date": "2022-05-29",
"count": 1
},
{
"date": "2022-05-30",
"count": 1
},
{
"date": "2022-05-31",
"count": 1
},
{
"date": "2022-06-01",
"count": 1
},
{
"date": "2022-06-02",
"count": 1
},
{
"date": "2022-06-03",
"count": 1
},
{
"date": "2022-06-05",
"count": 2
},
{
"date": "2022-06-10",
"count": 3
},
{
"date": "2022-06-11",
"count": 2
},
{
"date": "2022-06-13",
"count": 2
},
{
"date": "2022-06-24",
"count": 2
},
{
"date": "2022-06-27",
"count": 1
},
{
"date": "2022-07-02",
"count": 1
},
{
"date": "2022-07-03",
"count": 1
},
{
"date": "2022-07-06",
"count": 1
},
{
"date": "2022-07-07",
"count": 1
},
{
"date": "2022-07-10",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-07-13",
"count": 1
},
{
"date": "2022-07-15",
"count": 1
},
{
"date": "2022-07-22",
"count": 2
},
{
"date": "2022-07-23",
"count": 1
},
{
"date": "2022-07-27",
"count": 1
},
{
"date": "2022-07-29",
"count": 2
},
{
"date": "2022-07-31",
"count": 1
},
{
"date": "2022-08-02",
"count": 1
},
{
"date": "2022-08-04",
"count": 1
},
{
"date": "2022-08-07",
"count": 2
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-15",
"count": 1
},
{
"date": "2022-08-18",
"count": 1
},
{
"date": "2022-08-19",
"count": 1
},
{
"date": "2022-08-21",
"count": 1
},
{
"date": "2022-08-22",
"count": 1
},
{
"date": "2022-08-24",
"count": 1
},
{
"date": "2022-08-30",
"count": 2
},
{
"date": "2022-09-01",
"count": 1
},
{
"date": "2022-09-06",
"count": 1
},
{
"date": "2022-09-09",
"count": 1
},
{
"date": "2022-09-12",
"count": 1
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-09-18",
"count": 1
},
{
"date": "2022-09-21",
"count": 1
},
{
"date": "2022-09-24",
"count": 1
},
{
"date": "2022-09-26",
"count": 1
},
{
"date": "2022-09-27",
"count": 2
},
{
"date": "2022-09-28",
"count": 2
},
{
"date": "2022-10-08",
"count": 2
},
{
"date": "2022-10-11",
"count": 1
},
{
"date": "2022-10-13",
"count": 1
},
{
"date": "2022-10-17",
"count": 3
},
{
"date": "2022-10-19",
"count": 1
},
{
"date": "2022-10-24",
"count": 1
},
{
"date": "2022-10-25",
"count": 1
},
{
"date": "2022-10-27",
"count": 1
},
{
"date": "2022-11-03",
"count": 1
},
{
"date": "2022-11-04",
"count": 1
},
{
"date": "2022-11-06",
"count": 1
},
{
"date": "2022-11-08",
"count": 1
},
{
"date": "2022-11-09",
"count": 1
},
{
"date": "2022-11-11",
"count": 1
},
{
"date": "2022-11-12",
"count": 1
},
{
"date": "2022-11-15",
"count": 2
},
{
"date": "2022-11-18",
"count": 1
},
{
"date": "2022-11-20",
"count": 1
},
{
"date": "2022-11-22",
"count": 1
},
{
"date": "2022-12-01",
"count": 1
},
{
"date": "2022-12-03",
"count": 2
},
{
"date": "2022-12-06",
"count": 2
},
{
"date": "2022-12-08",
"count": 1
},
{
"date": "2022-12-09",
"count": 3
},
{
"date": "2022-12-10",
"count": 1
},
{
"date": "2022-12-11",
"count": 1
},
{
"date": "2022-12-12",
"count": 1
},
{
"date": "2022-12-13",
"count": 1
},
{
"date": "2022-12-14",
"count": 1
},
{
"date": "2022-12-16",
"count": 1
},
{
"date": "2022-12-20",
"count": 1
},
{
"date": "2022-12-21",
"count": 1
},
{
"date": "2022-12-24",
"count": 1
},
{
"date": "2022-12-25",
"count": 1
},
{
"date": "2022-12-26",
"count": 1
},
{
"date": "2022-12-27",
"count": 1
},
{
"date": "2022-12-29",
"count": 1
},
{
"date": "2022-12-30",
"count": 1
},
{
"date": "2023-01-05",
"count": 1
},
{
"date": "2023-01-06",
"count": 1
},
{
"date": "2023-01-11",
"count": 1
},
{
"date": "2023-01-12",
"count": 1
},
{
"date": "2023-01-17",
"count": 1
},
{
"date": "2023-01-18",
"count": 1
},
{
"date": "2023-01-19",
"count": 2
},
{
"date": "2023-01-23",
"count": 1
},
{
"date": "2023-01-25",
"count": 2
},
{
"date": "2023-01-27",
"count": 1
},
{
"date": "2023-01-31",
"count": 1
},
{
"date": "2023-02-01",
"count": 1
},
{
"date": "2023-02-02",
"count": 1
},
{
"date": "2023-02-06",
"count": 1
},
{
"date": "2023-02-07",
"count": 1
},
{
"date": "2023-02-08",
"count": 1
},
{
"date": "2023-02-10",
"count": 1
},
{
"date": "2023-02-13",
"count": 2
},
{
"date": "2023-02-15",
"count": 2
},
{
"date": "2023-02-17",
"count": 1
},
{
"date": "2023-02-19",
"count": 1
},
{
"date": "2023-02-20",
"count": 3
},
{
"date": "2023-02-23",
"count": 1
},
{
"date": "2023-02-27",
"count": 1
},
{
"date": "2023-02-28",
"count": 1
},
{
"date": "2023-03-01",
"count": 2
},
{
"date": "2023-03-02",
"count": 2
},
{
"date": "2023-03-07",
"count": 1
},
{
"date": "2023-03-08",
"count": 1
},
{
"date": "2023-03-11",
"count": 1
},
{
"date": "2023-03-13",
"count": 1
},
{
"date": "2023-03-17",
"count": 1
},
{
"date": "2023-03-19",
"count": 1
},
{
"date": "2023-03-22",
"count": 1
},
{
"date": "2023-03-27",
"count": 1
},
{
"date": "2023-03-28",
"count": 2
},
{
"date": "2023-03-29",
"count": 1
},
{
"date": "2023-04-01",
"count": 1
},
{
"date": "2023-04-04",
"count": 1
},
{
"date": "2023-04-11",
"count": 1
},
{
"date": "2023-04-22",
"count": 1
},
{
"date": "2023-04-23",
"count": 1
},
{
"date": "2023-04-24",
"count": 2
},
{
"date": "2023-04-25",
"count": 1
},
{
"date": "2023-04-26",
"count": 1
},
{
"date": "2023-04-28",
"count": 1
},
{
"date": "2023-05-07",
"count": 2
},
{
"date": "2023-05-14",
"count": 1
},
{
"date": "2023-05-15",
"count": 1
},
{
"date": "2023-05-16",
"count": 1
},
{
"date": "2023-05-17",
"count": 1
},
{
"date": "2023-05-18",
"count": 1
},
{
"date": "2023-05-19",
"count": 3
},
{
"date": "2023-05-22",
"count": 1
},
{
"date": "2023-05-23",
"count": 1
},
{
"date": "2023-05-24",
"count": 1
},
{
"date": "2023-05-25",
"count": 1
},
{
"date": "2023-06-04",
"count": 1
},
{
"date": "2023-06-06",
"count": 1
},
{
"date": "2023-06-10",
"count": 1
},
{
"date": "2023-06-12",
"count": 2
},
{
"date": "2023-06-15",
"count": 1
},
{
"date": "2023-06-19",
"count": 2
},
{
"date": "2023-07-04",
"count": 1
},
{
"date": "2023-07-06",
"count": 2
},
{
"date": "2023-07-07",
"count": 3
},
{
"date": "2023-07-16",
"count": 1
},
{
"date": "2023-07-18",
"count": 1
},
{
"date": "2023-07-22",
"count": 1
},
{
"date": "2023-07-24",
"count": 1
},
{
"date": "2023-07-28",
"count": 1
},
{
"date": "2023-07-31",
"count": 1
},
{
"date": "2023-08-01",
"count": 1
},
{
"date": "2023-08-02",
"count": 1
},
{
"date": "2023-08-04",
"count": 3
},
{
"date": "2023-08-05",
"count": 1
},
{
"date": "2023-08-06",
"count": 1
},
{
"date": "2023-08-07",
"count": 1
},
{
"date": "2023-08-11",
"count": 1
},
{
"date": "2023-08-17",
"count": 1
},
{
"date": "2023-08-19",
"count": 1
},
{
"date": "2023-08-22",
"count": 2
},
{
"date": "2023-08-24",
"count": 1
},
{
"date": "2023-08-25",
"count": 1
},
{
"date": "2023-09-03",
"count": 1
},
{
"date": "2023-09-04",
"count": 1
},
{
"date": "2023-09-06",
"count": 1
},
{
"date": "2023-09-10",
"count": 1
},
{
"date": "2023-09-13",
"count": 1
},
{
"date": "2023-09-15",
"count": 1
},
{
"date": "2023-09-20",
"count": 1
},
{
"date": "2023-09-27",
"count": 1
},
{
"date": "2023-10-03",
"count": 1
},
{
"date": "2023-10-06",
"count": 1
},
{
"date": "2023-10-07",
"count": 1
},
{
"date": "2023-10-09",
"count": 2
},
{
"date": "2023-10-13",
"count": 1
},
{
"date": "2023-10-23",
"count": 1
},
{
"date": "2023-10-24",
"count": 3
},
{
"date": "2023-10-25",
"count": 1
},
{
"date": "2023-10-27",
"count": 1
},
{
"date": "2023-11-01",
"count": 1
},
{
"date": "2023-11-07",
"count": 1
},
{
"date": "2023-11-08",
"count": 1
},
{
"date": "2023-11-09",
"count": 3
},
{
"date": "2023-11-10",
"count": 1
},
{
"date": "2023-11-12",
"count": 1
},
{
"date": "2023-11-15",
"count": 1
},
{
"date": "2023-11-19",
"count": 1
},
{
"date": "2023-11-26",
"count": 1
},
{
"date": "2023-11-28",
"count": 2
},
{
"date": "2023-12-04",
"count": 1
},
{
"date": "2023-12-06",
"count": 1
},
{
"date": "2023-12-07",
"count": 1
},
{
"date": "2023-12-13",
"count": 1
},
{
"date": "2023-12-16",
"count": 2
},
{
"date": "2023-12-19",
"count": 2
},
{
"date": "2023-12-20",
"count": 1
},
{
"date": "2023-12-22",
"count": 1
},
{
"date": "2024-01-04",
"count": 1
},
{
"date": "2024-01-06",
"count": 1
},
{
"date": "2024-01-10",
"count": 2
},
{
"date": "2024-01-14",
"count": 1
},
{
"date": "2024-01-18",
"count": 1
},
{
"date": "2024-01-19",
"count": 1
},
{
"date": "2024-01-22",
"count": 1
},
{
"date": "2024-01-24",
"count": 1
},
{
"date": "2024-01-25",
"count": 1
},
{
"date": "2024-01-30",
"count": 1
},
{
"date": "2024-01-31",
"count": 2
},
{
"date": "2024-02-02",
"count": 1
},
{
"date": "2024-02-03",
"count": 1
},
{
"date": "2024-02-04",
"count": 2
},
{
"date": "2024-02-05",
"count": 1
},
{
"date": "2024-02-07",
"count": 3
},
{
"date": "2024-02-08",
"count": 1
},
{
"date": "2024-02-10",
"count": 1
},
{
"date": "2024-02-15",
"count": 1
},
{
"date": "2024-02-16",
"count": 2
},
{
"date": "2024-02-17",
"count": 1
},
{
"date": "2024-02-21",
"count": 1
},
{
"date": "2024-02-22",
"count": 1
},
{
"date": "2024-02-25",
"count": 1
},
{
"date": "2024-02-27",
"count": 1
},
{
"date": "2024-02-29",
"count": 1
},
{
"date": "2024-03-08",
"count": 1
},
{
"date": "2024-03-12",
"count": 2
},
{
"date": "2024-03-13",
"count": 1
},
{
"date": "2024-03-17",
"count": 1
},
{
"date": "2024-03-18",
"count": 1
},
{
"date": "2024-03-19",
"count": 1
},
{
"date": "2024-03-21",
"count": 1
},
{
"date": "2024-03-22",
"count": 1
},
{
"date": "2024-03-26",
"count": 1
},
{
"date": "2024-03-27",
"count": 1
},
{
"date": "2024-03-29",
"count": 1
},
{
"date": "2024-04-02",
"count": 1
},
{
"date": "2024-04-15",
"count": 1
},
{
"date": "2024-04-16",
"count": 1
},
{
"date": "2024-04-17",
"count": 1
},
{
"date": "2024-04-19",
"count": 1
},
{
"date": "2024-04-21",
"count": 1
},
{
"date": "2024-04-26",
"count": 1
},
{
"date": "2024-04-28",
"count": 1
},
{
"date": "2024-05-03",
"count": 1
},
{
"date": "2024-05-07",
"count": 1
},
{
"date": "2024-05-10",
"count": 1
},
{
"date": "2024-05-11",
"count": 1
},
{
"date": "2024-05-14",
"count": 1
},
{
"date": "2024-05-20",
"count": 1
},
{
"date": "2024-05-25",
"count": 2
},
{
"date": "2024-05-29",
"count": 1
},
{
"date": "2024-06-01",
"count": 1
},
{
"date": "2024-06-03",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-06-22",
"count": 1
},
{
"date": "2024-06-23",
"count": 1
},
{
"date": "2024-06-24",
"count": 1
},
{
"date": "2024-06-27",
"count": 1
},
{
"date": "2024-06-28",
"count": 1
},
{
"date": "2024-07-02",
"count": 1
},
{
"date": "2024-07-04",
"count": 1
},
{
"date": "2024-07-06",
"count": 1
},
{
"date": "2024-07-09",
"count": 1
},
{
"date": "2024-07-12",
"count": 1
},
{
"date": "2024-07-25",
"count": 2
},
{
"date": "2024-07-26",
"count": 1
},
{
"date": "2024-07-31",
"count": 1
},
{
"date": "2024-08-01",
"count": 3
},
{
"date": "2024-08-02",
"count": 1
},
{
"date": "2024-08-12",
"count": 3
},
{
"date": "2024-08-13",
"count": 1
},
{
"date": "2024-08-17",
"count": 1
},
{
"date": "2024-08-19",
"count": 1
},
{
"date": "2024-08-20",
"count": 1
},
{
"date": "2024-08-22",
"count": 1
},
{
"date": "2024-08-25",
"count": 1
},
{
"date": "2024-08-26",
"count": 1
},
{
"date": "2024-08-28",
"count": 1
},
{
"date": "2024-08-31",
"count": 1
},
{
"date": "2024-09-06",
"count": 2
},
{
"date": "2024-09-07",
"count": 1
},
{
"date": "2024-09-10",
"count": 1
},
{
"date": "2024-09-11",
"count": 1
},
{
"date": "2024-09-14",
"count": 1
},
{
"date": "2024-09-18",
"count": 2
},
{
"date": "2024-09-22",
"count": 2
},
{
"date": "2024-09-23",
"count": 1
},
{
"date": "2024-10-01",
"count": 1
},
{
"date": "2024-10-02",
"count": 1
},
{
"date": "2024-10-03",
"count": 1
},
{
"date": "2024-10-04",
"count": 1
},
{
"date": "2024-10-05",
"count": 1
},
{
"date": "2024-10-10",
"count": 2
},
{
"date": "2024-10-11",
"count": 1
},
{
"date": "2024-10-12",
"count": 2
},
{
"date": "2024-10-14",
"count": 1
},
{
"date": "2024-10-16",
"count": 1
},
{
"date": "2024-10-20",
"count": 1
},
{
"date": "2024-10-23",
"count": 3
},
{
"date": "2024-10-24",
"count": 1
},
{
"date": "2024-10-25",
"count": 2
},
{
"date": "2024-10-27",
"count": 2
},
{
"date": "2024-10-29",
"count": 1
},
{
"date": "2024-11-03",
"count": 1
},
{
"date": "2024-11-05",
"count": 1
},
{
"date": "2024-11-15",
"count": 1
},
{
"date": "2024-11-24",
"count": 1
},
{
"date": "2024-11-25",
"count": 1
},
{
"date": "2024-11-27",
"count": 1
},
{
"date": "2024-11-29",
"count": 1
},
{
"date": "2024-12-05",
"count": 1
},
{
"date": "2024-12-09",
"count": 1
},
{
"date": "2024-12-10",
"count": 1
},
{
"date": "2024-12-11",
"count": 1
},
{
"date": "2024-12-12",
"count": 1
},
{
"date": "2024-12-24",
"count": 1
},
{
"date": "2024-12-25",
"count": 1
},
{
"date": "2024-12-26",
"count": 1
},
{
"date": "2024-12-27",
"count": 1
},
{
"date": "2024-12-31",
"count": 1
},
{
"date": "2025-01-09",
"count": 3
},
{
"date": "2025-01-16",
"count": 1
},
{
"date": "2025-01-18",
"count": 1
},
{
"date": "2025-01-19",
"count": 1
},
{
"date": "2025-02-12",
"count": 1
},
{
"date": "2025-02-15",
"count": 1
},
{
"date": "2025-02-17",
"count": 1
},
{
"date": "2025-02-24",
"count": 1
},
{
"date": "2025-03-02",
"count": 1
},
{
"date": "2025-03-07",
"count": 1
},
{
"date": "2025-03-08",
"count": 1
},
{
"date": "2025-03-17",
"count": 1
},
{
"date": "2025-03-24",
"count": 1
},
{
"date": "2025-04-06",
"count": 1
},
{
"date": "2025-04-07",
"count": 1
},
{
"date": "2025-04-08",
"count": 1
},
{
"date": "2025-04-10",
"count": 1
},
{
"date": "2025-04-14",
"count": 2
},
{
"date": "2025-04-18",
"count": 2
},
{
"date": "2025-04-23",
"count": 1
},
{
"date": "2025-04-25",
"count": 1
},
{
"date": "2025-04-26",
"count": 1
},
{
"date": "2025-05-05",
"count": 2
},
{
"date": "2025-05-06",
"count": 2
},
{
"date": "2025-05-08",
"count": 1
},
{
"date": "2025-05-16",
"count": 1
},
{
"date": "2025-05-23",
"count": 1
},
{
"date": "2025-05-24",
"count": 1
},
{
"date": "2025-05-25",
"count": 2
},
{
"date": "2025-05-28",
"count": 1
},
{
"date": "2025-05-29",
"count": 1
},
{
"date": "2025-05-30",
"count": 1
},
{
"date": "2025-06-01",
"count": 1
},
{
"date": "2025-06-09",
"count": 2
},
{
"date": "2025-06-21",
"count": 1
},
{
"date": "2025-06-24",
"count": 1
},
{
"date": "2025-06-30",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-08",
"count": 1
},
{
"date": "2025-07-13",
"count": 1
},
{
"date": "2025-07-21",
"count": 1
},
{
"date": "2025-07-25",
"count": 1
},
{
"date": "2025-07-27",
"count": 1
},
{
"date": "2025-07-30",
"count": 1
},
{
"date": "2025-07-31",
"count": 1
},
{
"date": "2025-08-04",
"count": 2
},
{
"date": "2025-08-07",
"count": 1
},
{
"date": "2025-08-08",
"count": 1
},
{
"date": "2025-08-13",
"count": 1
},
{
"date": "2025-08-15",
"count": 1
},
{
"date": "2025-08-20",
"count": 1
},
{
"date": "2025-08-22",
"count": 1
},
{
"date": "2025-08-27",
"count": 1
},
{
"date": "2025-09-06",
"count": 3
},
{
"date": "2025-09-13",
"count": 1
},
{
"date": "2025-09-14",
"count": 1
},
{
"date": "2025-09-15",
"count": 1
},
{
"date": "2025-09-17",
"count": 1
},
{
"date": "2025-09-26",
"count": 1
},
{
"date": "2025-10-01",
"count": 1
},
{
"date": "2025-10-11",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-17",
"count": 1
},
{
"date": "2025-10-20",
"count": 1
},
{
"date": "2025-10-21",
"count": 1
},
{
"date": "2025-10-25",
"count": 1
},
{
"date": "2025-10-31",
"count": 1
},
{
"date": "2025-11-01",
"count": 1
},
{
"date": "2025-11-03",
"count": 1
},
{
"date": "2025-11-04",
"count": 2
},
{
"date": "2025-11-08",
"count": 1
},
{
"date": "2025-11-09",
"count": 1
},
{
"date": "2025-11-10",
"count": 1
},
{
"date": "2025-11-11",
"count": 1
},
{
"date": "2025-11-12",
"count": 1
},
{
"date": "2025-11-14",
"count": 1
},
{
"date": "2025-11-15",
"count": 1
},
{
"date": "2025-11-18",
"count": 1
},
{
"date": "2025-11-19",
"count": 1
},
{
"date": "2025-11-25",
"count": 1
},
{
"date": "2025-11-28",
"count": 1
},
{
"date": "2025-12-03",
"count": 1
},
{
"date": "2025-12-06",
"count": 1
},
{
"date": "2025-12-07",
"count": 2
},
{
"date": "2025-12-10",
"count": 1
},
{
"date": "2025-12-17",
"count": 1
},
{
"date": "2025-12-23",
"count": 1
},
{
"date": "2025-12-26",
"count": 1
},
{
"date": "2026-01-01",
"count": 1
},
{
"date": "2026-01-05",
"count": 2
},
{
"date": "2026-01-06",
"count": 1
},
{
"date": "2026-01-11",
"count": 1
},
{
"date": "2026-01-12",
"count": 1
},
{
"date": "2026-01-16",
"count": 1
},
{
"date": "2026-01-20",
"count": 1
},
{
"date": "2026-01-29",
"count": 2
},
{
"date": "2026-01-30",
"count": 2
},
{
"date": "2026-01-31",
"count": 1
},
{
"date": "2026-02-05",
"count": 1
},
{
"date": "2026-02-08",
"count": 1
},
{
"date": "2026-02-09",
"count": 2
},
{
"date": "2026-02-12",
"count": 1
},
{
"date": "2026-02-19",
"count": 1
},
{
"date": "2026-02-20",
"count": 1
},
{
"date": "2026-02-22",
"count": 3
},
{
"date": "2026-02-24",
"count": 1
},
{
"date": "2026-02-25",
"count": 1
},
{
"date": "2026-02-26",
"count": 1
},
{
"date": "2026-02-27",
"count": 1
},
{
"date": "2026-02-28",
"count": 1
},
{
"date": "2026-03-04",
"count": 1
},
{
"date": "2026-03-05",
"count": 1
},
{
"date": "2026-03-07",
"count": 1
},
{
"date": "2026-03-09",
"count": 1
},
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-03-15",
"count": 1
},
{
"date": "2026-03-29",
"count": 1
},
{
"date": "2026-03-31",
"count": 1
},
{
"date": "2026-04-04",
"count": 1
},
{
"date": "2026-04-07",
"count": 1
},
{
"date": "2026-04-13",
"count": 1
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-18",
"count": 1
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-05-03",
"count": 2
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-05-06",
"count": 1
},
{
"date": "2026-05-08",
"count": 2
},
{
"date": "2026-05-15",
"count": 1
},
{
"date": "2026-05-17",
"count": 2
},
{
"date": "2026-05-20",
"count": 2
},
{
"date": "2026-05-24",
"count": 1
},
{
"date": "2026-05-28",
"count": 1
},
{
"date": "2026-06-01",
"count": 2
},
{
"date": "2026-06-03",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-06-18",
"count": 1
},
{
"date": "2026-06-20",
"count": 1
},
{
"date": "2026-06-23",
"count": 1
},
{
"date": "2026-06-28",
"count": 1
},
{
"date": "2026-07-04",
"count": 1
},
{
"date": "2026-07-07",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-13",
"count": 1
},
{
"date": "2026-07-18",
"count": 1
},
{
"date": "2026-07-22",
"count": 1
}
],
"complete": false,
"collected": 1000,
"total_forks": 1224
},
"star_history": null,
"open_issues_and_prs": 561
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples",
"sample"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"justfile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"crates/typescript-tests/tsconfig.json"
],
"toolchain_manifests": [
"Cargo.toml",
"benchmarks/Cargo.toml",
"benchmarks/wcodspeed/Cargo.toml",
"crates/cli-support/Cargo.toml",
"crates/cli/Cargo.toml",
"crates/futures/Cargo.toml",
"crates/js-sys/Cargo.toml",
"crates/macro-support/Cargo.toml",
"crates/macro/Cargo.toml",
"crates/msrv/cli/Cargo.toml",
"crates/msrv/lib/Cargo.toml",
"crates/msrv/resolver/Cargo.toml",
"crates/shared/Cargo.toml",
"crates/test-macro/Cargo.toml",
"crates/test-shared/Cargo.toml",
"crates/test/Cargo.toml",
"crates/test/sample/Cargo.toml",
"crates/typescript-tests/Cargo.toml",
"crates/web-sys/Cargo.toml",
"crates/webidl-tests/Cargo.toml",
"crates/webidl/Cargo.toml",
"examples/add/Cargo.toml",
"examples/canvas/Cargo.toml",
"examples/char/Cargo.toml",
"examples/closures/Cargo.toml",
"examples/console_log/Cargo.toml",
"examples/dom/Cargo.toml",
"examples/duck-typed-interfaces/Cargo.toml",
"examples/explicit-resource-management/Cargo.toml",
"examples/fetch/Cargo.toml",
"examples/guide-supported-types-examples/Cargo.toml",
"examples/hello_world/Cargo.toml",
"examples/import_js/crate/Cargo.toml",
"examples/julia_set/Cargo.toml",
"examples/nodejs-threads/Cargo.toml",
"examples/nodejs_and_deno/Cargo.toml",
"examples/paint/Cargo.toml",
"examples/performance/Cargo.toml",
"examples/raytrace-parallel/Cargo.toml",
"examples/request-animation-frame/Cargo.toml",
"examples/synchronous-instantiation/Cargo.toml",
"examples/todomvc/Cargo.toml",
"examples/wasm-audio-worklet/Cargo.toml",
"examples/wasm-in-wasm-imports/Cargo.toml",
"examples/wasm-in-wasm/Cargo.toml",
"examples/wasm-in-web-worker/Cargo.toml",
"examples/weather_report/Cargo.toml",
"examples/webaudio/Cargo.toml",
"examples/webgl/Cargo.toml",
"examples/webrtc_datachannel/Cargo.toml",
"examples/websockets/Cargo.toml",
"examples/webxr/Cargo.toml",
"examples/without-a-bundler-no-modules/Cargo.toml",
"examples/without-a-bundler/Cargo.toml",
"tests/crates/a/Cargo.toml",
"tests/crates/b/Cargo.toml",
"tests/no-std/Cargo.toml"
],
"largest_source_bytes": 636365,
"source_files_sampled": 2738,
"oversized_source_files": 27,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Cargo.toml",
"benchmarks/Cargo.toml",
"examples/package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [
{
"name": "paste",
"direct": true,
"version": "1.0.15",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0436"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 653
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"unknown": 1
},
"advisory_count": 1,
"affected_count": 1,
"assessed_count": 18,
"malicious_count": 0,
"assessed_package": "crates:wasm-bindgen@0.2.126",
"unassessed_count": 0,
"direct_affected_count": 1
},
"ecosystems": [
"crates",
"npm"
],
"dependencies": [
{
"name": "cfg-if",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0.0"
},
{
"name": "once_cell",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.12"
},
{
"name": "serde",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0"
},
{
"name": "serde_json",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0"
},
{
"name": "wasm-bindgen-macro",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "=0.2.126"
},
{
"name": "wasm-bindgen-shared",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "=0.2.126"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "cfg-if",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "once_cell",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde_json",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-macro",
"direct": true,
"version": "0.2.126",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-shared",
"direct": true,
"version": "0.2.126",
"ecosystem": "crates"
},
{
"name": "anyhow",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "askama",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "assert_cmd",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "async-trait",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "base64",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "bumpalo",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "bumpalo",
"direct": false,
"version": "3.12.0",
"ecosystem": "crates"
},
{
"name": "cast",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "chrono",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "clap",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "console_error_panic_hook",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "console_log",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "env_logger",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "futures",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "futures-channel",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "futures-channel-preview",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "futures-core",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "futures-lite",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "futures-util",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "gg-alloc",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "gloo",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "half",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "heck",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "humantime",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "js-sys",
"direct": false,
"version": "0.3.103",
"ecosystem": "crates"
},
{
"name": "json",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "lazy_static",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "leb128",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "libm",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "log",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "log",
"direct": false,
"version": "0.4.18",
"ecosystem": "crates"
},
{
"name": "minicov",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "native-tls",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "nu-ansi-term",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "num-traits",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "oorandom",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "paste",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "predicates",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "pretty_assertions",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "proc-macro2",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "proc-macro2",
"direct": false,
"version": "1.0.101",
"ecosystem": "crates"
},
{
"name": "quote",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "quote",
"direct": false,
"version": "1.0.40",
"ecosystem": "crates"
},
{
"name": "rayon",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rayon-core",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "regex",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "reqwest",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rouille",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rstest",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rustc-demangle",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "rustversion",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde-wasm-bindgen",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde_derive",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "shlex",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "sourcefile",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "statrs",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "syn",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "tempfile",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "time",
"direct": false,
"version": "0.3.45",
"ecosystem": "crates"
},
{
"name": "tokio",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "trybuild",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "unicode-ident",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "ureq",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "walrus",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "wasm-bindgen",
"direct": false,
"version": "0.2.126",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-cli-support",
"direct": false,
"version": "0.2.126",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-futures",
"direct": false,
"version": "0.4.76",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-macro-support",
"direct": false,
"version": "0.2.126",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-test-macro",
"direct": false,
"version": "0.3.76",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-test-shared",
"direct": false,
"version": "0.2.126",
"ecosystem": "crates"
},
{
"name": "wasmparser",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "wasmprinter",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "wast",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "wat",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "weedle",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "@playwright/test",
"direct": false,
"version": "^1.55.0",
"ecosystem": "npm"
},
{
"name": "@types/jest",
"direct": false,
"version": "^29.5.8",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "^24.3.0",
"ecosystem": "npm"
},
{
"name": "@wasm-tool/wasm-pack-plugin",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "cargo-cp-artifact",
"direct": false,
"version": "^0.1.9",
"ecosystem": "npm"
},
{
"name": "copy-webpack-plugin",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "cross-env",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "css-loader",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "html-webpack-plugin",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "mini-css-extract-plugin",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "serve",
"direct": false,
"version": "^14.2.4",
"ecosystem": "npm"
},
{
"name": "ts-jest",
"direct": false,
"version": "29.2.0",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "^5.2.2",
"ecosystem": "npm"
},
{
"name": "webpack",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "webpack-cli",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "webpack-dev-server",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 97,
"direct_count": 6,
"indirect_count": 91
}
},
"maintainership": {
"issues": {
"open_prs": 84,
"merged_prs": 2318,
"open_issues": 477,
"closed_ratio": 0.79,
"closed_issues": 1792,
"closed_unmerged_prs": 349
},
"bus_factor": 2,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "alexcrichton",
"commits": 1574,
"avatar_url": "https://avatars.githubusercontent.com/u/64996?v=4"
},
{
"type": "User",
"login": "fitzgen",
"commits": 457,
"avatar_url": "https://avatars.githubusercontent.com/u/74571?v=4"
},
{
"type": "User",
"login": "daxpedda",
"commits": 229,
"avatar_url": "https://avatars.githubusercontent.com/u/1645124?v=4"
},
{
"type": "User",
"login": "guybedford",
"commits": 149,
"avatar_url": "https://avatars.githubusercontent.com/u/598730?v=4"
},
{
"type": "User",
"login": "RReverser",
"commits": 121,
"avatar_url": "https://avatars.githubusercontent.com/u/557590?v=4"
},
{
"type": "User",
"login": "Pauan",
"commits": 74,
"avatar_url": "https://avatars.githubusercontent.com/u/97238?v=4"
},
{
"type": "User",
"login": "richard-uk1",
"commits": 65,
"avatar_url": "https://avatars.githubusercontent.com/u/1392222?v=4"
},
{
"type": "User",
"login": "sendilkumarn",
"commits": 63,
"avatar_url": "https://avatars.githubusercontent.com/u/12471122?v=4"
},
{
"type": "User",
"login": "Liamolucko",
"commits": 61,
"avatar_url": "https://avatars.githubusercontent.com/u/43807659?v=4"
},
{
"type": "User",
"login": "RunDevelopment",
"commits": 53,
"avatar_url": "https://avatars.githubusercontent.com/u/20878432?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.42
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"codecov.yml",
"main.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 7,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 8,
"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": "30 out of 30 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": 10,
"reason": "all changesets reviewed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 63 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"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 0 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": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not 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": 10,
"reason": "GitHub workflow tokens follow principle of least privilege",
"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": "1a2860ea1c2d730150bb71b37969165f8c68ed2f",
"ran_at": "2026-07-22T23:54:21Z",
"aggregate_score": 6.6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-22T02:23:13Z",
"oldest_open_prs": [
{
"number": 1684,
"created_at": "2019-07-30T00:57:14Z",
"last_comment_at": "2019-07-30T20:39:48Z",
"last_comment_author": "alexcrichton"
},
{
"number": 1913,
"created_at": "2019-12-15T20:12:09Z",
"last_comment_at": "2024-07-28T22:16:38Z",
"last_comment_author": "daxpedda"
},
{
"number": 1978,
"created_at": "2020-01-23T19:57:53Z",
"last_comment_at": "2020-01-23T23:11:46Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2093,
"created_at": "2020-04-19T17:19:23Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 2124,
"created_at": "2020-05-06T02:04:12Z",
"last_comment_at": "2020-05-26T20:21:48Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2141,
"created_at": "2020-05-16T23:10:05Z",
"last_comment_at": "2020-05-26T20:20:08Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2191,
"created_at": "2020-06-06T06:25:03Z",
"last_comment_at": "2020-06-20T17:29:17Z",
"last_comment_author": "ctaggart"
},
{
"number": 2211,
"created_at": "2020-06-20T17:22:06Z",
"last_comment_at": "2020-06-23T19:13:26Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2387,
"created_at": "2020-12-03T14:22:48Z",
"last_comment_at": "2020-12-09T22:42:40Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2457,
"created_at": "2021-02-18T13:26:18Z",
"last_comment_at": "2021-02-18T15:44:25Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2463,
"created_at": "2021-02-23T12:57:29Z",
"last_comment_at": "2021-02-23T14:52:22Z",
"last_comment_author": "RReverser"
},
{
"number": 2497,
"created_at": "2021-03-17T16:35:43Z",
"last_comment_at": "2022-02-28T17:11:53Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2506,
"created_at": "2021-03-24T20:22:13Z",
"last_comment_at": "2024-01-24T20:22:02Z",
"last_comment_author": "MendyBerger"
},
{
"number": 2599,
"created_at": "2021-06-22T17:45:45Z",
"last_comment_at": "2021-09-09T20:39:02Z",
"last_comment_author": "alexcrichton"
},
{
"number": 2728,
"created_at": "2021-11-27T16:22:45Z",
"last_comment_at": "2023-05-11T17:41:47Z",
"last_comment_author": "daxpedda"
},
{
"number": 2751,
"created_at": "2021-12-28T04:11:49Z",
"last_comment_at": "2024-05-17T10:44:24Z",
"last_comment_author": "prideout"
},
{
"number": 2852,
"created_at": "2022-04-04T14:39:42Z",
"last_comment_at": "2022-04-06T16:24:21Z",
"last_comment_author": "richard-uk1"
},
{
"number": 2871,
"created_at": "2022-04-20T22:43:30Z",
"last_comment_at": "2024-06-11T09:43:30Z",
"last_comment_author": "haraldreingruber-dedalus"
},
{
"number": 3034,
"created_at": "2022-08-16T18:06:54Z",
"last_comment_at": "2023-03-28T09:50:49Z",
"last_comment_author": "Liamolucko"
},
{
"number": 3088,
"created_at": "2022-09-19T12:37:00Z",
"last_comment_at": "2023-05-11T11:43:47Z",
"last_comment_author": "Hywan"
}
],
"last_merged_pr_at": "2026-07-08T03:21:36Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 19,
"created_at": "2018-02-12T10:02:08Z",
"last_comment_at": "2018-02-12T16:35:55Z",
"last_comment_author": "alexcrichton"
},
{
"number": 43,
"created_at": "2018-03-01T04:47:33Z",
"last_comment_at": "2018-04-17T19:24:16Z",
"last_comment_author": "alexcrichton"
},
{
"number": 59,
"created_at": "2018-03-06T22:37:16Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 60,
"created_at": "2018-03-07T19:46:23Z",
"last_comment_at": "2020-11-20T03:20:36Z",
"last_comment_author": "CraftSpider"
},
{
"number": 122,
"created_at": "2018-04-12T22:06:23Z",
"last_comment_at": "2025-07-17T02:12:38Z",
"last_comment_author": "BobTheWeak"
},
{
"number": 180,
"created_at": "2018-04-30T22:09:26Z",
"last_comment_at": "2018-05-03T18:25:05Z",
"last_comment_author": "ashleygwilliams"
},
{
"number": 210,
"created_at": "2018-05-24T01:40:34Z",
"last_comment_at": "2025-04-08T15:45:14Z",
"last_comment_author": "punkstarman"
},
{
"number": 398,
"created_at": "2018-07-05T23:27:02Z",
"last_comment_at": "2018-07-06T05:17:24Z",
"last_comment_author": "alexcrichton"
},
{
"number": 423,
"created_at": "2018-07-08T16:03:59Z",
"last_comment_at": "2024-11-07T19:10:02Z",
"last_comment_author": "daxpedda"
},
{
"number": 439,
"created_at": "2018-07-10T15:53:55Z",
"last_comment_at": "2024-01-08T10:39:37Z",
"last_comment_author": "daxpedda"
},
{
"number": 458,
"created_at": "2018-07-11T18:41:55Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 621,
"created_at": "2018-08-03T04:57:45Z",
"last_comment_at": "2018-08-06T17:07:20Z",
"last_comment_author": "fitzgen"
},
{
"number": 693,
"created_at": "2018-08-13T08:28:31Z",
"last_comment_at": "2020-12-13T07:38:13Z",
"last_comment_author": "aaron-human"
},
{
"number": 873,
"created_at": "2018-09-23T04:42:47Z",
"last_comment_at": "2025-04-01T16:36:08Z",
"last_comment_author": "mimi89999"
},
{
"number": 882,
"created_at": "2018-09-24T23:06:51Z",
"last_comment_at": "2019-07-31T16:35:20Z",
"last_comment_author": "alexcrichton"
},
{
"number": 905,
"created_at": "2018-09-28T14:16:41Z",
"last_comment_at": "2022-08-03T08:47:39Z",
"last_comment_author": "Nyrox"
},
{
"number": 951,
"created_at": "2018-10-10T12:28:12Z",
"last_comment_at": "2020-03-29T06:41:12Z",
"last_comment_author": "hajifkd"
},
{
"number": 998,
"created_at": "2018-10-30T15:17:32Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1054,
"created_at": "2018-11-27T23:01:14Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1092,
"created_at": "2018-12-08T11:46:50Z",
"last_comment_at": "2018-12-10T19:09:38Z",
"last_comment_author": "alexcrichton"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/wasm-bindgen/wasm-bindgen",
"host": "github.com",
"name": "wasm-bindgen",
"owner": "wasm-bindgen"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 79,
"inputs": {
"security": 71,
"vitality": 95,
"community": 90,
"governance": 73,
"engineering": 67
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 95,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"commits_last_year": 436,
"human_commit_share": 0.95,
"days_since_last_push": 0,
"active_weeks_last_year": 50
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "50/52 weeks with commits",
"points": 34.6,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 50
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "436 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 436
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 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": "0.2.126",
"releases_from_tags": false,
"days_since_latest_release": 28,
"mean_days_between_releases": 9.9
},
"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 28 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 28
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~9.9 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 9.9
}
}
],
"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": 14,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 14 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 14
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "excellent",
"name": "Community & Adoption",
"value": 90,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 96,
"inputs": {
"forks": 1224,
"stars": 9098,
"watchers": 93,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "9,098 stars",
"points": 60,
"status": "met",
"details": [
{
"code": "stars",
"params": {
"count": 9098
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1,224 forks",
"points": 25,
"status": "met",
"details": [
{
"code": "forks",
"params": {
"count": 1224
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "93 watchers",
"points": 10.9,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 93
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"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": 0,
"status": "missed",
"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": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"packages": [
"wasm-bindgen"
],
"dependents": null,
"ecosystems": "crates",
"total_downloads": 443251756,
"monthly_downloads": 37592987
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "37,592,987 downloads/month across crates",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 37592987,
"ecosystems": "crates"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 73,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 98,
"top_contributor_share": 0.42
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 42% of commits",
"points": 13.1,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 42
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 63 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"merged_prs": 2318,
"open_issues": 477,
"closed_issues": 1792,
"issue_closed_ratio": 0.79,
"closed_unmerged_prs": 349
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "79% of issues closed",
"points": 36.9,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 79
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "2318/2667 decided PRs merged",
"points": 33.2,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 2318,
"decided": 2667
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "all changesets reviewed",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"followers": 136,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "wasm-bindgen",
"public_repos": 6,
"account_age_days": 378
},
"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": "136 followers of wasm-bindgen",
"points": 15.4,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 136,
"login": "wasm-bindgen"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "6 public repos, account ~1 yr old",
"points": 8.2,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 6
}
},
{
"code": "account_age_years",
"params": {
"years": 1
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"wasm-bindgen"
],
"ecosystems": "crates",
"any_deprecated": false,
"min_days_since_publish": 28
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on crates",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "crates"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 28 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 28
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "126 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 126
}
}
],
"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": "moderate",
"name": "Engineering Quality",
"value": 67,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [
"wasm",
"javascript",
"rust",
"binding-generator",
"rust-wasm"
],
"has_wiki": false,
"homepage": "https://wasm-bindgen.github.io/wasm-bindgen/",
"has_readme": true,
"has_docs_dir": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://wasm-bindgen.github.io/wasm-bindgen/",
"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": "5 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 5
}
}
],
"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": "good",
"name": "Security",
"value": 71,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 66,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 6.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 5.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "30 out of 30 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": "all changesets reviewed",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 63 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"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 0 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": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"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": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"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": "excellent",
"name": "Dependency advisories",
"note": "Matched the crates:wasm-bindgen@0.2.126 runtime dependency closure — what installing the published package pulls in — 18 packages. Reachability is not analyzed.",
"notes": [
{
"code": "advisories_scope_published",
"params": {
"package": "crates:wasm-bindgen@0.2.126",
"assessed": 18
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 89,
"inputs": {
"source": "osv",
"advisories": 1,
"affected_packages": 1,
"assessed_packages": 18,
"unassessed_packages": 0,
"affected_by_severity": "unknown 1",
"direct_affected_packages": 1
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "1 affected: paste 1.0.15 (unknown)",
"points": 26.6,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "paste 1.0.15 (unknown)"
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "no indirect dependency carries a known advisory",
"points": 25,
"status": "met",
"details": [
{
"code": "no_indirect_advisories",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 653 days ago",
"points": 37.2,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 653
}
}
],
"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": 18,
"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": 17
},
"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": "moderate",
"name": "AI Readiness",
"value": 57,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.916,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"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": "87 of 95 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 87,
"sampled": 95
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"justfile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"crates/typescript-tests/tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [
"Cargo.toml",
"benchmarks/Cargo.toml",
"benchmarks/wcodspeed/Cargo.toml",
"crates/cli-support/Cargo.toml",
"crates/cli/Cargo.toml",
"crates/futures/Cargo.toml",
"crates/js-sys/Cargo.toml",
"crates/macro-support/Cargo.toml",
"crates/macro/Cargo.toml",
"crates/msrv/cli/Cargo.toml",
"crates/msrv/lib/Cargo.toml",
"crates/msrv/resolver/Cargo.toml",
"crates/shared/Cargo.toml",
"crates/test-macro/Cargo.toml",
"crates/test-shared/Cargo.toml",
"crates/test/Cargo.toml",
"crates/test/sample/Cargo.toml",
"crates/typescript-tests/Cargo.toml",
"crates/web-sys/Cargo.toml",
"crates/webidl-tests/Cargo.toml",
"crates/webidl/Cargo.toml",
"examples/add/Cargo.toml",
"examples/canvas/Cargo.toml",
"examples/char/Cargo.toml",
"examples/closures/Cargo.toml",
"examples/console_log/Cargo.toml",
"examples/dom/Cargo.toml",
"examples/duck-typed-interfaces/Cargo.toml",
"examples/explicit-resource-management/Cargo.toml",
"examples/fetch/Cargo.toml",
"examples/guide-supported-types-examples/Cargo.toml",
"examples/hello_world/Cargo.toml",
"examples/import_js/crate/Cargo.toml",
"examples/julia_set/Cargo.toml",
"examples/nodejs-threads/Cargo.toml",
"examples/nodejs_and_deno/Cargo.toml",
"examples/paint/Cargo.toml",
"examples/performance/Cargo.toml",
"examples/raytrace-parallel/Cargo.toml",
"examples/request-animation-frame/Cargo.toml",
"examples/synchronous-instantiation/Cargo.toml",
"examples/todomvc/Cargo.toml",
"examples/wasm-audio-worklet/Cargo.toml",
"examples/wasm-in-wasm-imports/Cargo.toml",
"examples/wasm-in-wasm/Cargo.toml",
"examples/wasm-in-web-worker/Cargo.toml",
"examples/weather_report/Cargo.toml",
"examples/webaudio/Cargo.toml",
"examples/webgl/Cargo.toml",
"examples/webrtc_datachannel/Cargo.toml",
"examples/websockets/Cargo.toml",
"examples/webxr/Cargo.toml",
"examples/without-a-bundler-no-modules/Cargo.toml",
"examples/without-a-bundler/Cargo.toml",
"tests/crates/a/Cargo.toml",
"tests/crates/b/Cargo.toml",
"tests/no-std/Cargo.toml"
],
"dependency_bot_commit_share": 0.05
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "justfile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "justfile"
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "crates/typescript-tests/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "crates/typescript-tests/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "5 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 5,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Rust",
"largest_source_bytes": 636365,
"source_files_sampled": 2738,
"oversized_source_files": 27
},
"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": "27/2738 source files over 60KB",
"points": 54.5,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 2738,
"oversized": 27
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples",
"sample"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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, sample",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples, sample"
}
}
],
"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": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-22T23:54:49.999706Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/wasm-bindgen/wasm-bindgen.svg",
"full_name": "wasm-bindgen/wasm-bindgen",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}