原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [],
"is_fork": true,
"size_kb": 853,
"has_wiki": false,
"homepage": "https://maud.lambda.xyz",
"languages": {
"Rust": 76611
},
"pushed_at": "2023-01-15T09:36:21Z",
"created_at": "2021-10-12T14:27:12Z",
"owner_type": "User",
"updated_at": "2021-10-12T14:27:13Z",
"description": ":pencil: Compile-time HTML templates for Rust",
"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": "David Pedersen",
"type": "User",
"login": "davidpdrsn",
"company": null,
"location": "Denmark",
"followers": 1735,
"avatar_url": "https://avatars.githubusercontent.com/u/718941?v=4",
"created_at": "2011-04-09T08:30:23Z",
"is_verified": null,
"public_repos": 176,
"account_age_days": 5586
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.24.0",
"kind": "minor",
"published_at": "2022-09-25T13:48:38Z"
},
{
"tag": "v0.23.0",
"kind": "minor",
"published_at": "2021-11-11T11:08:26Z"
},
{
"tag": "v0.22.3",
"kind": "patch",
"published_at": "2021-09-27T12:01:18Z"
},
{
"tag": "v0.22.2",
"kind": "patch",
"published_at": "2021-01-09T05:01:17Z"
},
{
"tag": "v0.22.1",
"kind": "patch",
"published_at": "2020-11-02T06:24:13Z"
},
{
"tag": "v0.22.0",
"kind": "minor",
"published_at": "2020-06-20T09:57:51Z"
},
{
"tag": "v0.21.0",
"kind": "minor",
"published_at": "2019-07-01T09:03:44Z"
},
{
"tag": "v0.20.0",
"kind": "minor",
"published_at": "2019-01-17T03:01:55Z"
},
{
"tag": "v0.19.0",
"kind": "minor",
"published_at": "2018-10-20T04:15:57Z"
},
{
"tag": "v0.18.1",
"kind": "patch",
"published_at": "2018-07-18T08:03:44Z"
},
{
"tag": "v0.18.0",
"kind": "minor",
"published_at": "2018-07-15T09:46:16Z"
},
{
"tag": "v0.17.5",
"kind": "patch",
"published_at": "2018-05-25T23:57:51Z"
},
{
"tag": "v0.17.4",
"kind": "patch",
"published_at": "2018-05-02T08:49:17Z"
},
{
"tag": "v0.17.3",
"kind": "patch",
"published_at": "2018-04-21T05:20:42Z"
},
{
"tag": "v0.17.2",
"kind": "patch",
"published_at": "2017-11-19T07:12:38Z"
},
{
"tag": "v0.17.1",
"kind": "patch",
"published_at": "2017-08-11T09:15:20Z"
},
{
"tag": "v0.17.0",
"kind": "minor",
"published_at": "2017-08-04T10:22:38Z"
},
{
"tag": "v0.16.3",
"kind": "patch",
"published_at": "2017-04-22T08:00:21Z"
},
{
"tag": "v0.16.2",
"kind": "patch",
"published_at": "2017-03-07T08:47:46Z"
},
{
"tag": "v0.16.1",
"kind": "patch",
"published_at": "2017-02-15T09:26:45Z"
},
{
"tag": "v0.16.0",
"kind": "minor",
"published_at": "2017-02-06T03:12:58Z"
},
{
"tag": "v0.15.0",
"kind": "minor",
"published_at": "2017-01-26T07:15:49Z"
},
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2016-11-24T07:34:45Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2016-11-03T10:17:34Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2016-10-09T07:18:34Z"
},
{
"tag": "v0.11.1",
"kind": "patch",
"published_at": "2016-09-24T23:50:33Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2016-09-24T00:17:35Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2016-09-20T11:58:07Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2016-07-10T08:02:19Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2016-07-03T05:05:16Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2016-06-12T03:07:11Z"
},
{
"tag": "v0.8.1",
"kind": "patch",
"published_at": "2016-04-27T04:24:41Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2016-02-28T04:53:59Z"
},
{
"tag": "v0.7.4",
"kind": "patch",
"published_at": "2016-01-21T10:53:22Z"
},
{
"tag": "v0.7.3",
"kind": "patch",
"published_at": "2015-12-20T11:23:52Z"
},
{
"tag": "v0.7.2",
"kind": "patch",
"published_at": "2015-11-28T10:15:56Z"
},
{
"tag": "v0.7.1",
"kind": "patch",
"published_at": "2015-11-19T22:08:58Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2015-11-08T05:59:47Z"
},
{
"tag": "v0.6.2",
"kind": "patch",
"published_at": "2015-09-28T09:22:57Z"
},
{
"tag": "v0.6.1",
"kind": "patch",
"published_at": "2015-09-26T01:57:25Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2015-09-16T00:36:17Z"
},
{
"tag": "v0.5.1",
"kind": "patch",
"published_at": "2015-09-08T01:15:05Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2015-09-06T01:00:47Z"
},
{
"tag": "v0.4.4",
"kind": "patch",
"published_at": "2015-07-31T05:37:05Z"
},
{
"tag": "v0.4.3",
"kind": "patch",
"published_at": "2015-07-02T23:01:12Z"
},
{
"tag": "v0.4.2",
"kind": "patch",
"published_at": "2015-04-30T04:36:47Z"
},
{
"tag": "v0.4.1",
"kind": "patch",
"published_at": "2015-04-13T08:42:47Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2015-04-10T22:26:43Z"
},
{
"tag": "v0.3.4",
"kind": "patch",
"published_at": "2015-04-03T21:43:25Z"
},
{
"tag": "v0.3.3",
"kind": "patch",
"published_at": "2015-04-03T03:30:43Z"
},
{
"tag": "v0.3.2",
"kind": "patch",
"published_at": "2015-03-21T00:40:08Z"
},
{
"tag": "v0.3.1",
"kind": "patch",
"published_at": "2015-03-15T04:28:52Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2015-03-14T22:11:27Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2015-02-06T23:29:34Z"
},
{
"tag": "v0.1.2",
"kind": "patch",
"published_at": "2015-01-30T05:57:42Z"
},
{
"tag": "v0.1.1",
"kind": "patch",
"published_at": "2015-01-25T23:41:42Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2015-01-25T02:23:55Z"
}
],
"recent_commits": [
{
"oid": "c4cd049da851dfe651592ed69b429f5f1853d78f",
"body": "Looks like GitHub's release feature doesn't create annotated tags by default.",
"is_bot": false,
"headline": "Fix docs version indicator to include unannotated tags (#302)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-10-01T12:58:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df98f4f00b5b4fa29678954dfe3c81d0f0c912cf",
"body": "- it won't build with 1.0.19",
"is_bot": false,
"headline": "Bump dependency proc-macro2 to 1.0.23 (#301)",
"author_name": "GKnirps",
"author_login": "GKnirps",
"committed_at": "2021-09-28T12:41:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a839a9a1c6007f53013dec401ac94456323326f",
"body": null,
"is_bot": false,
"headline": "Bump `maud_htmlescape` version for `no_std` support",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-27T12:01:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2700f714bc46ccd15f13f8877089c0cf12a44369",
"body": null,
"is_bot": false,
"headline": "Release 0.22.3 (#300)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-27T11:55:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe7588fcef402359fdd9d7eb159d7a2ebdd6724b",
"body": "It doesn't mean anything.",
"is_bot": false,
"headline": "Remove \"blazing\" (#298)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-24T10:01:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9236d18511ad7fd97be64e51f7a9abb6d84a32a4",
"body": null,
"is_bot": false,
"headline": "Revert Cargo bug workaround (#297)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-20T10:37:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe4345d0d8a9aed98402b6c9c35420f15be5dc63",
"body": null,
"is_bot": false,
"headline": "Apply the workaround to docs build too (#296)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-18T11:56:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2add073517754fe8345b84327231045943414001",
"body": null,
"is_bot": false,
"headline": "Change examples build to `cargo check` (#295)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-18T11:27:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b317956faa016e276647626b7df8a53451abde8",
"body": null,
"is_bot": false,
"headline": "Report error for missing closing tag token (#287)",
"author_name": "Emilio González",
"author_login": "emi2k01",
"committed_at": "2021-09-18T09:30:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8941fe0a393a38ce8d9d72f869476cfe983b56d",
"body": null,
"is_bot": false,
"headline": "Add workaround for rust-lang/cargo#9919 (#294)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-18T08:22:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "36f786b39dd8f1349cba0881de4710faac5d7fae",
"body": null,
"is_bot": false,
"headline": "Fix unused variable in benchmark (#291)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-12T03:07:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dc028116b873c2d02ccf2ba60da8a139edcc156f",
"body": "Closes #281",
"is_bot": false,
"headline": "Enforce merged imports (#290)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-11T10:42:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9cb58de40b3cf3bf9d4ae0d29a73a33faaa150a",
"body": null,
"is_bot": false,
"headline": "Rename \"master\" to \"main\"",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-11T10:30:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46000ee32e00b87e72d5c37f9f0b1523301900ce",
"body": null,
"is_bot": false,
"headline": "Don't show the full executable path for Cargo status line",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-04T06:38:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5aa70751ac169e37f97eae903c6bce6608e34929",
"body": "macOS has an old version of `printf` that only supports octal escapes.",
"is_bot": false,
"headline": "Use \\033 instead of \\e in Makefile",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-04T06:37:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ceb70d727e05a1794466d5f298b70140dd60769",
"body": "Move page and nav builders to separate modules.",
"is_bot": false,
"headline": "Refactor book builder (#288)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-09-04T06:26:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb9cd821ca4299ff508d66a933deb45060f9f1d9",
"body": "This ensures that maud itself doesn't dictate what features an author might like to use.",
"is_bot": false,
"headline": "ensure tide default-features are disabled (#286)",
"author_name": "Max Countryman",
"author_login": "maxcountryman",
"committed_at": "2021-08-29T02:24:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc62bcbb86077ca076fa1d2ece24eee7316a49d8",
"body": "Co-authored-by: Chris Wong <lambda.fairy@gmail.com>",
"is_bot": false,
"headline": "Add axum support (#284)",
"author_name": "Marcel Müller",
"author_login": "TheNeikos",
"committed_at": "2021-08-17T09:25:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a2c4fba4fb7937cd5175cfb2e47af282283caec",
"body": null,
"is_bot": false,
"headline": "Fix Clippy warning (#285)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-08-17T09:22:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba9c7b523c6c78ead6fa53b9c6ebdde52093f25f",
"body": "This introduces support for Tide by implementing `From` over markup.\r\nUnlike other frameworks, Tide does not seem to provide e.g. a trait\r\nwhich could instead be implemented. However as demonstrated, this\r\nalternative results in a simple, ergonomic interface.\r\n\r\nConsumers may leverage Tide support by using the \"tide\" feature.\r\n\r\nCo-authored-by: Chris Wong <lambda.fairy@gmail.com>",
"is_bot": false,
"headline": "Tide support (#280)",
"author_name": "Max Countryman",
"author_login": "maxcountryman",
"committed_at": "2021-08-06T04:22:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3eb4254ffb05b7c0f39a57e65f0a9ed44822c943",
"body": "Removed references to `std` and replaced them with references to `core` and `alloc`.\r\nFeatures `rocket` and `iron` still require `std`.\r\n\r\nCo-authored-by: Chris Wong <lambda.fairy@gmail.com>",
"is_bot": false,
"headline": "Using no_std + alloc (#279)",
"author_name": "Benjamin Halsted",
"author_login": "halzy",
"committed_at": "2021-07-30T12:05:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a3d3eca6e506ff0872dd0040a8ca1d51c44ecdb",
"body": "Closes #273",
"is_bot": false,
"headline": "Remove `#![feature(extended_key_value_attributes)]` (#274)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-05-20T05:16:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "56f108c564b1351ac501d1936e17c0415d269884",
"body": null,
"is_bot": false,
"headline": "Update to rustc 1.54.0-nightly (6d395a1c2 2021-05-13) (#272)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-05-15T14:14:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8990049101246aec0cf3c784182ca819c2c54ebc",
"body": "Closes #208",
"is_bot": false,
"headline": "Improve error message for non-string literals (#265)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-03-21T11:20:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce6458af41b02104a45c99c8eda219d30f2a5c41",
"body": null,
"is_bot": false,
"headline": "Fix doc comments on parser",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-03-13T09:49:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f7331f427fefefde02dcd7410975b0229100af1",
"body": null,
"is_bot": false,
"headline": "Remove `Attrs` type alias (#264)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-03-13T09:25:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7284924cc882fd50de7457cb360f87d49d72a0b2",
"body": "cc #261",
"is_bot": false,
"headline": "Add more UI tests (#262)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-03-13T08:38:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4cffcd298b18c06b4dcff7d96f3a13d2fa026187",
"body": "I don't think they add much, and they conflict with mdformat which\r\nescapes square brackets (executablebooks/mdformat#112).\r\n\r\ncc #231",
"is_bot": false,
"headline": "Remove [Foo] tags from changelog (#260)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-26T09:47:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "75b6801f4759d5c0c99c7ed285408425b378bffe",
"body": "mdformat will preserve semantic line breaks, so we may as well commit to\r\nusing them.\r\n\r\ncc #231",
"is_bot": false,
"headline": "Switch documentation to semantic line breaks (#259)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-22T06:31:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eaf552d417ac372c4fd31e497367b80fdc5e90e2",
"body": "Closes #230\r\n\r\nCloses #256",
"is_bot": false,
"headline": "Test documentation examples in CI (#257)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-15T04:40:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a0172e0feba7a924e174b2ffc117cb58e145e9a",
"body": null,
"is_bot": false,
"headline": "Update release process to mention automatic docs publish",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T06:30:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "587e536fb66e2636c4eb752c7458f137b1da34dc",
"body": null,
"is_bot": false,
"headline": "Remove the docs deploy script",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T06:23:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4a6ba2efa57fa5796dca527b67bcf24812ffeef8",
"body": null,
"is_bot": false,
"headline": "Update contributing docs and document release process",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T06:21:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0f6e16958b461d814a241cd60b0a0986fbc71f8",
"body": "- Document this change in the readme",
"is_bot": false,
"headline": "Run publish docs action on release",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T06:20:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8872d40987833fbcc22fde8a7acd1da8b99ffd6",
"body": null,
"is_bot": false,
"headline": "Don't call the user a \"silly bumpkin\" (#255)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T05:51:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87b7c9c2baca016715695f59ca543ed8d80e62e9",
"body": null,
"is_bot": false,
"headline": "Release 0.22.2 (#253)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T05:01:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b286c6593965b98e25a75bdc63cd340e8bb0f955",
"body": "Since 1.0.19, `proc-macro2` now provides `Span::mixed_site` directly.",
"is_bot": false,
"headline": "Use `Span::mixed_site` directly from proc-macro2 (#254)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-09T04:15:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "37e11fcb6b3fbd5b840148f90553ca9dbc20da25",
"body": "There's already [template-benchmarks-rs](https://github.com/djc/template-benchmarks-rs), so we don't need to maintain a separate set here.\r\n\r\nThe Maud-specific benchmarks are kept, as they're still useful for testing future optimizations.",
"is_bot": false,
"headline": "Remove non-Maud benchmarks (#252)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-07T08:37:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "605cb86e32303826688cc32dd6e2d6ea7f8ba9f7",
"body": null,
"is_bot": false,
"headline": "Note that docs CI should be kept in sync with publish script",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-07T08:08:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb4729053ba82269eaf8d9fb738be16d6ac4a160",
"body": null,
"is_bot": false,
"headline": "Fix missing dollar sign",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-07T04:12:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fab3b02eff07ba6b80f7bf248023056d6ecc054",
"body": null,
"is_bot": false,
"headline": "Create GitHub Action that publishes docs (#251)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-07T04:08:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01636f55457b94ea301bf0852509b62c10daac29",
"body": null,
"is_bot": false,
"headline": "Add CNAME to manual deploy script (#250)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-06T10:33:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "202dc1ef011a7254256091429dc85d4c270f2157",
"body": "Closes #247",
"is_bot": false,
"headline": "Fix pulldown-cmark/ammonia example in docs (#249)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-06T10:09:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31bd465b52192706735dfa1d57fd3aa87efbb821",
"body": "This fixes a Clippy lint.",
"is_bot": false,
"headline": "Generalize Into impl to From (#248)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2021-01-04T08:45:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07f31e93422ebe1f6af7fdd66a4ed6ca8536a0f7",
"body": "Closes #209",
"is_bot": false,
"headline": "Enable --all-targets for Clippy (#246)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-12-23T07:02:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f7cec4da11d0b3abc65e6ae303f84684c84843e",
"body": "cc #243",
"is_bot": false,
"headline": "Remove Travis status badges (#245)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-12-23T06:38:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24593d81184ee076f8174380cae439264b2da2f3",
"body": "Closes #243",
"is_bot": false,
"headline": "Switch to GitHub Actions (#244)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-12-23T06:20:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "167afc65bda0630acba20be5bef7188325e31b9d",
"body": null,
"is_bot": false,
"headline": "Changelog: make \"Unreleased\" a link",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-30T21:45:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0358af67dc29e0f656d159c1c6a935df59a3f009",
"body": null,
"is_bot": false,
"headline": "Improve \"elements and attributes\" documentation (#242)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-30T21:44:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d5dec51c3ad02a655d318aac9963dfefbf81e708",
"body": null,
"is_bot": false,
"headline": "Make the `?` suffix for empty attributes optional (#238)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-11T03:47:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ebe6b1fe10ca4d89348e8cf3eba1f05fb347d9b",
"body": "- Call `.into_string()` later\r\n- Rename UI test to match Rust convention",
"is_bot": false,
"headline": "Clean up tests (#237)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-07T09:44:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f1e2b71fed125730f4df268b4c7e67d07413f768",
"body": null,
"is_bot": false,
"headline": "Use rustfmt from stable instead of nightly (#236)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-02T10:33:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c9b6f21504a44ceb88b672834496ac34fa1ae97",
"body": "* Release 0.22.1\r\n\r\n* Update benchmarks and docs dependencies\r\n\r\n* Comrak breaking change",
"is_bot": false,
"headline": "Release 0.22.1 (#235)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-02T06:24:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "159b4080d2625916f3d98e2dc7b4da0646f0b677",
"body": null,
"is_bot": false,
"headline": "Document splices in classes and IDs (#232)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-02T05:33:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3af1397541e9226bcd10f174f4fb3940f01de6d4",
"body": null,
"is_bot": false,
"headline": "Rewrite docs (#232)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-11-01T23:53:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39a866d9468d2994f90a3dbd59cf45de4086bdce",
"body": "It seems a lot faster – the \"All features\" build is ~ 1:45 instead of ~ 3:15.",
"is_bot": false,
"headline": "Enable LXD for faster builds (#233)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-11T10:43:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eac710815b19cfef60766dcb15ace270e58deec7",
"body": null,
"is_bot": false,
"headline": "Update changelog for stable support",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-11T09:11:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31115a628733938e45cb33a0f1a18f7d3bb16fc4",
"body": "* Add actix-web v3 support\r\n\r\n* Add actix-web example\r\n\r\n* Resolve changelog PR number\r\n\r\n* Make sure that examples are built on CI\r\n\r\n* Format Cargo.toml consistently\r\n\r\nCo-authored-by: Chris Wong <lambda.fairy@gmail.com>",
"is_bot": false,
"headline": "Add actix-web v3 support (#228)",
"author_name": "Rob Ede",
"author_login": "robjtede",
"committed_at": "2020-10-11T04:22:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3d16f83b166e5e8006a8f160a4fa90542f91582",
"body": null,
"is_bot": false,
"headline": "Add a version string to the documentation (#227)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-07T22:05:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b670d85595f79571aff9057a3967eb04598ee788",
"body": "* Remove `#![feature(proc_macro_hygiene)]` from documentation\r\n\r\nCloses #217\r\n\r\n* Update comment about nightly vs stable",
"is_bot": false,
"headline": "Update documentation to account for stable support (#218)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-07T22:02:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca2ba2d13c71717cb55ba01946567c9195680030",
"body": "I would expect that most people reading the docs are using the crates.io\r\nversion, not trunk.",
"is_bot": false,
"headline": "Only deploy documentation when a release is tagged (#226)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-07T22:01:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c387e8126ef211c0a18236c37177d47e62815b5",
"body": null,
"is_bot": false,
"headline": "Test `--all-features` separately (#225)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-06T07:42:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c139b7b7191f7351b1383492bac2f28ca9e164ec",
"body": "PR #223 removed the `unstable` flag, but the trybuild tests still\ndepended on it 🤦",
"is_bot": false,
"headline": "Ensure that trybuild tests are actually run",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-06T07:14:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e0b2d8df105247a66eebaec16d61e7c428366b9",
"body": "The `cleanup` flag is only available on [dpl v2] which is opt-in. Moreover, dpl v2 defaults to `cleanup: false` anyway so there is no need to specify it.\n\n[dpl v2]: https://docs.travis-ci.com/user/deployment-v2\n\ncc #224",
"is_bot": false,
"headline": "Fix documentation deployment",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-06T01:39:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "109c59bf62ac8de60b1e1f731a4da1e5812db2fb",
"body": null,
"is_bot": false,
"headline": "Fix Travis CI warnings (#224)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-06T00:27:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49f3c46bd2cdbcbb3bc86c8284f05bc7a92388b2",
"body": "Rustaceans hate him!",
"is_bot": false,
"headline": "Avoid unstable specialization with this one weird trick! (#223)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-10-05T09:44:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "165cfd5fe0d7f441e9a71b008ede7b4e95c5db75",
"body": "* Add `--locked` to benchmarks and documentation builds\r\n\r\n* Update `Cargo.lock` and fix docs generator",
"is_bot": false,
"headline": "Update benchmarks and documentation dependencies (#221)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-28T12:57:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f354e2c2142abdbb8d1baa7cde7ad15bf7d1250",
"body": null,
"is_bot": false,
"headline": "Travis: replace `--all` with `--workspace`",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-28T12:13:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "64390ec0ce5bbb5d937fb853c66372142ef23f85",
"body": "version_check has fewer dependencies, and is already used by proc-macro-error and Rocket.",
"is_bot": false,
"headline": "Switch to version_check (#220)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-28T12:03:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "250d93df9a3c7617965ae2314b55085da241befe",
"body": "Infer whether nightly features are available using rustc_version. If this fails, assume stable.\r\n\r\nCloses #214",
"is_bot": false,
"headline": "Enable stable support 🎉 (#219)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-28T01:06:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d66c2d66fd2af789a74b526f04dccf2740e4b6df",
"body": null,
"is_bot": false,
"headline": "Remove `#![feature(proc_macro_hygiene)]` (#216)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T13:17:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2603c1c317be588bc5b1e1d500ed70c49f8a4355",
"body": null,
"is_bot": false,
"headline": "Fix Travis CI badge",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T12:50:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb81ebe9613120904171238749cff1e28ebd9917",
"body": "Add rustfmt and format the project",
"is_bot": false,
"headline": "Merge pull request #212 from lambda-fairy/rustfmt",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T11:58:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50a7e9ce3717ec264c7cc98c21f8eb59cd0eb0aa",
"body": null,
"is_bot": false,
"headline": "Format everything!",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T11:36:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db28f4c10070a14e0cf667565a3a683c9fa4859d",
"body": null,
"is_bot": false,
"headline": "Add trybuild tests to config",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T11:33:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0bab139b66a7292ce92d5333bfa67d6b151f2d10",
"body": null,
"is_bot": false,
"headline": "Skip an `html!` call",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T11:30:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28015309530c8665bec196f2eed72ee91fcfef25",
"body": null,
"is_bot": false,
"headline": "Enforce rustfmt on Travis CI",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T10:59:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "88154c4c42b0ab5d30686ef102c436fd793a2665",
"body": "Move to proc-macro-error and proc-macro2 and trybuild",
"is_bot": false,
"headline": "Merge pull request #207 from CreepySkeleton/master",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T10:39:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f025e2c860faae5d1259dd8e514d1374d91fcd1",
"body": null,
"is_bot": false,
"headline": "Remove unused import",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-09-27T10:14:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d3d057cc283503818f631bbfe0bbbd2e72e3981",
"body": null,
"is_bot": false,
"headline": "Move to trybuild",
"author_name": "CreepySkeleton",
"author_login": "CreepySkeleton",
"committed_at": "2020-08-31T08:57:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e23e0d784668c9d3239a0a7093e2611113a7c8f",
"body": null,
"is_bot": false,
"headline": "Turn the warning into a hard error",
"author_name": "CreepySkeleton",
"author_login": "CreepySkeleton",
"committed_at": "2020-08-31T08:57:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b06af43692bcd76344660a4a8f4db570e28efc8",
"body": null,
"is_bot": false,
"headline": "Fix cargo clippy lints",
"author_name": "CreepySkeleton",
"author_login": "CreepySkeleton",
"committed_at": "2020-08-31T08:57:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d16af9a06bf77eceadd166351702207da8c537c",
"body": null,
"is_bot": false,
"headline": "Make use of SpanRange instead of Span",
"author_name": "CreepySkeleton",
"author_login": "CreepySkeleton",
"committed_at": "2020-08-31T08:57:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef120ab2d031af903f317aa96b04d4125ff3603c",
"body": null,
"is_bot": false,
"headline": "Transfer codebase from ParseResult to abort!",
"author_name": "CreepySkeleton",
"author_login": "CreepySkeleton",
"committed_at": "2020-08-30T20:28:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a49552225928b8dcfef96c39764abbe7b5404dd5",
"body": "Follow-up to #204\r\n\r\ncc @berwyn",
"is_bot": false,
"headline": "Put specialized impls in a logical order (#205)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-08-07T11:24:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f85e7b500bbcc7d74cb22240aa5598435eec853d",
"body": null,
"is_bot": false,
"headline": "Put Specialization behind a feature (#204)",
"author_name": "Berwyn Jamesson",
"author_login": "berwyn",
"committed_at": "2020-08-07T11:05:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad8dc8c4c795fa02fec4cee1ade2a4901b90151c",
"body": "* Add an off-by-default 'unstable' flag\r\n\r\n* Remove explicit web framework feature names\r\n\r\nHaving forgotten that deps and features can't have the same name,\r\nattempts to better document all the features in one place were\r\nmisplaced.\r\n\r\n* Split up tests on Travis\r\n\r\n`cargo test` doesn't allow `--wor\n[…]\nures (or in this case, test everything but\r\nunstable)\r\n\r\n* Update Travis Config\r\n\r\n- Document the state of Cargo workspaces and features\r\n- Update the benchmarks to trickle down the 'unstable' feature",
"is_bot": false,
"headline": "Add an off-by-default 'unstable' flag (#202)",
"author_name": "Berwyn Jamesson",
"author_login": "berwyn",
"committed_at": "2020-07-21T12:04:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "162a15ca83fa0434538ee64b55b36d5d83ce7cb7",
"body": "* Use `std::matches!`\r\n\r\n- Remove crates.io `matches` in favor of the `std` version\r\n\r\n- Fix Clippy warning by changing a `match ... { ... }` to\r\n `matches!(...)`\r\n\r\n* Satisfy `blocks_in_if_conditions`",
"is_bot": false,
"headline": "Use `std::matches!` (#203)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-07-18T07:49:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a10130a9ac1188066dba08158ae093a4816a4aed",
"body": "* Add proc_macro2 and quote dependencies\r\n\r\n* Completly switch over to proc_macro2 where possible\r\n\r\n* Remove unessesary ::from casts\r\n\r\n* Remove pendantic cast that i missed\r\n\r\n* Make Builder::push_tokens accept TokenStream\r\n\r\n* Remove stray commented out code\r\n\r\n* Reword unclear comment on `Span` to a todo item\r\n\r\n* Move comment closer to its intended line\r\n\r\n* Use into instead of explicit conversion",
"is_bot": false,
"headline": "Switch to 3rd party `quote` macro (#201)",
"author_name": "Byte",
"author_login": "HeapUnderfl0w",
"committed_at": "2020-07-12T11:42:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee82847d8f4d19b163ad21d1bec7b78dd834c4a0",
"body": "See rust-lang/rust#71420.\r\n\r\nThis doesn't need a release (or a changelog entry) as it just fixes a warning.",
"is_bot": false,
"headline": "Silence \"specialization is incomplete\" warning",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-06-22T07:36:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34a79ee7065908ad2514f330c0bdcd9a30901873",
"body": null,
"is_bot": false,
"headline": "Release 0.22",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-06-20T09:57:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe5fcb13e974f8714d89fec0da8cb62e50733b1f",
"body": null,
"is_bot": false,
"headline": "Update dependencies for benchmarks and docs",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-06-20T09:34:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "abb1e799f9fe8750ac0477f026ec708e105f3cbf",
"body": "The documentation builder is an executable crate, so crate-level visibility doesn't add much.",
"is_bot": false,
"headline": "Remove #![feature(crate_visibility_modifier)] (#197)",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-06-20T09:22:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03e03e2e7d05e0fc93722bfd95ffff47b5dc2239",
"body": "…193)",
"is_bot": false,
"headline": "Replace Span::def_site and remove #![feature(proc_macro_def_site)] (#…",
"author_name": "Byte",
"author_login": "HeapUnderfl0w",
"committed_at": "2020-06-14T12:29:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "240ecf03b8c16021a609397a056d6ff342a6e3bc",
"body": "* Add example to docs of custom element\r\n\r\n* incorporate feedback",
"is_bot": false,
"headline": "Add example to docs of custom element (#186)",
"author_name": "brian",
"author_login": "bsl",
"committed_at": "2020-05-28T06:04:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4d1f18ad8b26c01d231603a19b9ef4a02a2217c7",
"body": null,
"is_bot": false,
"headline": "Fix compiletest",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-04-24T13:46:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dfa7d5a84883e6bbd2f63570ebae207b8a86d74c",
"body": "actix-web >= 2.0.0 support",
"is_bot": false,
"headline": "Merge pull request #182 from czyba/master",
"author_name": "Chris Wong",
"author_login": "lambda-fairy",
"committed_at": "2020-03-21T11:42:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34d1b6ab361cf5294fa82f994fc9b69148e240d7",
"body": "…1 and 2\"\n\nThis reverts commit 396df07da4de5e34a15c416e0ad4bcc1f2d673d0.",
"is_bot": false,
"headline": "Revert \"[web-frameworks] Mention support for both actix-web versions …",
"author_name": "Christopher Czyba",
"author_login": "czyba",
"committed_at": "2020-03-07T12:53:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fca333cc36a65334e28b0434a5029df9e21f320b",
"body": null,
"is_bot": false,
"headline": "[CHANGELOG] Mention actix-web 2.0.0 support",
"author_name": "Christopher Czyba",
"author_login": "czyba",
"committed_at": "2020-03-07T12:52:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba3f12a65a94f9b939ab26d1355fa8107ed6a87b",
"body": "As discussed in Pull Request #182 we will only support actix-web 2.0.0\nfrom this point onwards. If you still wish to use a previous version of\nactix-web you'll have to pin the version.",
"is_bot": false,
"headline": "[actix-web] Only support actix-web 2.0.0 from now on",
"author_name": "Christopher Czyba",
"author_login": "czyba",
"committed_at": "2020-03-07T12:46:41Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 57,
"commits_last_year": 0,
"latest_release_at": "2022-09-25T13:48:38Z",
"latest_release_tag": "v0.24.0",
"releases_from_tags": true,
"days_since_last_push": 1287,
"active_weeks_last_year": 0,
"days_since_latest_release": 1399,
"mean_days_between_releases": 170
},
"community": {
"has_readme": false,
"has_license": false,
"has_description": false,
"has_contributing": false,
"health_percentage": null,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "maud",
"exists": true,
"license": "MIT OR Apache-2.0",
"keywords": [
"template-engine"
],
"ecosystem": "crates",
"matches_repo": false,
"registry_url": "https://crates.io/crates/maud",
"is_deprecated": false,
"latest_version": "0.27.0",
"repository_url": "https://github.com/lambda-fairy/maud",
"versions_count": 57,
"total_downloads": 5528845,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 402871,
"first_published_at": "2015-01-25T02:18:41.268783Z",
"latest_published_at": "2025-02-02T11:44:57.251676Z",
"latest_version_yanked": false,
"days_since_latest_publish": 538
},
{
"name": "maud_macros",
"exists": true,
"license": "MIT OR Apache-2.0",
"keywords": [],
"ecosystem": "crates",
"matches_repo": false,
"registry_url": "https://crates.io/crates/maud_macros",
"is_deprecated": false,
"latest_version": "0.27.0",
"repository_url": "https://github.com/lambda-fairy/maud",
"versions_count": 60,
"total_downloads": 5534825,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 403193,
"first_published_at": "2015-01-25T02:20:02.739792Z",
"latest_published_at": "2025-02-02T11:44:39.286100Z",
"latest_version_yanked": false,
"days_since_latest_publish": 538
},
{
"name": "maud_htmlescape",
"exists": true,
"license": "MIT/Apache-2.0",
"keywords": [],
"ecosystem": "crates",
"matches_repo": false,
"registry_url": "https://crates.io/crates/maud_htmlescape",
"is_deprecated": false,
"latest_version": "0.17.1",
"repository_url": "https://github.com/lambda-fairy/maud",
"versions_count": 2,
"total_downloads": 189944,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 2206,
"first_published_at": "2017-08-04T10:26:07.420277Z",
"latest_published_at": "2021-09-27T12:08:44.676094Z",
"latest_version_yanked": false,
"days_since_latest_publish": 1762
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"docs/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"Cargo.toml",
"docs/Cargo.toml",
"doctest/Cargo.toml",
"maud/Cargo.toml",
"maud_htmlescape/Cargo.toml",
"maud_macros/Cargo.toml"
],
"largest_source_bytes": 28045,
"source_files_sampled": 26,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Cargo.toml",
"docs/Cargo.toml",
"doctest/Cargo.toml",
"maud/Cargo.toml",
"maud_htmlescape/Cargo.toml",
"maud_macros/Cargo.toml"
],
"advisories": {
"error": null,
"scope": null,
"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": 0,
"direct_affected_count": 0
},
"ecosystems": [
"crates"
],
"dependencies": [
{
"name": "actix-web",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "3"
},
{
"name": "ammonia",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "3"
},
{
"name": "iron",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.6"
},
{
"name": "maud",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": null
},
{
"name": "pulldown-cmark",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.8"
},
{
"name": "rocket",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.4"
},
{
"name": "rouille",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "3"
},
{
"name": "tide",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.16"
},
{
"name": "tokio",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.9.0"
},
{
"name": "axum",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1.3"
},
{
"name": "async-std",
"manifest": "doctest/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.9.0"
},
{
"name": "maud_htmlescape",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.17.1"
},
{
"name": "maud_macros",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.22.3"
},
{
"name": "iron",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": ">= 0.5.1, < 0.7.0"
},
{
"name": "rocket",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": ">= 0.3, < 0.5"
},
{
"name": "futures-util",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.3.0"
},
{
"name": "actix-web-dep",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": ">= 2, < 4"
},
{
"name": "tide",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.16.0"
},
{
"name": "axum",
"manifest": "maud/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.1.3"
},
{
"name": "syn",
"manifest": "maud_macros/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0.8"
},
{
"name": "maud_htmlescape",
"manifest": "maud_macros/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "0.17.0"
},
{
"name": "quote",
"manifest": "maud_macros/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0.7"
},
{
"name": "proc-macro2",
"manifest": "maud_macros/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0.23"
},
{
"name": "proc-macro-error",
"manifest": "maud_macros/Cargo.toml",
"ecosystem": "crates",
"version_constraint": "1.0.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 1
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "lambda-fairy",
"commits": 507,
"avatar_url": "https://avatars.githubusercontent.com/u/1572323?v=4"
},
{
"type": "User",
"login": "Nemo157",
"commits": 14,
"avatar_url": "https://avatars.githubusercontent.com/u/81079?v=4"
},
{
"type": "User",
"login": "ernestas-poskus",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/4499780?v=4"
},
{
"type": "User",
"login": "ivanbakel",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/20319565?v=4"
},
{
"type": "User",
"login": "czyba",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/1333975?v=4"
},
{
"type": "User",
"login": "anxiousmodernman",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/396004?v=4"
},
{
"type": "User",
"login": "CreepySkeleton",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/50968528?v=4"
},
{
"type": "User",
"login": "TheNeikos",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/1631166?v=4"
},
{
"type": "User",
"login": "sanmai-NL",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/3374183?v=4"
},
{
"type": "User",
"login": "maxcountryman",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/74351?v=4"
}
],
"contributors_sampled": 37,
"top_contributor_share": 0.865
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"publish-docs.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Cargo.lock"
],
"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": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"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 0/30 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 12 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": 0,
"reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"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": "no SAST tool detected",
"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": 0,
"reason": "14 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "c4cd049da851dfe651592ed69b429f5f1853d78f",
"ran_at": "2026-07-25T18:44:36Z",
"aggregate_score": 2.5,
"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": null,
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/davidpdrsn/maud",
"host": "github.com",
"name": "maud",
"owner": "davidpdrsn"
},
"metrics": {
"overall": {
"key": "overall",
"band": "critical",
"name": "Overall health",
"note": "Abandonment Policy applies a 85% multiplier to weighted overall health.",
"notes": [
{
"code": "abandonment_overall_adjustment",
"params": {
"cap": 0,
"pct": 85
}
}
],
"value": 25,
"inputs": {
"security": 25,
"vitality": 13,
"community": 12,
"governance": 37,
"engineering": 57,
"abandonment_cap": null,
"abandonment_state": "at_risk",
"abandonment_multiplier": 85,
"weighted_overall_before_abandonment": 29,
"overall_after_abandonment_multiplier": 25
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "critical",
"name": "Vitality",
"value": 13,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "critical",
"name": "Development activity",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"commits_last_year": 0,
"human_commit_share": 1,
"days_since_last_push": 1287,
"active_weeks_last_year": 0
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 1287 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "push_recency",
"params": {
"days": 1287
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "0/52 weeks with commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 0
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "0 commits in the last year",
"points": 0,
"status": "missed",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 0
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "at_risk",
"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": 32,
"inputs": {
"releases_count": 57,
"latest_release_tag": "v0.24.0",
"releases_from_tags": true,
"days_since_latest_release": 1399,
"mean_days_between_releases": 170
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "57 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 57
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 1399 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 1399
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~170 days",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 170
}
}
],
"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": 85,
"inputs": {
"cap": null,
"state": "at_risk",
"guards": [
"no_open_demand"
],
"signals": [
"release_stall",
"scorecard_unmaintained"
],
"red_flag": true,
"multiplier_pct": 85,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": 0,
"unanswered_open_issues": 0,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 1758,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 1758 days; 2 unmet obligation(s): releases stalled, Scorecard reports it unmaintained",
"points": 85,
"status": "partial",
"details": [
{
"code": "abandonment_flagged",
"params": {
"days": 1758,
"count": 2,
"signals": "releases stalled, Scorecard reports it unmaintained"
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 12,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": false,
"has_license": false,
"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": 0,
"status": "missed",
"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
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 37,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 36,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 37,
"top_contributor_share": 0.865
},
"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 86% of commits",
"points": 3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 86
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "37 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 37
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 12 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 1
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "0/1 decided PRs merged",
"points": 0,
"status": "missed",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 0,
"decided": 1
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 73,
"inputs": {
"followers": 1735,
"owner_type": "User",
"is_verified": null,
"owner_login": "davidpdrsn",
"public_repos": 176,
"account_age_days": 5586
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "1,735 followers of davidpdrsn",
"points": 23.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1735,
"login": "davidpdrsn"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "176 public repos, account ~15 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 176
}
},
{
"code": "account_age_years",
"params": {
"years": 15
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 57,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"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": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "at_risk",
"name": "Documentation",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": "https://maud.lambda.xyz",
"has_readme": false,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://maud.lambda.xyz",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": 25,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 25,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 2.5
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 12 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": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"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": "no SAST tool detected",
"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": "14 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"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": 11
},
"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": 59,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 37,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.69,
"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": "69 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 36.8,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 69,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Cargo.lock"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"docs/Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"Cargo.toml",
"docs/Cargo.toml",
"doctest/Cargo.toml",
"maud/Cargo.toml",
"maud_htmlescape/Cargo.toml",
"maud_macros/Cargo.toml"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "docs/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "docs/Makefile"
}
}
],
"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": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"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": 100,
"inputs": {
"primary_language": "Rust",
"largest_source_bytes": 28045,
"source_files_sampled": 26,
"oversized_source_files": 0
},
"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": "0/26 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 26,
"oversized": 0
}
}
],
"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": [
"Community profile unavailable",
"crates package 'maud' points at a different repository (https://github.com/lambda-fairy/maud); excluded from ecosystem scoring",
"Could not fetch crates package 'doctest' from its registry",
"crates package 'maud_macros' points at a different repository (https://github.com/lambda-fairy/maud); excluded from ecosystem scoring",
"crates package 'maud_htmlescape' points at a different repository (https://github.com/lambda-fairy/maud); excluded from ecosystem scoring",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-25T18:44:52.208021Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/davidpdrsn/maud.svg",
"full_name": "davidpdrsn/maud",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}