JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"rust",
"hashtable"
],
"is_fork": false,
"size_kb": 1288,
"has_wiki": false,
"homepage": "https://docs.rs/indexmap/",
"languages": {
"Rust": 479796
},
"pushed_at": "2026-07-10T22:33:46Z",
"created_at": "2016-09-15T13:06:08Z",
"owner_type": "Organization",
"updated_at": "2026-07-18T02:43:20Z",
"description": "A hash table with consistent order and fast iteration; access items by key or sequence index",
"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": "indexmap-rs",
"company": null,
"location": null,
"followers": 20,
"avatar_url": "https://avatars.githubusercontent.com/u/156262520?v=4",
"created_at": "2024-01-11T00:24:14Z",
"is_verified": null,
"public_repos": 4,
"account_age_days": 923
},
"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": "2.14.0",
"kind": "minor",
"published_at": "2026-04-09T17:51:15Z"
},
{
"tag": "2.13.1",
"kind": "patch",
"published_at": "2026-04-02T23:08:37Z"
},
{
"tag": "2.13.0",
"kind": "minor",
"published_at": "2026-01-07T17:00:11Z"
},
{
"tag": "2.12.1",
"kind": "patch",
"published_at": "2025-11-20T17:53:04Z"
},
{
"tag": "2.12.0",
"kind": "minor",
"published_at": "2025-10-17T22:32:17Z"
},
{
"tag": "2.11.4",
"kind": "patch",
"published_at": "2025-09-18T16:55:51Z"
},
{
"tag": "2.11.3",
"kind": "patch",
"published_at": "2025-09-15T22:03:03Z"
},
{
"tag": "2.11.2",
"kind": "patch",
"published_at": "2025-09-15T21:22:13Z"
},
{
"tag": "2.11.1",
"kind": "patch",
"published_at": "2025-09-09T00:23:18Z"
},
{
"tag": "2.11.0",
"kind": "minor",
"published_at": "2025-08-22T17:16:50Z"
},
{
"tag": "2.10.0",
"kind": "minor",
"published_at": "2025-06-26T20:03:34Z"
},
{
"tag": "2.9.0",
"kind": "minor",
"published_at": "2025-04-04T23:11:16Z"
},
{
"tag": "2.8.0",
"kind": "minor",
"published_at": "2025-03-10T20:01:12Z"
},
{
"tag": "2.7.1",
"kind": "patch",
"published_at": "2025-01-20T00:51:28Z"
},
{
"tag": "2.7.0",
"kind": "minor",
"published_at": "2024-12-01T00:39:30Z"
},
{
"tag": "2.6.0",
"kind": "minor",
"published_at": "2024-10-01T23:37:27Z"
},
{
"tag": "2.5.0",
"kind": "minor",
"published_at": "2024-08-30T18:48:17Z"
},
{
"tag": "2.4.0",
"kind": "minor",
"published_at": "2024-08-13T20:26:36Z"
},
{
"tag": "2.3.0",
"kind": "minor",
"published_at": "2024-07-31T20:41:17Z"
},
{
"tag": "2.2.6",
"kind": "patch",
"published_at": "2024-03-23T00:00:55Z"
},
{
"tag": "2.2.5",
"kind": "patch",
"published_at": "2024-02-29T19:46:04Z"
},
{
"tag": "2.2.4",
"kind": "patch",
"published_at": "2024-02-29T01:25:53Z"
},
{
"tag": "2.2.3",
"kind": "patch",
"published_at": "2024-02-11T22:54:23Z"
},
{
"tag": "2.2.2",
"kind": "patch",
"published_at": "2024-01-31T22:30:18Z"
},
{
"tag": "2.2.1",
"kind": "patch",
"published_at": "2024-01-29T00:34:36Z"
},
{
"tag": "2.2.0",
"kind": "minor",
"published_at": "2024-01-28T16:32:34Z"
},
{
"tag": "2.1.0",
"kind": "minor",
"published_at": "2023-10-31T21:22:04Z"
},
{
"tag": "2.0.2",
"kind": "patch",
"published_at": "2023-09-29T16:36:35Z"
},
{
"tag": "2.0.1",
"kind": "patch",
"published_at": "2023-09-27T16:59:40Z"
},
{
"tag": "2.0.0",
"kind": "major",
"published_at": "2023-06-23T22:35:57Z"
},
{
"tag": "1.9.3",
"kind": "patch",
"published_at": "2023-03-24T23:52:51Z"
},
{
"tag": "1.9.2",
"kind": "patch",
"published_at": "2022-11-17T21:23:28Z"
},
{
"tag": "1.9.1",
"kind": "patch",
"published_at": "2022-06-21T18:03:10Z"
},
{
"tag": "1.9.0",
"kind": "minor",
"published_at": "2022-06-17T00:30:33Z"
},
{
"tag": "1.8.2",
"kind": "patch",
"published_at": "2022-05-27T23:59:45Z"
},
{
"tag": "1.8.1",
"kind": "patch",
"published_at": "2022-03-29T22:51:16Z"
},
{
"tag": "1.8.0",
"kind": "minor",
"published_at": "2022-01-07T19:59:27Z"
},
{
"tag": "1.7.0",
"kind": "minor",
"published_at": "2021-06-29T18:15:48Z"
},
{
"tag": "1.6.2",
"kind": "patch",
"published_at": "2021-03-05T21:31:59Z"
},
{
"tag": "1.6.1",
"kind": "patch",
"published_at": "2020-12-15T01:04:24Z"
},
{
"tag": "1.6.0",
"kind": "minor",
"published_at": "2020-09-05T21:29:25Z"
},
{
"tag": "1.5.2",
"kind": "patch",
"published_at": "2020-09-01T20:03:51Z"
},
{
"tag": "1.5.1",
"kind": "patch",
"published_at": "2020-08-08T00:00:52Z"
},
{
"tag": "1.5.0",
"kind": "minor",
"published_at": "2020-07-18T00:12:03Z"
},
{
"tag": "1.4.0",
"kind": "minor",
"published_at": "2020-06-01T18:07:08Z"
},
{
"tag": "1.3.2",
"kind": "patch",
"published_at": "2020-02-05T18:47:00Z"
},
{
"tag": "1.3.1",
"kind": "patch",
"published_at": "2020-01-15T19:44:56Z"
},
{
"tag": "1.3.0",
"kind": "minor",
"published_at": "2019-10-18T19:44:38Z"
},
{
"tag": "1.2.0",
"kind": "minor",
"published_at": "2019-09-08T12:10:40Z"
},
{
"tag": "1.1.0",
"kind": "minor",
"published_at": "2019-08-20T18:24:36Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2019-08-20T18:24:36Z"
},
{
"tag": "1.0.2",
"kind": "patch",
"published_at": "2018-10-22T18:17:39Z"
},
{
"tag": "1.0.1",
"kind": "patch",
"published_at": "2018-03-24T20:12:21Z"
},
{
"tag": "1.0.0",
"kind": "major",
"published_at": "2018-03-11T11:21:34Z"
},
{
"tag": "0.4.1",
"kind": "patch",
"published_at": "2018-02-14T08:29:52Z"
},
{
"tag": "0.4.0",
"kind": "minor",
"published_at": "2018-02-02T19:20:39Z"
},
{
"tag": "0.3.5",
"kind": "patch",
"published_at": "2018-01-14T20:56:08Z"
},
{
"tag": "0.3.4",
"kind": "patch",
"published_at": "2018-01-04T21:01:04Z"
},
{
"tag": "0.3.3",
"kind": "patch",
"published_at": "2017-12-29T00:56:36Z"
},
{
"tag": "0.3.2",
"kind": "patch",
"published_at": "2017-11-25T18:12:32Z"
},
{
"tag": "0.3.1",
"kind": "patch",
"published_at": "2017-11-19T17:33:05Z"
},
{
"tag": "0.3.0",
"kind": "minor",
"published_at": "2017-10-07T13:26:17Z"
},
{
"tag": "0.2.13",
"kind": "patch",
"published_at": "2017-10-01T06:49:09Z"
},
{
"tag": "0.2.12",
"kind": "patch",
"published_at": "2017-09-11T19:57:12Z"
},
{
"tag": "0.2.11",
"kind": "patch",
"published_at": "2017-08-29T18:06:54Z"
},
{
"tag": "0.2.10",
"kind": "patch",
"published_at": "2017-04-29T11:33:50Z"
},
{
"tag": "0.2.9",
"kind": "patch",
"published_at": "2017-03-26T19:22:35Z"
},
{
"tag": "0.2.8",
"kind": "patch",
"published_at": "2017-03-01T23:55:31Z"
}
],
"recent_commits": [
{
"oid": "571943c5b3ec56eb2710e4bcbdda25557f7b3e49",
"body": "Fix typos in comments and documentation",
"is_bot": false,
"headline": "Merge pull request #445 from maxtaran2010/fix/typos",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-07-10T22:28:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "323b6797f047494cee90ff5e47faf1e742192671",
"body": null,
"is_bot": false,
"headline": "Fix typos in comments and documentation",
"author_name": "maxtaran2010",
"author_login": null,
"committed_at": "2026-07-09T21:44:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a5535021aec77a2c9890c0bec273fa446c6593a",
"body": "Separate the implementations of `get_disjoint_mut`",
"is_bot": false,
"headline": "Merge pull request #443 from cuviper/separate-disjoint",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-05-02T00:12:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddb0316dc25e12fb0ecda55f0a4e754dd62e6e5c",
"body": "At first glance this may seem worse because it's roughly duplicating the\n`unsafe` code. However, these are now placed in a dedicated module where\nthe parallels are apparent, and they should be more direct for their\nrespective use-cases.\n\n* For disjoint key lookup in a map, we don't need to produce a\n[…]\nics anyway.\n* For disjoint indices in a slice, we don't need to deal with `Option`,\n and we can drop our own unsafe implementation here in favor of the\n standard library once we update to MSRV 1.86.",
"is_bot": false,
"headline": "Separate the implementations of `get_disjoint_mut`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-05-01T23:48:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "10732591945200a50a8d6879ac8fcd2b8d5c268a",
"body": "Use a simpler `equal` closure for `Q = K`",
"is_bot": false,
"headline": "Merge pull request #441 from cuviper/equal",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-18T18:58:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4da89f315654e967b2332331218e8a5da04dc394",
"body": "There are cases where we never need the `Equivalent` abstraction. This\nmay not lead to much performance difference, if any, but it should at\nleast be a little lighter burden on the compiler.",
"is_bot": false,
"headline": "Use a simpler `equal` closure for `Q = K`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-18T18:57:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c7e7cb6e0d54c4397c08f1d8f95fd153f97c9d0",
"body": "Use `BuildHasherDefault::new` in macros",
"is_bot": false,
"headline": "Merge pull request #440 from cuviper/bhd-new",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-09T19:18:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5886b95f2cd284f6d8ade5ba94897063a0590dd",
"body": "This was already done for sets, but I missed maps. It doesn't really\nmake any functional difference though.",
"is_bot": false,
"headline": "Use `BuildHasherDefault::new` in macros",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-09T19:16:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bcd165baeb12bdf6e57a31d9869e9839e25679c6",
"body": "Release 2.14.0",
"is_bot": false,
"headline": "Merge pull request #439 from cuviper/release-2.14.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-09T17:51:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ef06a729e0af095d2f39ec4bda5e0882054726e",
"body": null,
"is_bot": false,
"headline": "Release 2.14.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-09T17:43:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d21826ca9351e968e7c5cff4f818e7a5e3cc481b",
"body": "Upgrade to `hashbrown v0.17`",
"is_bot": false,
"headline": "Merge pull request #438 from cuviper/hashbrown-0.17",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-09T17:31:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2566bec20dfbca0fa037939e67df4938c0f60f01",
"body": null,
"is_bot": false,
"headline": "Upgrade to `hashbrown v0.17`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-09T15:42:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b62776c3f7dec98a5b89f907c3add5c603343b0",
"body": "Normalize the panic doc of `get_disjoint_mut`",
"is_bot": false,
"headline": "Merge pull request #437 from cuviper/disjoint-panic",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T20:16:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "478fba2eb0594f0fdc70b6b93e90fae820bdf82e",
"body": null,
"is_bot": false,
"headline": "Normalize the panic doc of `get_disjoint_mut`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T18:03:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fb6dafda4ee443864c88b61a4dfc8982012d3d39",
"body": "Make `Slice::{first,last,split_*}_mut` methods `const`",
"is_bot": false,
"headline": "Merge pull request #436 from cuviper/const-slice-mut",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T15:34:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c237a2ab7db4017b057f6b52e28c78dd427cd94",
"body": null,
"is_bot": false,
"headline": "Make `Slice::{first,last,split_*}_mut` methods `const`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T00:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48ff9ce2e3a2a464e4f599691df62dff178d655b",
"body": "Update to edition 2024, MSRV 1.85",
"is_bot": false,
"headline": "Merge pull request #435 from cuviper/edition-2024",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T00:41:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "648be98a3112278e1aea7c5b7d3c3a4f77e1eddb",
"body": null,
"is_bot": false,
"headline": "`cargo fmt` with edition 2024",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T00:16:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3e0ac20fbdefcb30da929b466e16559154748d5",
"body": null,
"is_bot": false,
"headline": "Update to edition 2024, MSRV 1.85",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-03T00:16:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0b2adfe27714f38d159794678d61d310ac521a1a",
"body": "Make `Slice::{first,last,split_*}` methods `const`",
"is_bot": false,
"headline": "Merge pull request #434 from cuviper/const-slice",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-02T23:08:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "afa3cafdc81b0b1168417ca042bb6b54496672a0",
"body": null,
"is_bot": false,
"headline": "Release 2.13.1",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-02T22:39:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "906a7ced0af89814e97c5f780915848577e0e660",
"body": "It's not terribly useful when we offer no `const` way to get a non-empty\n`Slice`, but this could help conditionally-const code in downstream\nprojects, and it's trivial to support.\n\n(Excluding `&mut` methods for now, as that requires Rust 1.83.)",
"is_bot": false,
"headline": "Make `Slice::{first,last,split_*}` methods `const`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-04-02T22:10:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4aba99f09636ad727d934d367f701c965367cc3",
"body": "Release 2.13.0",
"is_bot": false,
"headline": "Merge pull request #431 from cuviper/release-2.13.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-01-07T17:00:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e345f3a7ba6064f34d6c9ac367cb878c21dd2ffd",
"body": null,
"is_bot": false,
"headline": "Release 2.13.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-01-07T16:58:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6b677b4ce0f35d127da24b1b4553aa7a7bc3fb1",
"body": "Add `Slice::split_at_checked` and `split_at_mut_checked`",
"is_bot": false,
"headline": "Merge pull request #430 from cuviper/split_at_checked",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-01-06T21:20:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61c9d534e1dfbbd3b248f10b982dcf6f7f89613d",
"body": null,
"is_bot": false,
"headline": "Add `Slice::split_at_checked` and `split_at_mut_checked`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2026-01-06T21:07:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b8d35076238f1c06ea522efaf73be9154ca72d5",
"body": "`impl Clone for IntoKeys` and `IntoValues`",
"is_bot": false,
"headline": "Merge pull request #426 from cuviper/clone-intokv",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-12-03T15:15:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "88efd0cadd7cdab8624bbbaeac66fba14701472e",
"body": "The unused values are dropped and replaced with `MaybeUninit<V>` when\nconstructing `IntoKeys`, so we can avoid any constraints on `V` while\ncloning -- and vice versa for unused keys in `IntoValues`.",
"is_bot": false,
"headline": "`impl Clone for IntoKeys` and `IntoValues`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-11-29T20:45:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3b6d04bab36739744c78f91ce717b1f9344bae9a",
"body": "Move `crate::map::core` to `crate::inner`",
"is_bot": false,
"headline": "Merge pull request #425 from cuviper/inner-core",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-11-26T17:21:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb30eb112bdea0eb344a508aeda58359db8696c8",
"body": null,
"is_bot": false,
"headline": "Move crate::map::core to crate::inner",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-11-23T00:57:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfad7589c88e298e97449afb838c6a4b08c58394",
"body": "Use the bucket API from hashbrown v0.16.1",
"is_bot": false,
"headline": "Merge pull request #424 from cuviper/buckets",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-11-20T17:53:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a96b9c7fca6af946f17ecc38e7ee4dfd449a957f",
"body": null,
"is_bot": false,
"headline": "Release 2.12.1",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-11-20T17:46:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6245ee54fa6e864de5f16a801d67a5f849eccb44",
"body": "This lets us simplify `OccupiedEntry` to just a reference and a bucket\nindex, rather than needing a separate reference to our `Vec` while the\ninner entry holds a reference to the `HashTable`. This in turn lets us\nget rid of the `RefMut` abstraction that was providing common methods\nfor that pair of \n[…]\n also now holding a single map reference rather than the\ndouble `RefMut`, which was only needed before due the structure of the\n`OccupiedEntry`. The overall `Entry` should also be smaller as a result.",
"is_bot": false,
"headline": "Use the bucket API from hashbrown v0.16.1",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-11-20T17:22:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0e68f8a3605f56c79d2ed84bff5908ee1dcd8a95",
"body": "Release 2.12.0",
"is_bot": false,
"headline": "Merge pull request #422 from cuviper/msrv-1.82",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:32:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61c9c94672c2862b29dd65202ccf892969b0fe4c",
"body": "It's a valuable test to have, but it's quite a bit slower than\neverything else, and there's not much value in running it twice, for\nboth the pull request and merge queue.",
"is_bot": false,
"headline": "ci: only run full miri in the merge queue",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:29:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db43f1945a7f0c39f28754e3557d7f34f1cb1ab3",
"body": null,
"is_bot": false,
"headline": "Release 2.12.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b46a32a5859fb5aa26f9a7e38c9c93c30fb773f9",
"body": null,
"is_bot": false,
"headline": "Move more to the lints table",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4849b1679f6594112805ef8d542e230dfb4c37cf",
"body": null,
"is_bot": false,
"headline": "Make use of RFC2145 type privacy for sealed traits",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfff4b7d03e53688b82b7afc350d472cca2d2e32",
"body": null,
"is_bot": false,
"headline": "Use bounds in associated type position",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c7178d73c45fe0cc52aec684282a0aef5b3675b2",
"body": null,
"is_bot": false,
"headline": "Use `core::error::Error`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "76b459b82cd7de7035d96f7b6f0a178e02c4425c",
"body": "I think it doesn't really matter in this internal-only case, but it's\nstill closer to the true intent.",
"is_bot": false,
"headline": "Use more precise capturing for some `impl Trait`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3d9cc355e227a847a2d2ebcae38a230c005174d",
"body": null,
"is_bot": false,
"headline": "Use the primitive slice's `is_sorted` methods",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09db3cce19a24b74cfa13a1510fd72b8ab58ae83",
"body": null,
"is_bot": false,
"headline": "Use inherent `usize::div_ceil`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c115d2653fd7b4e4a0b6c8a7885ec614d89dd8f7",
"body": null,
"is_bot": false,
"headline": "Use `BuildHasher::hash_one`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "38fb76adc2d3eb8de7fa8a9c7d35fee884b0c88f",
"body": "It's the same type as from `std::collections::hash_map`, just a\ndifferent export path, so this isn't a breaking change.",
"is_bot": false,
"headline": "Use `std::hash::RandomState`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c150abc20fded034477a6dc3245d5046b2ef3fc",
"body": null,
"is_bot": false,
"headline": "bench: use stable `std::hint::black_box`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7dbe50dc4217827841afcbfda54a9818657e4387",
"body": null,
"is_bot": false,
"headline": "Use `size_of` via the prelude",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e4b40f44527884baffc377bf77b3708d295ebc5",
"body": null,
"is_bot": false,
"headline": "Upgrade to `hashbrown v0.16` exclusively",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3dbac6aafe4cf0f7a1006ff3da224d0a7dfcdb61",
"body": null,
"is_bot": false,
"headline": "Update the MSRV to 1.82",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T22:09:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86c319b48a5328e2bbca3def58767fe1a05b95ae",
"body": "Add map and set `pop_if`, similar to Rust 1.86's `Vec::pop_if`",
"is_bot": false,
"headline": "Merge pull request #421 from cuviper/pop_if",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-17T21:56:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09fb43fe9731f0df9b1e8b5250255d016b630719",
"body": null,
"is_bot": false,
"headline": "Add map and set `pop_if`, similar to Rust 1.86's `Vec::pop_if`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-10-11T17:42:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03f9e58626ad7ef811b1522097bced2400c18b1a",
"body": "Update `hashbrown` to a range allowing 0.15 or 0.16",
"is_bot": false,
"headline": "Merge pull request #418 from a1phyr/hashbrown_0.16",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-18T16:55:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee6080d480eea3b738757c6bff1bb21b440f3849",
"body": null,
"is_bot": false,
"headline": "Release 2.11.4",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-18T16:51:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7da8f181e81f8a37bc46936bf2d1d6db14edddc",
"body": null,
"is_bot": false,
"headline": "Use a range for hashbrown",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-18T16:40:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0cd5aefb4434fb495cb87ba5de50870d331558fc",
"body": null,
"is_bot": false,
"headline": "Update `hashbrown` to 0.16",
"author_name": "Benoît du Garreau",
"author_login": "a1phyr",
"committed_at": "2025-09-16T14:02:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd5c819daf8c3c62919ec0bbc777a571ee20ae5a",
"body": "Release 2.11.3",
"is_bot": false,
"headline": "Merge pull request #417 from cuviper/release-2.11.3",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T22:03:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9321145e1f517f31969c0d9ab5a5171cc23c3daf",
"body": null,
"is_bot": false,
"headline": "Release 2.11.3",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T21:57:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b485688c299ed840d900b5a33aed33a1924a7c9",
"body": "Release 2.11.2",
"is_bot": false,
"headline": "Merge pull request #416 from cuviper/release-2.11.2",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T21:22:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49ce7fa4716e24cf9380653a40d88b5186f2f555",
"body": null,
"is_bot": false,
"headline": "Release 2.11.2",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T21:17:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "58fd834804415879eb9be862291eba03e945e32a",
"body": "Depend on `serde_core` instead of `serde`",
"is_bot": false,
"headline": "Merge pull request #414 from DaniPopes/serde_core",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T20:57:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5dc1d6ab3105739ae61039f422e5246f0eee4f64",
"body": "This crate does not make use of serde derive macros, thus it can\ndepend on `serde_core` instead of `serde` to speed up users' compile\ntimes.\n\nSee the documentation of [`serde_core`](https://docs.rs/serde_core)\nfor more details.",
"is_bot": false,
"headline": "Depend on `serde_core` instead of `serde`",
"author_name": "DaniPopes",
"author_login": "DaniPopes",
"committed_at": "2025-09-15T18:00:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dc8f9b30e24502f49dd7ef9c5c64cfd5ff0c54ca",
"body": "Fix `Vec` doc links",
"is_bot": false,
"headline": "Merge pull request #415 from cuviper/vec-links",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T16:41:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f3431bf9387472cfbcd3d3dfcf5082842805396d",
"body": null,
"is_bot": false,
"headline": "Fix `Vec` doc links",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-15T16:34:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f33f4d9d64b87be51dc3a957b755ffe7790dc8e5",
"body": "Release 2.11.1",
"is_bot": false,
"headline": "Merge pull request #413 from cuviper/release-2.11.1",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-09T00:23:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c680a7dfa4c25ad21979ace9a2709337321caf7",
"body": null,
"is_bot": false,
"headline": "Release 2.11.1",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-09T00:17:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7005225c1a291c08f544435709ee3d0f379744b",
"body": "feat: add IndexMap::get_key_value_mut",
"is_bot": false,
"headline": "Merge pull request #411 from ya7010/add_get_key_value_mut",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-08T23:35:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01f3ef0d4723ef297d6b27aa891b23c6a11f751b",
"body": null,
"is_bot": false,
"headline": "Make `IndexMap::get_*` docs more consistent",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-08T22:46:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd4c1a53015aaf5e77241bddd70c523711fae090",
"body": null,
"is_bot": false,
"headline": "feat: add IndexMap::get_key_value_mut",
"author_name": "ya7010",
"author_login": "ya7010",
"committed_at": "2025-09-08T22:34:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48a98b70f932037c0e3387fc83f811a138e1eb70",
"body": "Remove Ord Trait Bound on insert_sorted_by Functions",
"is_bot": false,
"headline": "Merge pull request #412 from andymandias/relax-trait-bounds",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-09-08T22:09:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2be44878bee3941d7df896ff49cb7c176f06da8e",
"body": null,
"is_bot": false,
"headline": "Remove Ord trait bound on insert_sorted_by functions.",
"author_name": "Andrew Baldwin",
"author_login": "andymandias",
"committed_at": "2025-09-08T08:28:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "91d53adb3239cd4e12b671db7656c99b10fedc53",
"body": "Release 2.11.0",
"is_bot": false,
"headline": "Merge pull request #409 from cuviper/release-2.11.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-22T17:16:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf566a7060526aada9d7680a7cc3b9cf004a055a",
"body": null,
"is_bot": false,
"headline": "Release 2.11.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-22T16:49:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2e173dcf755b55982ca8fb568cb823b72629ce73",
"body": "Add `is_sorted`{,`_by`,`_by_key`}",
"is_bot": false,
"headline": "Merge pull request #408 from cuviper/is_sorted",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-22T00:00:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4bb7d03b92ad7768fb26b5f062fefda6af0dc72",
"body": null,
"is_bot": false,
"headline": "Add `is_sorted`{,`_by`,`_by_key`}",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T23:51:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f40489b1a6f6a4781ec45f6b30f6e8327b1b04c",
"body": "Add `sort_by_key` and `sort_unstable_by_key`",
"is_bot": false,
"headline": "Merge pull request #407 from cuviper/sort_by_key",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T22:50:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab9e461b895184bd4926a8d4555f05d1a6c50666",
"body": null,
"is_bot": false,
"headline": "Add `sort_by_key` and `sort_unstable_by_key`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T22:05:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a468ca41bbbc04afd293e00ad57d7a8ed60cb89e",
"body": null,
"is_bot": false,
"headline": "Normalize to ASCII apostrophes",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T21:52:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7939ae9c21b12aa5386cb9d3ecb4f7bb598341a6",
"body": "Tweak and extend `insert sorted by`{,`_key`} methods",
"is_bot": false,
"headline": "Merge pull request #406 from cuviper/more-insert_sorted_by",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T21:35:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "354345b5a250be9d565e3b60f311a435141e6412",
"body": null,
"is_bot": false,
"headline": "Take *two* entries in `insert_sorted_by`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T21:17:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "314ec7dbda48cfd7135e3aef894e7db627d6be21",
"body": null,
"is_bot": false,
"headline": "Add quick checks for `insert_sorted_by`",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T21:12:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3dbb123c3ef2c9b61334246f478368600d80e782",
"body": null,
"is_bot": false,
"headline": "Add `VacantEntry::insert_sorted_by`{,`_key`}",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T19:59:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9cd12128af5d0b2361aaa4fb9ce124903af5354c",
"body": null,
"is_bot": false,
"headline": "Move `insert_sorted_by` function parameter last",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T19:58:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c0542d740417245ec34152355fd1e429b9cdf9f0",
"body": "Implement sval2 support",
"is_bot": false,
"headline": "Merge pull request #400 from Techcable/feature/sval2",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T19:29:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1201c549758898e7d4b06944a3ef738476eca099",
"body": "Add `insert_sorted_by{,_key}` methods for map/set",
"is_bot": false,
"headline": "Merge pull request #402 from 4e554c4c/insert_by",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T19:21:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f9582d1cbdbe4e761c57ef2f55e8fd822dc72941",
"body": "Mirrors the testing of serde.",
"is_bot": false,
"headline": "Add sval to CI test matrix",
"author_name": "Techcable",
"author_login": "Techcable",
"committed_at": "2025-08-21T19:20:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a168b1736d91b873b7eec3ed960a0f72b40ad3ee",
"body": "Add methods to replace the key at a given index",
"is_bot": false,
"headline": "Merge pull request #405 from cuviper/replace_index",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T19:20:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d4ee50826c0edcbb0801546440cec7d40eeaf9f4",
"body": null,
"is_bot": false,
"headline": "Rename the `insert_sorted_by_key` function parameter for clarity",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T19:12:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "379fd0282b1bbf57c0e0fd1138c8edc6e174db03",
"body": null,
"is_bot": false,
"headline": "Test new/existing keys in insert_sorted_by",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T18:32:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bad24cdfc27d0f7c67a14e8ccd9062414f687ddd",
"body": null,
"is_bot": false,
"headline": "Update insert_sorted_by docs as suggested in review",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-21T18:31:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9a749095ba5e80ac7236f23d813cae198244736",
"body": "Maps and sets may fail if the new key/value is already present\nelsewhere, but we know that's not the case for `VacantEntry`.\n\n* `IndexMap::replace_index(&mut self, index: usize, key: K) -> Result<K, (usize, K)>`\n* `IndexSet::replace_index(&mut self, index: usize, value: T) -> Result<T, (usize, T)>`\n* `VacantEntry::replace_index(self, index: usize) -> (K, OccupiedEntry<'a, K, V>)`",
"is_bot": false,
"headline": "Add methods to replace the key at a given index",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-08-16T22:07:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30f27ba64cdbb1550061daaed936fd794f6b19bb",
"body": "Co-authored-by: Josh Stone <cuviper@gmail.com>",
"is_bot": false,
"headline": "Correct doc(cfg(...)) for sval module",
"author_name": "Techcable",
"author_login": "Techcable",
"committed_at": "2025-07-18T19:33:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6586821f3d49890505b0f21c35c4f7bdd91240ba",
"body": null,
"is_bot": false,
"headline": "Use feature name sval instead of sval2",
"author_name": "Techcable",
"author_login": "Techcable",
"committed_at": "2025-07-12T05:24:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bded9e7bd431a2537e3c40b660c31558c85d6536",
"body": null,
"is_bot": false,
"headline": "Add `insert_sorted_by{,_key}` methods for map/set",
"author_name": "Calvin Lee",
"author_login": "4e554c4c",
"committed_at": "2025-07-10T12:13:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e04f6bf53235406d366adcc2e313c6ed75478756",
"body": "Supports serialization without nesting",
"is_bot": false,
"headline": "Implement sval2 support",
"author_name": "Techcable",
"author_login": "Techcable",
"committed_at": "2025-06-29T18:54:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "91dbcc55d2b6be52b7f99929aebb7204a6576189",
"body": "Release 2.10.0",
"is_bot": false,
"headline": "Merge pull request #399 from cuviper/release-2.10.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-06-26T20:03:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67a5a712fcb667aa7b11e9b19a33fad764ae712c",
"body": null,
"is_bot": false,
"headline": "Release 2.10.0",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-06-26T19:50:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "37e519a3be8666e251d96156baeb230a80f9ad1f",
"body": "Add map and set `extract_if`",
"is_bot": false,
"headline": "Merge pull request #308 from cuviper/extract_if",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-06-26T19:05:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d7618fbc919be41dd0307075ae7fc2df58ea746",
"body": "Simplify benchmark dependencies",
"is_bot": false,
"headline": "Merge pull request #398 from cuviper/bench-deps",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-06-26T01:09:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68201eb0a389f6f96cafd7b3f887e013557be041",
"body": null,
"is_bot": false,
"headline": "Drop lazy_static for LazyLock",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-06-26T00:45:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eaaaa56e717e19d6904645927a771abbeb9ae257",
"body": null,
"is_bot": false,
"headline": "Switch to fastrand for bench shuffling",
"author_name": "Josh Stone",
"author_login": "cuviper",
"committed_at": "2025-06-26T00:37:44Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 68,
"commits_last_year": 89,
"latest_release_at": "2026-04-09T17:51:15Z",
"latest_release_tag": "2.14.0",
"releases_from_tags": true,
"days_since_last_push": 12,
"active_weeks_last_year": 19,
"days_since_latest_release": 104,
"mean_days_between_releases": 25.6
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "indexmap",
"exists": true,
"license": "Apache-2.0 OR MIT",
"keywords": [
"hashmap",
"no_std",
"data-structures",
"no-std"
],
"ecosystem": "crates",
"matches_repo": true,
"registry_url": "https://crates.io/crates/indexmap",
"is_deprecated": false,
"latest_version": "2.14.0",
"repository_url": "https://github.com/indexmap-rs/indexmap",
"versions_count": 55,
"total_downloads": 1303629919,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 99722083,
"first_published_at": "2018-01-30T17:59:48.053105Z",
"latest_published_at": "2026-04-09T18:03:04.469058Z",
"latest_version_yanked": false,
"days_since_latest_publish": 104
}
]
},
"popularity": {
"forks": 189,
"stars": 2399,
"watchers": 12,
"fork_history": {
"days": [
{
"date": "2016-09-18",
"count": 1
},
{
"date": "2016-10-11",
"count": 1
},
{
"date": "2016-10-22",
"count": 1
},
{
"date": "2016-11-15",
"count": 1
},
{
"date": "2017-03-22",
"count": 1
},
{
"date": "2017-04-19",
"count": 1
},
{
"date": "2017-05-18",
"count": 1
},
{
"date": "2017-06-04",
"count": 1
},
{
"date": "2017-06-26",
"count": 1
},
{
"date": "2017-08-15",
"count": 1
},
{
"date": "2017-09-01",
"count": 1
},
{
"date": "2017-11-20",
"count": 1
},
{
"date": "2017-12-01",
"count": 2
},
{
"date": "2018-04-01",
"count": 1
},
{
"date": "2018-05-23",
"count": 1
},
{
"date": "2018-06-15",
"count": 1
},
{
"date": "2018-08-02",
"count": 1
},
{
"date": "2018-09-09",
"count": 1
},
{
"date": "2018-09-28",
"count": 1
},
{
"date": "2018-10-21",
"count": 1
},
{
"date": "2018-10-31",
"count": 1
},
{
"date": "2018-11-17",
"count": 1
},
{
"date": "2018-11-21",
"count": 1
},
{
"date": "2018-11-29",
"count": 1
},
{
"date": "2019-01-02",
"count": 1
},
{
"date": "2019-01-04",
"count": 1
},
{
"date": "2019-03-21",
"count": 1
},
{
"date": "2019-04-11",
"count": 1
},
{
"date": "2019-04-28",
"count": 1
},
{
"date": "2019-05-24",
"count": 1
},
{
"date": "2019-07-05",
"count": 1
},
{
"date": "2019-08-16",
"count": 1
},
{
"date": "2019-08-22",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-13",
"count": 1
},
{
"date": "2020-01-12",
"count": 1
},
{
"date": "2020-01-31",
"count": 1
},
{
"date": "2020-02-28",
"count": 1
},
{
"date": "2020-03-20",
"count": 1
},
{
"date": "2020-03-27",
"count": 1
},
{
"date": "2020-04-18",
"count": 1
},
{
"date": "2020-05-24",
"count": 1
},
{
"date": "2020-05-29",
"count": 1
},
{
"date": "2020-06-05",
"count": 1
},
{
"date": "2020-06-30",
"count": 1
},
{
"date": "2020-08-24",
"count": 1
},
{
"date": "2020-09-03",
"count": 1
},
{
"date": "2020-09-07",
"count": 1
},
{
"date": "2020-09-08",
"count": 1
},
{
"date": "2020-10-15",
"count": 1
},
{
"date": "2020-11-25",
"count": 1
},
{
"date": "2020-11-29",
"count": 2
},
{
"date": "2020-12-20",
"count": 1
},
{
"date": "2021-01-01",
"count": 1
},
{
"date": "2021-01-23",
"count": 1
},
{
"date": "2021-01-31",
"count": 1
},
{
"date": "2021-02-17",
"count": 1
},
{
"date": "2021-02-20",
"count": 1
},
{
"date": "2021-02-25",
"count": 1
},
{
"date": "2021-03-23",
"count": 1
},
{
"date": "2021-05-06",
"count": 1
},
{
"date": "2021-05-17",
"count": 1
},
{
"date": "2021-06-07",
"count": 1
},
{
"date": "2021-06-11",
"count": 1
},
{
"date": "2021-06-23",
"count": 1
},
{
"date": "2021-06-24",
"count": 1
},
{
"date": "2021-07-16",
"count": 1
},
{
"date": "2021-07-18",
"count": 1
},
{
"date": "2021-07-19",
"count": 1
},
{
"date": "2021-08-01",
"count": 1
},
{
"date": "2021-08-17",
"count": 1
},
{
"date": "2021-08-22",
"count": 1
},
{
"date": "2021-09-09",
"count": 1
},
{
"date": "2021-09-20",
"count": 1
},
{
"date": "2021-09-24",
"count": 1
},
{
"date": "2021-10-09",
"count": 1
},
{
"date": "2021-10-21",
"count": 1
},
{
"date": "2021-11-02",
"count": 1
},
{
"date": "2021-11-12",
"count": 1
},
{
"date": "2021-11-14",
"count": 1
},
{
"date": "2021-11-18",
"count": 1
},
{
"date": "2021-11-28",
"count": 1
},
{
"date": "2021-12-27",
"count": 1
},
{
"date": "2022-01-10",
"count": 1
},
{
"date": "2022-02-04",
"count": 1
},
{
"date": "2022-03-27",
"count": 1
},
{
"date": "2022-04-04",
"count": 1
},
{
"date": "2022-05-09",
"count": 1
},
{
"date": "2022-05-13",
"count": 1
},
{
"date": "2022-05-14",
"count": 1
},
{
"date": "2022-06-12",
"count": 1
},
{
"date": "2022-06-22",
"count": 1
},
{
"date": "2022-07-13",
"count": 1
},
{
"date": "2022-07-16",
"count": 1
},
{
"date": "2022-08-10",
"count": 1
},
{
"date": "2022-08-26",
"count": 1
},
{
"date": "2022-09-09",
"count": 1
},
{
"date": "2022-09-17",
"count": 1
},
{
"date": "2022-12-18",
"count": 1
},
{
"date": "2023-01-11",
"count": 1
},
{
"date": "2023-01-30",
"count": 1
},
{
"date": "2023-03-09",
"count": 1
},
{
"date": "2023-03-12",
"count": 2
},
{
"date": "2023-03-29",
"count": 2
},
{
"date": "2023-04-07",
"count": 1
},
{
"date": "2023-04-24",
"count": 1
},
{
"date": "2023-06-06",
"count": 1
},
{
"date": "2023-07-20",
"count": 1
},
{
"date": "2023-07-26",
"count": 1
},
{
"date": "2023-08-10",
"count": 1
},
{
"date": "2023-09-01",
"count": 1
},
{
"date": "2023-09-20",
"count": 1
},
{
"date": "2023-10-03",
"count": 1
},
{
"date": "2023-10-20",
"count": 1
},
{
"date": "2023-10-23",
"count": 1
},
{
"date": "2023-10-24",
"count": 1
},
{
"date": "2023-11-06",
"count": 1
},
{
"date": "2023-11-16",
"count": 1
},
{
"date": "2023-12-11",
"count": 1
},
{
"date": "2023-12-26",
"count": 1
},
{
"date": "2024-01-14",
"count": 1
},
{
"date": "2024-02-01",
"count": 1
},
{
"date": "2024-02-20",
"count": 1
},
{
"date": "2024-03-07",
"count": 1
},
{
"date": "2024-04-10",
"count": 1
},
{
"date": "2024-04-19",
"count": 1
},
{
"date": "2024-04-25",
"count": 1
},
{
"date": "2024-04-28",
"count": 1
},
{
"date": "2024-05-21",
"count": 1
},
{
"date": "2024-06-08",
"count": 1
},
{
"date": "2024-06-09",
"count": 1
},
{
"date": "2024-07-04",
"count": 1
},
{
"date": "2024-07-28",
"count": 1
},
{
"date": "2024-11-15",
"count": 1
},
{
"date": "2024-11-16",
"count": 1
},
{
"date": "2024-11-26",
"count": 1
},
{
"date": "2024-11-28",
"count": 1
},
{
"date": "2024-12-12",
"count": 1
},
{
"date": "2024-12-19",
"count": 1
},
{
"date": "2024-12-24",
"count": 1
},
{
"date": "2024-12-30",
"count": 1
},
{
"date": "2025-01-02",
"count": 1
},
{
"date": "2025-01-13",
"count": 1
},
{
"date": "2025-02-21",
"count": 1
},
{
"date": "2025-02-23",
"count": 1
},
{
"date": "2025-02-26",
"count": 2
},
{
"date": "2025-03-14",
"count": 1
},
{
"date": "2025-03-16",
"count": 1
},
{
"date": "2025-04-26",
"count": 1
},
{
"date": "2025-04-27",
"count": 1
},
{
"date": "2025-04-30",
"count": 1
},
{
"date": "2025-05-19",
"count": 1
},
{
"date": "2025-05-23",
"count": 1
},
{
"date": "2025-06-17",
"count": 1
},
{
"date": "2025-06-23",
"count": 2
},
{
"date": "2025-07-03",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-07",
"count": 1
},
{
"date": "2025-07-09",
"count": 2
},
{
"date": "2025-07-25",
"count": 1
},
{
"date": "2025-08-24",
"count": 2
},
{
"date": "2025-09-06",
"count": 1
},
{
"date": "2025-09-14",
"count": 1
},
{
"date": "2025-09-16",
"count": 1
},
{
"date": "2025-11-03",
"count": 1
},
{
"date": "2025-11-15",
"count": 1
},
{
"date": "2025-11-18",
"count": 1
},
{
"date": "2025-11-20",
"count": 1
},
{
"date": "2025-11-26",
"count": 1
},
{
"date": "2025-12-05",
"count": 1
},
{
"date": "2026-01-24",
"count": 1
},
{
"date": "2026-04-15",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-05-05",
"count": 1
},
{
"date": "2026-06-02",
"count": 1
},
{
"date": "2026-07-09",
"count": 1
}
],
"complete": true,
"collected": 184,
"total_forks": 189
},
"star_history": null,
"open_issues_and_prs": 12
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"Cargo.toml",
"test-nostd/Cargo.toml",
"test-serde/Cargo.toml",
"test-sval/Cargo.toml"
],
"largest_source_bytes": 64838,
"source_files_sampled": 36,
"oversized_source_files": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Cargo.toml",
"test-nostd/Cargo.toml",
"test-serde/Cargo.toml",
"test-sval/Cargo.toml"
],
"advisories": {
"error": "No resolved dependencies carried a version and a supported ecosystem",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 14,
"direct_affected_count": 0
},
"ecosystems": [
"crates"
],
"dependencies": [
{
"name": "equivalent",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0"
},
{
"name": "hashbrown",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.17"
},
{
"name": "arbitrary",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0"
},
{
"name": "quickcheck",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0"
},
{
"name": "serde_core",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0.220"
},
{
"name": "rayon",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.9"
},
{
"name": "sval",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "2"
},
{
"name": "borsh",
"manifest": "Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.2"
},
{
"name": "indexmap",
"manifest": "test-nostd/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "arbitrary",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "borsh",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "equivalent",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "hashbrown",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "quickcheck",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "rayon",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde_core",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "sval",
"direct": true,
"version": null,
"ecosystem": "crates"
},
{
"name": "fastrand",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "fnv",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "itertools",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "serde_test",
"direct": false,
"version": null,
"ecosystem": "crates"
},
{
"name": "sval_test",
"direct": false,
"version": null,
"ecosystem": "crates"
}
],
"collected": true,
"truncated": false,
"total_count": 14,
"direct_count": 8,
"indirect_count": 6
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 252,
"open_issues": 8,
"closed_ratio": 0.947,
"closed_issues": 144,
"closed_unmerged_prs": 39
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "cuviper",
"commits": 563,
"avatar_url": "https://avatars.githubusercontent.com/u/36186?v=4"
},
{
"type": "User",
"login": "bluss",
"commits": 329,
"avatar_url": "https://avatars.githubusercontent.com/u/3209739?v=4"
},
{
"type": "User",
"login": "rjsberry",
"commits": 8,
"avatar_url": "https://avatars.githubusercontent.com/u/17755880?v=4"
},
{
"type": "User",
"login": "mwillsey",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/1783756?v=4"
},
{
"type": "User",
"login": "waywardmonkeys",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/178582?v=4"
},
{
"type": "User",
"login": "Techcable",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/4615889?v=4"
},
{
"type": "User",
"login": "linclelinkpart5",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/844735?v=4"
},
{
"type": "User",
"login": "Thermatix",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/5038613?v=4"
},
{
"type": "User",
"login": "Mingun",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/450131?v=4"
},
{
"type": "User",
"login": "sug0",
"commits": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/13282069?v=4"
}
],
"contributors_sampled": 52,
"top_contributor_share": 0.562
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.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": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": null,
"reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "14 out of 14 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": 0,
"reason": "Found 1/14 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 28 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": 0,
"reason": "no 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": 5,
"reason": "4 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5",
"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": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"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": "571943c5b3ec56eb2710e4bcbdda25557f7b3e49",
"ran_at": "2026-07-22T23:51:54Z",
"aggregate_score": 4.3,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-10T22:34:47Z",
"oldest_open_prs": [
{
"number": 118,
"created_at": "2020-03-27T01:21:45Z",
"last_comment_at": "2020-03-28T10:13:45Z",
"last_comment_author": "glaebhoerl"
},
{
"number": 200,
"created_at": "2021-08-22T21:20:47Z",
"last_comment_at": "2023-06-06T20:17:45Z",
"last_comment_author": "cuviper"
},
{
"number": 239,
"created_at": "2022-08-29T19:00:30Z",
"last_comment_at": "2023-06-27T18:45:51Z",
"last_comment_author": "cuviper"
},
{
"number": 442,
"created_at": "2026-04-18T19:19:38Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-10T22:33:46Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 43,
"created_at": "2017-10-13T15:43:58Z",
"last_comment_at": "2018-02-19T22:15:08Z",
"last_comment_author": "RReverser"
},
{
"number": 44,
"created_at": "2017-10-14T10:50:28Z",
"last_comment_at": "2020-06-30T01:50:34Z",
"last_comment_author": "cuviper"
},
{
"number": 182,
"created_at": "2021-03-18T07:02:32Z",
"last_comment_at": "2021-03-18T15:01:30Z",
"last_comment_author": "cuviper"
},
{
"number": 223,
"created_at": "2022-04-15T08:07:11Z",
"last_comment_at": "2024-03-02T01:33:05Z",
"last_comment_author": "cuviper"
},
{
"number": 269,
"created_at": "2023-07-17T08:53:08Z",
"last_comment_at": "2023-08-15T11:40:30Z",
"last_comment_author": "your-diary"
},
{
"number": 326,
"created_at": "2024-05-01T15:03:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 355,
"created_at": "2024-10-21T08:57:25Z",
"last_comment_at": "2024-12-30T11:57:18Z",
"last_comment_author": "pronebird"
},
{
"number": 388,
"created_at": "2025-04-08T13:34:08Z",
"last_comment_at": "2025-07-21T16:14:31Z",
"last_comment_author": "cuviper"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/indexmap-rs/indexmap",
"host": "github.com",
"name": "indexmap",
"owner": "indexmap-rs"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": "High-Risk Jurisdiction Policy applies a 50% multiplier to weighted overall health and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "jurisdiction_overall_adjustment",
"params": {
"cap": 49,
"pct": 50
}
}
],
"value": 30,
"inputs": {
"security": 22,
"vitality": 70,
"community": 74,
"governance": 64,
"engineering": 67,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 50,
"weighted_overall_before_jurisdiction": 61,
"overall_after_jurisdiction_multiplier": 30
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 70,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"commits_last_year": 89,
"human_commit_share": 1,
"days_since_last_push": 12,
"active_weeks_last_year": 19
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 12 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 12
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "19/52 weeks with commits",
"points": 13.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 19
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "89 commits in the last year",
"points": 17.6,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 89
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "4 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5",
"points": 5,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "good",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 78,
"inputs": {
"releases_count": 68,
"latest_release_tag": "2.14.0",
"releases_from_tags": true,
"days_since_latest_release": 104,
"mean_days_between_releases": 25.6
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "68 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 68
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 104 days ago",
"points": 27,
"status": "partial",
"details": [
{
"code": "release_recency",
"params": {
"days": 104
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~25.6 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 25.6
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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": 12,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 12 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 12
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 74,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"forks": 189,
"stars": 2399,
"watchers": 12,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "2,399 stars",
"points": 54.8,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 2399
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "189 forks",
"points": 19,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 189
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "12 watchers",
"points": 5.8,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 12
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"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": 0,
"status": "missed",
"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": [
"indexmap"
],
"dependents": null,
"ecosystems": "crates",
"total_downloads": 1303629919,
"monthly_downloads": 99722083
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "99,722,083 downloads/month across crates",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 99722083,
"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": "moderate",
"name": "Sustainability & Governance",
"value": 64,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 42,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 52,
"top_contributor_share": 0.562
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 56% of commits",
"points": 9.9,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 56
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "52 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 52
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 28 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"merged_prs": 252,
"open_issues": 8,
"closed_issues": 144,
"issue_closed_ratio": 0.947,
"closed_unmerged_prs": 39
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "95% of issues closed",
"points": 44.3,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 95
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "252/291 decided PRs merged",
"points": 33.1,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 252,
"decided": 291
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 1/14 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"followers": 20,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "indexmap-rs",
"public_repos": 4,
"account_age_days": 923
},
"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": "20 followers of indexmap-rs",
"points": 9.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 20,
"login": "indexmap-rs"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "4 public repos, account ~2 yr old",
"points": 10.1,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 4
}
},
{
"code": "account_age_years",
"params": {
"years": 2
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"indexmap"
],
"ecosystems": "crates",
"any_deprecated": false,
"min_days_since_publish": 104
},
"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 104 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 104
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "55 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 55
}
}
],
"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": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"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": "14 out of 14 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": [
"rust",
"hashtable"
],
"has_wiki": false,
"homepage": "https://docs.rs/indexmap/",
"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://docs.rs/indexmap/",
"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": "2 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 2
}
}
],
"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": "critical",
"name": "Security",
"value": 22,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized. High-Risk Jurisdiction Policy applies a 50% multiplier to Security posture and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"branch_protection",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "jurisdiction_posture_adjustment",
"params": {
"cap": 49,
"pct": 50
}
}
],
"value": 22,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 4.3,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 50,
"security_posture_after_multiplier": 22,
"security_posture_before_jurisdiction": 43
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 1/14 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 28 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": "no update tool detected",
"points": 0,
"status": "missed",
"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": "4 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5",
"points": 3.8,
"status": "partial",
"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": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"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": "high_risk_jurisdiction_exposure",
"band": "moderate",
"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": 50,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": true,
"exposures": [
{
"role": "top_contributor",
"count": 1,
"country": "Russia"
}
],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 12
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "Russia: top_contributor (1)",
"points": 50,
"status": "partial",
"details": [
{
"code": "jurisdiction_exposure",
"params": {
"role": "top_contributor",
"count": 1,
"country": "Russia"
}
}
],
"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": "at_risk",
"name": "AI Readiness",
"value": 48,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 26,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.48,
"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": "48 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 25.6,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 48,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 46,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"Cargo.toml",
"test-nostd/Cargo.toml",
"test-serde/Cargo.toml",
"test-sval/Cargo.toml"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Cargo.toml, test-nostd/Cargo.toml, test-serde/Cargo.toml (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "Cargo.toml, test-nostd/Cargo.toml, test-serde/Cargo.toml"
}
}
],
"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": "Rust (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Rust"
}
}
],
"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": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"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": 98,
"inputs": {
"primary_language": "Rust",
"largest_source_bytes": 64838,
"source_files_sampled": 36,
"oversized_source_files": 1
},
"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": "1/36 source files over 60KB",
"points": 53.5,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 36,
"oversized": 1
}
}
],
"max_points": 55
}
]
}
],
"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",
"Could not fetch crates package 'test-sval' from its registry",
"Could not fetch crates package 'test-nostd' from its registry",
"Could not fetch crates package 'test-serde' from its registry",
"No resolved dependencies carried a version and a supported ecosystem"
],
"report_type": "repository",
"generated_at": "2026-07-22T23:52:19.141473Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/i/indexmap-rs/indexmap.svg",
"full_name": "indexmap-rs/indexmap",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}