{"adoption": {"forks": 180, "observed_at": "2026-08-28T04:04:29.615552+00:00", "stars": 1358}, "canonical_url": "https://ross.abutalabs.com/products/mongrel2", "card": {"archived": false, "artifact_type": "application", "description": "The Mongrel2 Web Server Project", "domain": ["web-development", "backend", "networking", "developer-tools"], "enriched": true, "function": ["http-server", "websocket", "routing", "middleware", "message-queue"], "health_score": 20, "homepage": "http://mongrel2.org/", "language": "C", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["mongrel2/mongrel2"], "name": "mongrel2/mongrel2", "platform": ["cpp"], "pushed_at": "2022-04-18T01:38:58+00:00", "repo": "mongrel2/mongrel2", "stars": 1358, "tags": ["zeromq", "language-agnostic", "coroutines", "event-driven", "long-polling", "c", "linux", "macos", "web-server"], "topics": [], "urls": [], "use_cases": ["serve web apps from backends written in multiple languages", "handle websockets and long polling alongside plain HTTP", "decouple web server from application via ZeroMQ messaging", "build custom web frameworks on a server protocol", "run async streaming responses from multiple backends"], "what_it_is": "Mongrel2 is a language- and architecture-agnostic web server written in C that decouples HTTP handling from application backends via a ZeroMQ-based messaging protocol. It supports HTTP 1.1, WebSockets, Flash sockets, and long polling on the same socket, with handlers available for 17+ languages.", "when_to_avoid": ["you need a mainstream, actively developed server with large community support", "you want simple reverse-proxy deployment like nginx", "you need first-class Windows support"], "when_to_choose": ["you want a language-agnostic server with ZeroMQ backend handlers", "you need transparent mixed HTTP/WebSocket/long-polling on one socket", "you want programmable, database-driven server configuration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mongrel2", "repo": "mongrel2/mongrel2", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:29.615552+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:46.692063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f757cde5578ae3b55434aecb6b77bf4809119b5a8fd641f6c274bae159b9da58", "fetched_at": "2026-08-28T04:04:29.615552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mongrel2/mongrel2"}, {"content_hash": "c16eafac679bd914631002576eb2f2f42811fb4ef599b3e2f1b210272eecd8e1", "fetched_at": "2026-08-29T11:59:54.384951+00:00", "kind": "homepage", "missing": false, "url": "http://mongrel2.org/"}, {"content_hash": "2566226ff697b4c36ffcded5ea7098dd5b5a04dd913a6820ab2b847370e51518", "fetched_at": "2026-08-29T11:59:54.395069+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features"}, {"content_hash": "a804dbea480340775837fd9cadd24440a85d286ce627f0a98e8178fb45b0f59a", "fetched_at": "2026-08-29T11:59:54.397365+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/languages.html"}, {"content_hash": "a133446caa154b7f6d5da5bc08c77e0e09dc8cfec1e9f83197614c40851c6448", "fetched_at": "2026-08-29T11:59:54.399216+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/architectures.html"}, {"content_hash": "706a6de84167cc377517de33cd94ba55114db1b4dd41056a4a75d32c4116321e", "fetched_at": "2026-08-29T11:59:54.401144+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/protocols.html"}, {"content_hash": "d7b0dedb7c7921fa40ed31f8308f42cea8f5543978e6da706ce52af5dd8e7358", "fetched_at": "2026-08-29T11:59:54.402746+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/features/design.html"}, {"content_hash": "5b3fa892c4fc4ef8e59acdc4eace2fc0bbd35c0f034aa5c2a56dab615d62d816", "fetched_at": "2026-08-29T11:59:54.405766+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/downloads"}, {"content_hash": "df0a96cd23222efdc37b5049593e1e2bed9d6225573622880ad880f4477688c7", "fetched_at": "2026-08-29T11:59:54.404263+00:00", "kind": "site_page", "missing": false, "url": "http://mongrel2.org/wiki"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5583, "days_push": 1599, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}