CINXE.COM

shelf score | Dart package

<!DOCTYPE html> <html lang="en-us"><head><script src="https://www.googletagmanager.com/gtm.js?id=GTM-MX6DBN9" async="async"></script><script src="/static/hash-v0koh7hq/js/gtm.js" async="async"></script><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="robots" content="noindex"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@dart_lang"/><meta name="twitter:description" content="A model for web server middleware that encourages composition and easy reuse. "/><meta name="twitter:image" content="https://pub.dev/static/hash-v0koh7hq/img/pub-dev-icon-cover-image.png"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Dart packages"/><meta property="og:title" content="shelf score | Dart package"/><meta property="og:description" content="A model for web server middleware that encourages composition and easy reuse. "/><meta property="og:image" content="https://pub.dev/static/hash-v0koh7hq/img/pub-dev-icon-cover-image.png"/><title>shelf score | Dart package</title><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&amp;family=Google+Sans+Display:wght@400&amp;family=Google+Sans+Text:wght@400;500;700&amp;family=Google+Sans+Mono:wght@400;700&amp;display=swap"/><link rel="shortcut icon" href="/favicon.ico?hash=nk4nss8c7444fg0chird9erqef2vkhb8"/><link rel="stylesheet" href="https://www.gstatic.com/glue/v25_0/ccb.min.css"/><link rel="search" type="application/opensearchdescription+xml" title="Dart packages" href="/osd.xml"/><link rel="canonical" href="https://pub.dev/packages/shelf/score"/><meta name="description" content="A model for web server middleware that encourages composition and easy reuse. "/><link rel="alternate" type="application/atom+xml" title="Updated Packages Feed for Pub" href="/feed.atom"/><link rel="stylesheet" type="text/css" href="/static/hash-v0koh7hq/material/bundle/styles.css"/><link rel="stylesheet" type="text/css" href="/static/hash-v0koh7hq/css/style.css"/><script src="/static/hash-v0koh7hq/material/bundle/script.min.js" defer="defer"></script><script src="/static/hash-v0koh7hq/js/script.dart.js" defer="defer"></script><script src="https://www.gstatic.com/brandstudio/kato/cookie_choice_component/cookie_consent_bar.v3.js" defer="defer" data-autoload-cookie-consent-bar="true"></script><meta name="pub-page-data" content="eyJwa2dEYXRhIjp7InBhY2thZ2UiOiJzaGVsZiIsInZlcnNpb24iOiIxLjQuMiIsImxpa2VzIjo5MzAsInB1Ymxpc2hlcklkIjoidG9vbHMuZGFydC5kZXYiLCJpc0Rpc2NvbnRpbnVlZCI6ZmFsc2UsImlzTGF0ZXN0Ijp0cnVlfSwic2Vzc2lvbkF3YXJlIjpmYWxzZX0="/><link rel="preload" href="/static/hash-v0koh7hq/highlight/highlight-with-init.js" as="script"/></head><body class="light-theme"><script src="/static/hash-v0koh7hq/js/dark-init.js"></script><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MX6DBN9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div class="site-header"><button class="hamburger" aria-label="menu toggle"></button><a class="logo" href="/" aria-label="Go to the landing page of pub.dev"><img class="site-logo" src="/static/hash-v0koh7hq/img/pub-dev-logo.svg" alt="" width="140" height="30" role="presentation"/></a><div class="site-header-space"></div><div class="site-header-mask"></div><div class="site-header-search"><form action="/packages" method="GET"><input class="site-header-search-input" name="q" placeholder="New search..." autocomplete="on" title="Search"/></form></div><nav class="site-header-nav scroll-container"><div class="nav-login-container"><button id="-account-login" class="nav-main-button link">Sign in</button></div><div class="nav-container nav-help-container hoverable"><button class="nav-main-button">Help</button><div class="nav-hover-popup"><div class="nav-table-columns"><div class="nav-table-column"><h3>pub.dev</h3><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div><div class="nav-table-column"><h3>Flutter</h3><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div><div class="nav-table-column"><h3>Dart</h3><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">pub.dev <img class="foldable-icon" src="/static/hash-v0koh7hq/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Flutter <img class="foldable-icon" src="/static/hash-v0koh7hq/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Dart <img class="foldable-icon" src="/static/hash-v0koh7hq/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></nav><button class="-pub-theme-toggle" aria-label="light/dark theme toggle"></button></div><div id="banner-container"></div><main class="container"><div class="detail-wrapper -active -has-info-box"><div class="detail-header -is-loose"><div class="detail-container"><div class="detail-header-outer-block"><div class="detail-header-content-block"><h1 class="title pub-monochrome-icon-hoverable">shelf 1.4.2 <span class="pkg-page-title-copy"><img class="pub-monochrome-icon pkg-page-title-copy-icon filter-invert-on-dark" src="/static/hash-v0koh7hq/img/content-copy-icon.svg" alt="copy &quot;shelf: ^1.4.2&quot; to clipboard" width="18" height="18" title="Copy &quot;shelf: ^1.4.2&quot; to clipboard" data-copy-content="shelf: ^1.4.2" data-ga-click-event="copy-package-version"/><div class="pkg-page-title-copy-feedback"><span class="code">shelf: ^1.4.2</span> copied to clipboard</div></span></h1><div class="metadata">Published <span><a class="-x-ago" href="" title="Jun 21, 2024" role="button" data-timestamp="1718992024083">8 months ago</a></span> • <a class="-pub-publisher" href="/publishers/tools.dart.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-v0koh7hq/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>tools.dart.dev</a><span class="package-badge" title="Package is compatible with Dart 3.">Dart 3 compatible</span></div><div class="detail-tags-and-like"><div class="detail-tags"><div class="-pub-tag-badge"><span class="tag-badge-main">SDK</span><a class="tag-badge-sub" href="/packages?q=sdk%3Adart" rel="nofollow" title="Packages compatible with Dart SDK">Dart</a><a class="tag-badge-sub" href="/packages?q=sdk%3Aflutter" rel="nofollow" title="Packages compatible with Flutter SDK">Flutter</a></div><div class="-pub-tag-badge"><span class="tag-badge-main">Platform</span><a class="tag-badge-sub" href="/packages?q=platform%3Aandroid" rel="nofollow" title="Packages compatible with Android platform">Android</a><a class="tag-badge-sub" href="/packages?q=platform%3Aios" rel="nofollow" title="Packages compatible with iOS platform">iOS</a><a class="tag-badge-sub" href="/packages?q=platform%3Alinux" rel="nofollow" title="Packages compatible with Linux platform">Linux</a><a class="tag-badge-sub" href="/packages?q=platform%3Amacos" rel="nofollow" title="Packages compatible with macOS platform">macOS</a><a class="tag-badge-sub" href="/packages?q=platform%3Aweb" rel="nofollow" title="Packages compatible with Web platform">web</a><a class="tag-badge-sub" href="/packages?q=platform%3Awindows" rel="nofollow" title="Packages compatible with Windows platform">Windows</a></div></div><div class="detail-like"><button id="-pub-like-icon-button" class="mdc-icon-button" data-ga-click-event="toggle-like" aria-pressed="false" title="Like this package"><img class="mdc-icon-button__icon" src="/static/hash-v0koh7hq/img/like-inactive.svg" alt="liked status: inactive" width="18" height="18"/><img class="mdc-icon-button__icon mdc-icon-button__icon--on" src="/static/hash-v0koh7hq/img/like-active.svg" alt="liked status: active" width="18" height="18"/></button><span class="likes-count"><span id="likes-count">930</span></span></div></div></div></div></div></div><div class="detail-container"><div class="detail-lead"><div class="detail-metadata-toggle"><div class="detail-metadata-toggle-icon">→</div><h3 class="detail-lead-title">Metadata</h3></div><p class="detail-lead-text">A model for web server middleware that encourages composition and easy reuse. </p><p class="detail-lead-more"><a class="detail-metadata-toggle">More...</a></p></div></div><div class="detail-body"><div class="detail-tabs"><div class="detail-tabs-wide-header"><div class="detail-container"><ul class="detail-tabs-header"><li class="detail-tab tab-link detail-tab-readme-title"><a href="/packages/shelf" role="button">Readme</a></li><li class="detail-tab tab-link detail-tab-changelog-title"><a href="/packages/shelf/changelog" role="button">Changelog</a></li><li class="detail-tab tab-link detail-tab-example-title"><a href="/packages/shelf/example" role="button">Example</a></li><li class="detail-tab tab-link detail-tab-installing-title"><a href="/packages/shelf/install" role="button">Installing</a></li><li class="detail-tab tab-link detail-tab-versions-title"><a href="/packages/shelf/versions" role="button">Versions</a></li><li class="detail-tab tab-button detail-tab-analysis-title -active">Scores</li></ul></div></div><div class="detail-container detail-body-main"><div class="detail-tabs-content"><section class="tab-content detail-tab-analysis-content -active"><div class="score-key-figures"><div class="score-key-figure"><div class="score-key-figure-title"><span class="score-key-figure-value">930</span><span class="score-key-figure-supplemental"></span></div><div class="score-key-figure-label">likes</div></div><div class="score-key-figure"><div class="score-key-figure-title"><span class="score-key-figure-value">160</span><span class="score-key-figure-supplemental">&#47; 160</span></div><div class="score-key-figure-label">pub points</div></div><div class="score-key-figure"><div class="score-key-figure-title"><span class="score-key-figure-value">5.72M</span><span class="score-key-figure-supplemental"></span></div><div class="score-key-figure-label">downloads</div></div></div><p class="analysis-info">We analyzed this package <a class="-x-ago" href="" title="on Feb 18, 2025" role="button" data-timestamp="1739907057707">4 days ago</a>, and awarded it 160 pub points (of a possible 160):</p><div class="pkg-report"><div class="pkg-report-section foldable"><div class="pkg-report-header foldable-button" data-ga-click-event="toggle-report-section-convention"><div class="pkg-report-header-icon"><img class="pkg-report-icon" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg" alt="Passed report section" width="18" height="18"/></div><div class="pkg-report-header-title">Follow Dart file conventions</div><div class="pkg-report-header-score"><span class="pkg-report-header-score-granted">30</span> &#47; <span class="pkg-report-header-score-max">30</span><img class="foldable-icon" src="/static/hash-v0koh7hq/img/foldable-section-icon.svg" alt="trigger folding of the section" width="13" height="6"/></div></div><div class="foldable-content"><div class="pkg-report-content"><div class="pkg-report-content-summary markdown-body"><h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 10/10 points: Provide a valid <code>pubspec.yaml</code></h3> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 5/5 points: Provide a valid <code>README.md</code></h3> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 5/5 points: Provide a valid <code>CHANGELOG.md</code></h3> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 10/10 points: Use an OSI-approved license</h3> <p>Detected license: <code>BSD-3-Clause</code>.</p> </div></div></div></div><div class="pkg-report-section foldable"><div class="pkg-report-header foldable-button" data-ga-click-event="toggle-report-section-documentation"><div class="pkg-report-header-icon"><img class="pkg-report-icon" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg" alt="Passed report section" width="18" height="18"/></div><div class="pkg-report-header-title">Provide documentation</div><div class="pkg-report-header-score"><span class="pkg-report-header-score-granted">20</span> &#47; <span class="pkg-report-header-score-max">20</span><img class="foldable-icon" src="/static/hash-v0koh7hq/img/foldable-section-icon.svg" alt="trigger folding of the section" width="13" height="6"/></div></div><div class="foldable-content"><div class="pkg-report-content"><div class="pkg-report-content-summary markdown-body"><h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 10/10 points: 20% or more of the public API has dartdoc comments</h3> <p>80 out of 81 API elements (98.8 %) have documentation comments.</p> <p>Some symbols that are missing documentation: <code>shelf</code>.</p> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 10/10 points: Package has an example</h3> </div></div></div></div><div class="pkg-report-section foldable"><div class="pkg-report-header foldable-button" data-ga-click-event="toggle-report-section-platform"><div class="pkg-report-header-icon"><img class="pkg-report-icon" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg" alt="Passed report section" width="18" height="18"/></div><div class="pkg-report-header-title">Platform support</div><div class="pkg-report-header-score"><span class="pkg-report-header-score-granted">20</span> &#47; <span class="pkg-report-header-score-max">20</span><img class="foldable-icon" src="/static/hash-v0koh7hq/img/foldable-section-icon.svg" alt="trigger folding of the section" width="13" height="6"/></div></div><div class="foldable-content"><div class="pkg-report-content"><div class="pkg-report-content-summary markdown-body"><h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 20/20 points: Supports 6 of 6 possible platforms (<strong>iOS</strong>, <strong>Android</strong>, <strong>Web</strong>, <strong>Windows</strong>, <strong>macOS</strong>, <strong>Linux</strong>)</h3> <ul> <li> <p>✓ Android</p> </li> <li> <p>✓ iOS</p> </li> <li> <p>✓ Windows</p> </li> <li> <p>✓ Linux</p> </li> <li> <p>✓ macOS</p> </li> <li> <p>✓ Web</p> </li> </ul> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 0/0 points: WASM compatibility</h3> <p>This package is compatible with runtime <code>wasm</code>, and will be rewarded additional points in a future version of the scoring model.</p> <p>See <a href="https://dart.dev/web/wasm">https://dart.dev/web/wasm</a> for details.</p> </div></div></div></div><div class="pkg-report-section foldable"><div class="pkg-report-header foldable-button" data-ga-click-event="toggle-report-section-analysis"><div class="pkg-report-header-icon"><img class="pkg-report-icon" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg" alt="Passed report section" width="18" height="18"/></div><div class="pkg-report-header-title">Pass static analysis</div><div class="pkg-report-header-score"><span class="pkg-report-header-score-granted">50</span> &#47; <span class="pkg-report-header-score-max">50</span><img class="foldable-icon" src="/static/hash-v0koh7hq/img/foldable-section-icon.svg" alt="trigger folding of the section" width="13" height="6"/></div></div><div class="foldable-content"><div class="pkg-report-content"><div class="pkg-report-content-summary markdown-body"><h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 50/50 points: code has no errors, warnings, lints, or formatting issues</h3> </div></div></div></div><div class="pkg-report-section foldable"><div class="pkg-report-header foldable-button" data-ga-click-event="toggle-report-section-dependency"><div class="pkg-report-header-icon"><img class="pkg-report-icon" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg" alt="Passed report section" width="18" height="18"/></div><div class="pkg-report-header-title">Support up-to-date dependencies</div><div class="pkg-report-header-score"><span class="pkg-report-header-score-granted">40</span> &#47; <span class="pkg-report-header-score-max">40</span><img class="foldable-icon" src="/static/hash-v0koh7hq/img/foldable-section-icon.svg" alt="trigger folding of the section" width="13" height="6"/></div></div><div class="foldable-content"><div class="pkg-report-content"><div class="pkg-report-content-summary markdown-body"><h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 10/10 points: All of the package dependencies are supported in the latest version</h3> <table> <thead> <tr> <th align="left">Package</th> <th align="left">Constraint</th> <th align="left">Compatible</th> <th align="left">Latest</th> </tr> </thead> <tbody> <tr> <td align="left"><a href="https://pub.dev/packages/async"><code>async</code></a></td> <td align="left"><code>^2.5.0</code></td> <td align="left">2.13.0</td> <td align="left">2.13.0</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/collection"><code>collection</code></a></td> <td align="left"><code>^1.15.0</code></td> <td align="left">1.19.1</td> <td align="left">1.19.1</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/http_parser"><code>http_parser</code></a></td> <td align="left"><code>^4.1.0</code></td> <td align="left">4.1.2</td> <td align="left">4.1.2</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/path"><code>path</code></a></td> <td align="left"><code>^1.8.0</code></td> <td align="left">1.9.1</td> <td align="left">1.9.1</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/stack_trace"><code>stack_trace</code></a></td> <td align="left"><code>^1.10.0</code></td> <td align="left">1.12.1</td> <td align="left">1.12.1</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/stream_channel"><code>stream_channel</code></a></td> <td align="left"><code>^2.1.0</code></td> <td align="left">2.1.4</td> <td align="left">2.1.4</td> </tr> </tbody> </table> <details><summary>Transitive dependencies</summary> <table> <thead> <tr> <th align="left">Package</th> <th align="left">Constraint</th> <th align="left">Compatible</th> <th align="left">Latest</th> </tr> </thead> <tbody> <tr> <td align="left"><a href="https://pub.dev/packages/meta"><code>meta</code></a></td> <td align="left">-</td> <td align="left">1.16.0</td> <td align="left">1.16.0</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/source_span"><code>source_span</code></a></td> <td align="left">-</td> <td align="left">1.10.1</td> <td align="left">1.10.1</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/string_scanner"><code>string_scanner</code></a></td> <td align="left">-</td> <td align="left">1.4.1</td> <td align="left">1.4.1</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/term_glyph"><code>term_glyph</code></a></td> <td align="left">-</td> <td align="left">1.2.2</td> <td align="left">1.2.2</td> </tr> <tr> <td align="left"><a href="https://pub.dev/packages/typed_data"><code>typed_data</code></a></td> <td align="left">-</td> <td align="left">1.4.0</td> <td align="left">1.4.0</td> </tr> </tbody> </table> </details> <p>To reproduce run <code>dart pub outdated --no-dev-dependencies --up-to-date --no-dependency-overrides</code>.</p> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 10/10 points: Package supports latest stable Dart and Flutter SDKs</h3> <h3><img class="report-summary-icon" alt="Passed check" src="/static/hash-v0koh7hq/img/report-ok-icon-green.svg"> 20/20 points: Compatible with dependency constraint lower bounds</h3> <p><code>pub downgrade</code> does not expose any static analysis error.</p> </div></div></div></div></div><p class="tool-env-info">Analyzed with Pana <code>0.22.18</code>, Dart <code>3.7.0</code>.</p><p class="analysis-info">Check the <a href="/packages/shelf/score/log.txt">analysis log</a> for details.</p><h1>Weekly downloads</h1><div class="downloads-chart-display-modes"><div class="mdc-form-field"><strong>Display as: </strong><input id="display-modes-unstacked" class="downloads-chart-radio-button" type="radio" name="display-modes" value="unstacked" checked=""/><label for="display-modes-unstacked">Unstacked</label><input id="version-modes-stacked" class="downloads-chart-radio-button" type="radio" name="display-modes" value="stacked"/><label for="version-modes-stacked">Stacked</label><input id="version-modes-percentage" class="downloads-chart-radio-button" type="radio" name="display-modes" value="percentage"/><label for="version-modes-percentage">Percentage</label></div></div><div class="downloads-chart-version-modes"><div class="mdc-form-field"><strong>By versions: </strong><input id="version-modes-major" class="downloads-chart-radio-button" type="radio" name="version-modes" value="major" checked=""/><label for="version-modes-major">Major</label><input id="version-modes-minor" class="downloads-chart-radio-button" type="radio" name="version-modes" value="minor"/><label for="version-modes-minor">Minor</label><input id="version-modes-patch" class="downloads-chart-radio-button" type="radio" name="version-modes" value="patch"/><label for="version-modes-patch">Patch</label></div></div><div id="-downloads-chart" class="downloads-chart" data-widget="downloads-chart" data-downloads-chart-points="eyJ0b3RhbFdlZWtseURvd25sb2FkcyI6WzEzMTIzMzAsMTI5OTQyOCwxMjk2OTE4LDEzMzU1MDYsMTIyNTUwNCwxMTU5OTU4LDEwODMzNjcsNjAyMzIzLDY4NjA1NiwxMTYwNzk1LDEyNDYwNzgsMTA5MzUzOCwxMDIyNjQ0LDEwNTM3ODYsMTAyODYyNywxMDE3NzkwLDEwNTY0OTgsMTE2MzMxMSwxMDMwMTk1LDEwMDI0MjYsMTAwNDUxMCwxMDMxMTIzLDg4ODc0MiwxMDM1NDY0LDk1MjQzOCwxMDEwNDM4LDEwNTY3NzMsOTMzNDU2LDEwMTQ4MTksMTAyMTU4OSw5OTIxMjksOTUxODUzLDEwMDU1NjksOTI4NDMyLDExMTI5MzgsODk2NTA4LDkxMzE3NSw5Mzk3NTEsOTEyNTI5LDEwMjQ3ODgsMTAxNzI2NCw5NDM1MTUsOTA5ODMwLDEyNDQ4NDIsMTEzOTIwNiwxMDQ4OTE3LDExMTQ5MzMsMTAzODIwOCwxMTUwMjg5LDExMjIxNjYsMTIwODkzMywxMTM4NTIyXSwibWFqb3JSYW5nZVdlZWtseURvd25sb2FkcyI6W3siY291bnRzIjpbMjM5MSwxOTEyLDIyMTEsMTU4MCwxMDIzLDk0MCwxMTU2LDk3OSw4NTMsMTE0MCwxMjYwLDEyODYsMTI2MSwxMjA1LDEzNTMsMTQwNCwxMzQwLDE0NzAsMTU0NiwxNTQ3LDEzNjEsMTc4MywxNjAxLDE2ODEsMTkxMCwyMDM2LDIzMzcsMzk2MiwzMTYyLDM1OTcsMzM4NywzODY2LDUyNTcsNTE1Niw0ODM4LDQ0MTUsMzU2MCwzMDc3LDMyNTgsMzIzNywzMTk5LDMzMjAsMjg1NSwzNzQxLDM4ODYsNDI4MywzNzgwLDM1MzEsNDYxMyw1MDQzLDQzMzMsNDEwMl0sInZlcnNpb25SYW5nZSI6Ij49MC4wLjAtMCA8MS4wLjAifSx7ImNvdW50cyI6WzEzMDk5MzksMTI5NzUxNiwxMjk0NzA3LDEzMzM5MjYsMTIyNDQ4MSwxMTU5MDE4LDEwODIyMTEsNjAxMzQ0LDY4NTIwMywxMTU5NjU1LDEyNDQ4MTgsMTA5MjI1MiwxMDIxMzgzLDEwNTI1ODEsMTAyNzI3NCwxMDE2Mzg2LDEwNTUxNTgsMTE2MTg0MSwxMDI4NjQ5LDEwMDA4NzksMTAwMzE0OSwxMDI5MzQwLDg4NzE0MSwxMDMzNzgzLDk1MDUyOCwxMDA4NDAyLDEwNTQ0MzYsOTI5NDk0LDEwMTE2NTcsMTAxNzk5Miw5ODg3NDIsOTQ3OTg3LDEwMDAzMTIsOTIzMjc2LDExMDgxMDAsODkyMDkzLDkwOTYxNSw5MzY2NzQsOTA5MjcxLDEwMjE1NTEsMTAxNDA2NSw5NDAxOTUsOTA2OTc1LDEyNDExMDEsMTEzNTMyMCwxMDQ0NjM0LDExMTExNTMsMTAzNDY3NywxMTQ1Njc2LDExMTcxMjMsMTIwNDYwMCwxMTM0NDIwXSwidmVyc2lvblJhbmdlIjoiPj0xLjAuMC0wIDwyLjAuMCJ9XSwibWlub3JSYW5nZVdlZWtseURvd25sb2FkcyI6W3siY291bnRzIjpbMzUzMyw2MDc0LDQxMjYsMzkyMiw1MDQ3LDQxNjcsMzgyMCwyMzY4LDE5ODAsODE1NCw2MzY3LDYyODMsMzM4MCw1OTMwLDMwNjMsMjAxMSwzNzU0LDUyMzEsNTQ1NiwzNDgxLDM4MjgsNTk2NiwyODkyLDMyNzUsNDc1Niw1NDg0LDMyODEsNjE5MCwzODY1LDQxMjEsMjQwNCw1NzAyLDM3OTUsMjY5OCwzMjQxLDU4MzAsNDM4MywyNDU5LDEyMTMsMTMzNSwxMjM2LDExODAsMTA1NSwxMjI2LDEwOTMsMTA0MCwxMjY1LDk3NCwxMTUwLDEyMDIsMTEzMiwxMjQwXSwidmVyc2lvblJhbmdlIjoiPj0xLjAuMC0wIDwxLjEuMCJ9LHsiY291bnRzIjpbNDgwMyw0ODI4LDQ1NDIsNDUxNyw1NDE0LDUxODksNTQ2OSwzMDg3LDMzNzMsNTcxMiw1NTQzLDU3NTYsNTU2Myw1NDc3LDUzMDcsNTIxMyw1MzQ3LDUyMDgsNTY2Miw1NDc2LDU1OTAsNjkyMSw1NDMxLDYxNzAsNTg2Myw1NTUwLDU1NjIsNjAxOCw3Mjk4LDU4NzYsNjAzMCw2MzY2LDcxMzIsNjYyNiw3NDc3LDc1MzUsNzE2Myw3NjMwLDcyMjUsNzYyNiw4NTk1LDg3NjMsNzUyMyw5MTQ2LDkwMTgsOTU2Miw5MDI4LDkzOTYsMTA0MzcsMTI3MjYsMTA0ODIsOTY4Nl0sInZlcnNpb25SYW5nZSI6Ij49MS4xLjAtMCA8MS4yLjAifSx7ImNvdW50cyI6WzQ3MzEsNTA1Myw1MDYzLDQ1MjMsNTM1MSw0OTQ1LDQ3OTIsMzAwNywyNzY0LDU1NTMsNDcxNCw1MTQyLDQ1MjIsNTE1MCw1MTcyLDUwNzUsNjE5Myw1NjgzLDU0ODksNTc3Niw1MzQ2LDYwMTUsNTM5Nyw1NzIyLDYyNjUsOTIwOSw4ODU3LDg2MjMsOTI1NSw5MzE5LDk0NzUsODkyMSw5ODIyLDk4NTUsOTI2MSw3OTQzLDg3OTAsOTAzNSw4MzM4LDk0MTksOTg5Myw5NjIyLDg1ODgsOTMzNiw4ODY5LDc2MjUsODMzMiw4MTQ5LDkyMDYsOTI5Nyw5NTMzLDk3OTRdLCJ2ZXJzaW9uUmFuZ2UiOiI+PTEuMi4wLTAgPDEuMy4wIn0seyJjb3VudHMiOls4NDU4LDg4MjYsODMyMyw3NTM0LDg1MzUsODA0Miw5MjQ1LDQ2MTIsNDY5Niw5ODE2LDk5NTYsMTI0NTksMTAxMDksMTI1MzYsMTE1MDgsMTEzMjUsMTEwNzEsMTE4OTEsMTA2NzQsMTA2ODAsOTkwMCwxMTY5NiwxMDc0OCwxMjMxMSwxMjY5MiwxMjg2MywxMzQzMiwxMjUyMSwxMjk5MSwxMzcxNCwxMjc0NSwxMjY0NCwxMjgwOSwxMjEzNiwxMzYwOCwxNDQ1MiwxNDM0NiwxNjEyNywxMzY3NiwxNTU0OCwxNjQ3MCwxNDg0MiwxMzQ2MCwxNjA1MSwxNzAzMSwyMDM2OSwxNzM2MywxNjc3NywxODc3NSwyMDYyOCwyMTEyMiwyMDIzOF0sInZlcnNpb25SYW5nZSI6Ij49MS4zLjAtMCA8MS40LjAifSx7ImNvdW50cyI6WzEyODg0MTQsMTI3MjczNSwxMjcyNjUzLDEzMTM0MzAsMTIwMDEzNCwxMTM2Njc1LDEwNTg4ODUsNTg4MjcwLDY3MjM5MCwxMTMwNDIwLDEyMTgyMzgsMTA2MjYxMiw5OTc4MDksMTAyMzQ4OCwxMDAyMjI0LDk5Mjc2MiwxMDI4NzkzLDExMzM4MjgsMTAwMTM2OCw5NzU0NjYsOTc4NDg1LDk5ODc0Miw4NjI2NzMsMTAwNjMwNSw5MjA5NTIsOTc1Mjk2LDEwMjMzMDQsODk2MTQyLDk3ODI0OCw5ODQ5NjIsOTU4MDg4LDkxNDM1NCw5NjY3NTQsODkxOTYxLDEwNzQ1MTMsODU2MzMzLDg3NDkzMyw5MDE0MjMsODc4ODE5LDk4NzYyMyw5Nzc4NzEsOTA1Nzg4LDg3NjM0OSwxMjA1MzQyLDEwOTkzMDksMTAwNjAzOCwxMDc1MTY1LDk5OTM4MSwxMTA2MTA4LDEwNzMyNzAsMTE2MjMzMSwxMDkzNDYyXSwidmVyc2lvblJhbmdlIjoiPj0xLjQuMC0wIDwxLjUuMCJ9XSwicGF0Y2hSYW5nZVdlZWtseURvd25sb2FkcyI6W3siY291bnRzIjpbMzM2MywzNDc0LDMyMTIsMjg5NSwzNDc3LDMxMTQsMzM0MywyMTY1LDIzNDksMzM1MiwzOTgwLDM3NzcsMzExNywzODY0LDQyNTMsNDI4MCw0NDg1LDQ3MjQsMzYzNywzNzg5LDM2MTcsMzc5MywzNDUzLDQyOTAsNDYyNSw0NDc4LDQ2MTMsNDIwNSw0MzU4LDUzMzUsNTM4Myw1MTM3LDUyOTcsNTE1NCw1MDkyLDQ4MTEsNTY5NCw2MzcwLDYxMTAsNjY3Niw3Mzk1LDY4MjUsNjI1Miw3OTkyLDkwNzIsOTA5NSw5MDYzLDg2MDUsOTM1OCwxMDA2MCwxMDA0OCw4MTM0XSwidmVyc2lvblJhbmdlIjoiPj0xLjMuMS0wIDwxLjMuMiJ9LHsiY291bnRzIjpbMjMwMSwyNjU3LDIyMzcsMjA5MiwyMzMwLDI0MzUsMjg0NSwxMTk0LDEzNTMsMzAxOSwzMTM4LDUwMzcsMzAxNSw0ODA4LDM4MDksMzQ3MSwyOTI3LDMxNTYsMzAzMywyOTE5LDI5NzIsNDAwNSwzNzI1LDM4ODgsMzQ3MSw0MDA0LDM3OTAsMzc5OSwzODA1LDM2MTUsMjkzMiw0MjU3LDQzMDcsMzQxOSwzNzc4LDQ4MDksNDgyOCw1NTQ0LDQzMjYsNTA0Niw1MDMxLDQ1OTAsMzk3Nyw0MDA2LDQ0NjYsNzEyOCw0NTc2LDQzMzUsNTUxOCw3MDA4LDY3MjQsNzgyN10sInZlcnNpb25SYW5nZSI6Ij49MS4zLjItMCA8MS4zLjMifSx7ImNvdW50cyI6WzYzMzMwLDYwODUwLDU2MDQzLDUzODk1LDU1Nzc0LDU5Njg4LDUzODk4LDM0MDY1LDM2NTU3LDQ5Nzg0LDU5MzM1LDU3MzUzLDUwNTUxLDUwOTkwLDUwNDMwLDUyNDY3LDQ5MzE5LDUwNjc4LDU1NTUzLDU5MjE1LDU5NDc3LDU0MjYwLDUyNjI5LDUzNjE2LDUyMDY3LDUzMTQwLDU5MDE5LDU2OTY1LDY0MzczLDU3OTQzLDY4NzY5LDYzMjkzLDY4MDI5LDY3MjY0LDcxNjI5LDY0NTQxLDY4NDQ3LDY5NTI5LDY2MTA2LDcwODEyLDcyNzk1LDcxNjA5LDY1MDAzLDg4MTM4LDExMDEwOSw5OTYwOCwxMTMwMzYsMTAzMzA0LDEyMTUyMSwxMjk5NTYsMTI3ODQyLDEyNjUwOV0sInZlcnNpb25SYW5nZSI6Ij49MS40LjAtMCA8MS40LjEifSx7ImNvdW50cyI6WzYyNDcwNyw2MTQ5NjUsNjgyNzQxLDcyOTc0Myw2MzI1MTAsNjIzMzMwLDU3NTIzOCwzMTc3ODEsNDAxMDE4LDY1MDYyNiw4MTg5NDgsNzU5NjYwLDcxNzYyOCw3MTUxODMsNjk5Njc1LDcwMDUzNCw3Mzg1MTUsODA4Mzc3LDcwMzMzMCw2OTMyODYsNjczMzQ5LDcxODg4Niw2MzQwNDQsNzIwNzQxLDY2MzIxOCw2ODU5NDQsNzEyOTEzLDYxOTUyNSw3MTQ2MTQsODA4MzYyLDc4ODIxNyw3NDkwNjIsNzk2NjQ1LDczODIyOSw5MDIzODEsNzg2NzMwLDgwNjQ4Niw4MzE4OTQsODEyNzEzLDkxNjgxMSw5MDUwNzYsODM0MTc5LDgxMTM0NiwxMTE3MjA0LDk4OTIwMCw5MDY0MzAsOTYyMTI5LDg5NjA3Nyw5ODQ1ODcsOTQzMzE0LDEwMzQ0ODksOTY2OTUzXSwidmVyc2lvblJhbmdlIjoiPj0xLjQuMS0wIDwxLjQuMiJ9LHsiY291bnRzIjpbNjAwMzc3LDU5NjkyMCw1MzM4NjksNTI5NzkyLDUxMTg1MCw0NTM2NTcsNDI5NzQ5LDIzNjQyNCwyMzQ4MTUsNDMwMDEwLDMzOTk1NSwyNDU1OTksMjI5NjMwLDI1NzMxNSwyNTIxMTksMjM5NzYxLDI0MDk1OSwyNzQ3NzMsMjQyNDg1LDIyMjk2NSwyNDU2NTksMjI1NTk2LDE3NjAwMCwyMzE5NDgsMjA1NjY3LDIzNjIxMiwyNTEzNzIsMjE5NjUyLDE5OTI2MSwxMTg2NTcsMTAxMTAyLDEwMTk5OSwxMDIwODAsODY0NjgsMTAwNTAzLDUwNjIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sInZlcnNpb25SYW5nZSI6Ij49MS40LjItMCA8MS40LjMifV0sIm5ld2VzdERhdGUiOiIyMDI1LTAyLTIxVDAwOjAwOjAwLjAwMCJ9" data-downloads-chart-versions-radio="version-modes" data-downloads-chart-display-radio="display-modes"></div></section></div></div></div><aside class="detail-info-box"><a class="packages-scores" href="/packages/shelf/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">930</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">160</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">points</div></div><div class="packages-score packages-score-downloads" title="Number of downloads of this package during the past 30 days"><div class="packages-score-value -has-value"><span class="packages-score-value-number">5.72M</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">downloads</div></div></a><h3 class="title">Publisher</h3><p><a href="/publishers/tools.dart.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-v0koh7hq/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>tools.dart.dev</a></p><h3 class="title">Weekly Downloads</h3><div id="-weekly-downloads-sparkline" class="weekly-downloads-sparkline" data-widget="weekly-sparkline" data-weekly-sparkline-points="AMK3Z0oGFADk0xMAFsoTANJgFAAgsxIAFrMRAOeHEADTMAkA6HcKAFu2EQB+AxMAoq8QALSaDwBaFBAAE7IPAL6HDwDyHhAAL8ARADO4DwC6Sw8A3lMPANO7DwCmjw0AyMwPAHaIDgAGaw8ABSAQAFA+DgAjfA8AlZYPAIEjDwAthg4AAVgPALAqDgBq+xAA/K0NABfvDQDnVg4AkewNABSjDwCwhQ8Am2UOAAbiDQCq/hIABmIRAFUBEAA1AxEAgNcPAFGNEQB2HxEAZXISAFpfEQA="></div><h3 class="title pkg-infobox-metadata">Metadata</h3><p>A model for web server middleware that encourages composition and easy reuse. </p><p><a class="link" href="https://github.com/dart-lang/shelf/tree/master/pkgs/shelf" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/dart-lang/shelf/blob/master/CONTRIBUTING.md" rel="ugc">Contributing</a><br/></p><h3 class="title">Topics</h3><p><a class="topics-tag" href="/packages?q=topic%3Aserver" rel="nofollow">#server</a> <a class="topics-tag" href="/packages?q=topic%3Ashelf" rel="nofollow">#shelf</a> <a class="topics-tag" href="/packages?q=topic%3Abackend" rel="nofollow">#backend</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/shelf/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-v0koh7hq/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>BSD-3-Clause (<a href="/packages/shelf/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="/packages/async" title="^2.5.0">async</a>, <a href="/packages/collection" title="^1.15.0">collection</a>, <a href="/packages/http_parser" title="^4.1.0">http_parser</a>, <a href="/packages/path" title="^1.8.0">path</a>, <a href="/packages/stack_trace" title="^1.10.0">stack_trace</a>, <a href="/packages/stream_channel" title="^2.1.0">stream_channel</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Ashelf" rel="nofollow">Packages that depend on shelf</a></p></aside></div><script type="application/ld+json">{"@context":"http\u003a\u002f\u002fschema.org","@type":"SoftwareSourceCode","name":"shelf","version":"1.4.2","description":"shelf - A model for web server middleware that encourages composition and easy reuse.\u000a","url":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002fshelf","dateCreated":"2014-01-02T04\u003a21\u003a30.895Z","dateModified":"2024-06-21T17\u003a47\u003a04.083038Z","programmingLanguage":"Dart","image":"https\u003a\u002f\u002fpub.dev\u002fstatic\u002fimg\u002fpub-dev-icon-cover-image.png","license":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002fshelf\u002flicense"}</script></div><div class="detail-metadata"><h3 class="detail-metadata-title"><span class="detail-metadata-toggle">←</span> Metadata</h3><div class="detail-info-box"><a class="packages-scores" href="/packages/shelf/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">930</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">160</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">points</div></div><div class="packages-score packages-score-downloads" title="Number of downloads of this package during the past 30 days"><div class="packages-score-value -has-value"><span class="packages-score-value-number">5.72M</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">downloads</div></div></a><h3 class="title">Publisher</h3><p><a href="/publishers/tools.dart.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-v0koh7hq/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>tools.dart.dev</a></p><h3 class="title">Weekly Downloads</h3><div id="-weekly-downloads-sparkline" class="weekly-downloads-sparkline" data-widget="weekly-sparkline" data-weekly-sparkline-points="AMK3Z0oGFADk0xMAFsoTANJgFAAgsxIAFrMRAOeHEADTMAkA6HcKAFu2EQB+AxMAoq8QALSaDwBaFBAAE7IPAL6HDwDyHhAAL8ARADO4DwC6Sw8A3lMPANO7DwCmjw0AyMwPAHaIDgAGaw8ABSAQAFA+DgAjfA8AlZYPAIEjDwAthg4AAVgPALAqDgBq+xAA/K0NABfvDQDnVg4AkewNABSjDwCwhQ8Am2UOAAbiDQCq/hIABmIRAFUBEAA1AxEAgNcPAFGNEQB2HxEAZXISAFpfEQA="></div><h3 class="title pkg-infobox-metadata">Metadata</h3><p>A model for web server middleware that encourages composition and easy reuse. </p><p><a class="link" href="https://github.com/dart-lang/shelf/tree/master/pkgs/shelf" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/dart-lang/shelf/blob/master/CONTRIBUTING.md" rel="ugc">Contributing</a><br/></p><h3 class="title">Topics</h3><p><a class="topics-tag" href="/packages?q=topic%3Aserver" rel="nofollow">#server</a> <a class="topics-tag" href="/packages?q=topic%3Ashelf" rel="nofollow">#shelf</a> <a class="topics-tag" href="/packages?q=topic%3Abackend" rel="nofollow">#backend</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/shelf/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-v0koh7hq/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>BSD-3-Clause (<a href="/packages/shelf/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="/packages/async" title="^2.5.0">async</a>, <a href="/packages/collection" title="^1.15.0">collection</a>, <a href="/packages/http_parser" title="^4.1.0">http_parser</a>, <a href="/packages/path" title="^1.8.0">path</a>, <a href="/packages/stack_trace" title="^1.10.0">stack_trace</a>, <a href="/packages/stream_channel" title="^2.1.0">stream_channel</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Ashelf" rel="nofollow">Packages that depend on shelf</a></p></div><p class="detail-lead-back"><a class="detail-metadata-toggle">Back</a></p></div><div id="-screenshot-carousel" class="carousel"><fab id="-carousel-prev" class="mdc-fab carousel-prev carousel-nav" data-mdc-auto-init="MDCRipple" title="Previous" data-ga-click-event="screenshot-carousel-prev-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-v0koh7hq/img/keyboard_arrow_left.svg" alt="previous" width="24" height="24" aria-hidden="true"/></fab><div id="-image-container" class="image-container"></div><fab id="-carousel-next" class="mdc-fab carousel-next carousel-nav" data-mdc-auto-init="MDCRipple" title="Next" data-ga-click-event="screenshot-carousel-next-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-v0koh7hq/img/keyboard_arrow_right.svg" alt="next" width="24" height="24" aria-hidden="true"/></fab><p id="-screenshot-description" class="screenshot-description"></p></div></main><footer class="site-footer"><a class="link" href="https://dart.dev/">Dart language</a><a class="link sep" href="/report?subject=package%3Ashelf&amp;url=https%3A%2F%2Fpub.dev%2Fpackages%2Fshelf%2Fscore">Report package</a><a class="link sep" href="/policy">Policy</a><a class="link sep" href="https://www.google.com/intl/en/policies/terms/">Terms</a><a class="link sep" href="https://developers.google.com/terms/">API Terms</a><a class="link sep" href="/security">Security</a><a class="link sep" href="https://www.google.com/intl/en/policies/privacy/">Privacy</a><a class="link sep" href="/help">Help</a><a class="link icon sep" href="/feed.atom"><img class="inline-icon" src="/static/hash-v0koh7hq/img/rss-feed-icon.svg" alt="RSS" width="20" height="20" title="RSS/atom feed"/></a><a class="link icon github_issue" href="https://github.com/dart-lang/pub-dev/issues/new"><img class="inline-icon" src="/static/hash-v0koh7hq/img/bug-report-white-96px.png" alt="bug report" width="20" height="20" title="Report an issue with this site"/></a></footer><script src="/static/hash-v0koh7hq/highlight/highlight-with-init.js" defer="defer"></script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10