Files
g3/tmp/duckduckgo_results.html
Dhanji R. Prasanna 68c9135913 Fix research tool UI: remove duplicate header, add footer spacing, remove spinner, widen command display
- Remove duplicate tool header (lib.rs already prints it)
- Add newline before timing footer for visual separation
- Remove spinner animation (incompatible with update_tool_output_line)
- Change shell command format to " > `cmd` ..." with 60 char width
2026-01-10 15:20:40 +11:00

25 lines
262 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<html lang="en-AU" class="has-zcm is-link-style-exp is-link-order-exp is-link-breadcrumb-exp is-related-search-exp is-vertical-tabs-exp defaultfontexp-ducksans js no-touch opacity csstransforms3d csstransitions svg cssfilters is-not-mobile-device full-urls breadcrumb-urls dark-header dark-bg react has-footer" style="--sds-color-palette-black: #000000; --sds-color-palette-white: #FFFFFF; --sds-color-palette-transparent: transparent; --sds-color-palette-gray-100: #111111; --sds-color-palette-gray-90: #222222; --sds-color-palette-gray-85: #333333; --sds-color-palette-gray-80: #444444; --sds-color-palette-gray-70: #666666; --sds-color-palette-gray-60: #888888; --sds-color-palette-gray-50: #aaaaaa; --sds-color-palette-gray-40: #cccccc; --sds-color-palette-gray-30: #dddddd; --sds-color-palette-gray-20: #eeeeee; --sds-color-palette-gray-10: #f5f5f5; --sds-color-palette-gray-0: #fafafa; --sds-color-palette-red-100: #330B01; --sds-color-palette-red-90: #551605; --sds-color-palette-red-80: #77230C; --sds-color-palette-red-70: #9A3216; --sds-color-palette-red-60: #BC4423; --sds-color-palette-red-50: #DE5833; --sds-color-palette-red-40: #E46F4F; --sds-color-palette-red-30: #EB876C; --sds-color-palette-red-20: #F2A18A; --sds-color-palette-red-10: #F8BBAA; --sds-color-palette-red-0: #FFD7CC; --sds-color-palette-red-alert-70: #C10D25; --sds-color-palette-red-alert-60: #CF0E28; --sds-color-palette-red-alert-50: #EB102D; --sds-color-palette-red-alert-40: #D1454A; --sds-color-palette-red-alert-30: #E04A4F; --sds-color-palette-red-alert-20: #FF545A; --sds-color-palette-blue-100: #051133; --sds-color-palette-blue-90: #0b2059; --sds-color-palette-blue-80: #14307e; --sds-color-palette-blue-70: #1e42a4; --sds-color-palette-blue-60: #2b55ca; --sds-color-palette-blue-50: #3969ef; --sds-color-palette-blue-40: #557ff3; --sds-color-palette-blue-30: #7295f6; --sds-color-palette-blue-20: #8fabf9; --sds-color-palette-blue-10: #adc2fc; --sds-color-palette-blue-0: #ccdaff; --sds-color-palette-blue-0-transparency-01: rgba(204, 218, 255, 0.40); --sds-color-palette-blue-0-transparency-02: rgba(204, 218, 255, 0.80); --sds-color-palette-blue-30-transparency-01: rgba(114, 149, 246, 0.15); --sds-color-palette-blue-30-transparency-02: rgba(114, 149, 246, 0.30); --sds-color-palette-blue-30-transparency-03: rgba(114, 149, 246, 0.60); --sds-color-palette-blue-30-transparency-04: rgba(114, 149, 246, 0.20); --sds-color-palette-blue-50-transparency-01: rgba(57, 105, 239, 0.36); --sds-color-palette-blue-50-transparency-02: rgba(57, 105, 239, 0.20); --sds-color-palette-blue-hyperlink: #1a0dab; --sds-color-palette-purple-100: #070019; --sds-color-palette-purple-90: #110336; --sds-color-palette-purple-80: #1D0A53; --sds-color-palette-purple-70: #2C146F; --sds-color-palette-purple-60: #3E228C; --sds-color-palette-purple-50: #5132A9; --sds-color-palette-purple-40: #6B4EBA; --sds-color-palette-purple-30: #876ECB; --sds-color-palette-purple-20: #A591DC; --sds-color-palette-purple-10: #C7B9EE; --sds-color-palette-purple-0: #ECE6FF; --sds-color-palette-purple-hyperlink: #6C00A2; --sds-color-palette-yellow-100: #5a2807; --sds-color-palette-yellow-90: #92540c; --sds-color-palette-yellow-80: #c18010; --sds-color-palette-yellow-70: #e2a412; --sds-color-palette-yellow-60: #f9be1a; --sds-color-palette-yellow-50: #ffcc33; --sds-color-palette-yellow-40: #ffd65c; --sds-color-palette-yellow-30: #ffde7a; --sds-color-palette-yellow-20: #ffe8a3; --sds-color-palette-yellow-10: #fff0c2; --sds-color-palette-yellow-0: #fff7e0; --sds-color-palette-green-100: #073300; --sds-color-palette-green-90: #0f4e05; --sds-color-palette-green-80: #1a690d; --sds-color-palette-green-70: #288419; --sds-color-palette-green-60: #399F29; --sds-color-palette-green-50: #4CBA3C; --sds-color-palette-green-40: #63C853; --sds-color-palette-green-30: #7BD66D; --sds-color-palette-green-20: #96E38A; --sds-color-palette-green-10: #B3F1AA; --sds-color-palette-green-0: #D3FFCC; --sds-color-palette-green-alert-50: #21C000; --sds-color-palette-shade-01: rgba(0, 0, 0, 0.01); --sds-color-palette-shade-03: rgba(0, 0, 0, 0.03); --sds-color-palette-shade-06: rgba(0, 0, 0, 0.06); --sds-color-palette-shade-09: rgba(0, 0, 0, 0.09); --sds-color-palette-shade-12: rgba(0, 0, 0, 0.12); --sds-color-palette-shade-18: rgba(0, 0, 0, 0.18); --sds-color-palette-shade-24: rgba(0, 0, 0, 0.24); --sds-color-palette-shade-30: rgba(0, 0, 0, 0.30); --sds-color-palette-shade-36: rgba(0, 0, 0, 0.36); --sds-color-palette-shade-42: rgba(0, 0, 0, 0.42); --sds-color-palette-shade-48: rgba(0, 0, 0, 0.48); --sds-color-palette-shade-54: rgba(0, 0, 0, 0.54); --sds-color-palette-shade-60: rgba(0, 0, 0, 0.60); --sds-color-palette-shade-66: rgba(0, 0, 0, 0.66); --sds-color-palette-shade-72: rgba(0, 0, 0, 0.72); --sds-color-palette-shade-78: rgba(0, 0, 0, 0.78); --sds-color-palette-shade-84: rgba(0, 0, 0, 0.84); --sds-color-palette-shade-90: rgba(0, 0, 0, 0.90); --sds-color-palette-shade-96: rgba(0, 0, 0, 0.96); --sds-color-palette-red-shade-10: rgba(235, 16, 45, 0.1); --sds-color-palette-red-shade-25: rgba(235, 16, 45, 0.25); --sds-color-palette-red-tint-15: rgba(255, 84, 90, 0.15); --sds-color-palette-red-tint-30: rgba(255, 84, 90, 0.30); --sds-color-palette-blue-shade-40: rgba(204, 218, 255, 0.4); --sds-color-palette-blue-shade-80: rgba(204, 218, 255, 0.8); --sds-color-palette-blue-tint-15: rgba(114, 149, 246, 0.15); --sds-color-palette-blue-tint-30: rgba(114, 149, 246, 0.3); --sds-color-palette-tint-01: rgba(255, 255, 255, 0.01); --sds-color-palette-tint-03: rgba(255, 255, 255, 0.03); --sds-color-palette-tint-06: rgba(255, 255, 255, 0.06); --sds-color-palette-tint-09: rgba(255, 255, 255, 0.09); --sds-color-palette-tint-12: rgba(255, 255, 255, 0.12); --sds-color-palette-tint-18: rgba(255, 255, 255, 0.18); --sds-color-palette-tint-24: rgba(255, 255, 255, 0.24); --sds-color-palette-tint-30: rgba(255, 255, 255, 0.30); --sds-color-palette-tint-36: rgba(255, 255, 255, 0.36); --sds-color-palette-tint-42: rgba(255, 255, 255, 0.42); --sds-color-palette-tint-48: rgba(255, 255, 255, 0.48); --sds-color-palette-tint-54: rgba(255, 255, 255, 0.54); --sds-color-palette-tint-60: rgba(255, 255, 255, 0.60); --sds-color-palette-tint-66: rgba(255, 255, 255, 0.66); --sds-color-palette-tint-72: rgba(255, 255, 255, 0.72); --sds-color-palette-tint-78: rgba(255, 255, 255, 0.78); --sds-color-palette-tint-84: rgba(255, 255, 255, 0.84); --sds-color-palette-tint-90: rgba(255, 255, 255, 0.90); --sds-color-palette-tint-96: rgba(255, 255, 255, 0.96); --sds-color-background-01: #333333; --sds-color-background-02: #222222; --sds-color-background-semi: rgba(0, 0, 0, 0.60); --sds-color-background-semi-state-01: rgba(0, 0, 0, 0.72); --sds-color-background-semi-state-02: rgba(0, 0, 0, 0.84); --sds-color-background-inverse: #FFFFFF; --sds-color-background-disabled: rgba(255, 255, 255, 0.18); --sds-color-background-accent-01: #7295f6; --sds-color-background-accent-01-state-01: #557ff3; --sds-color-background-accent-01-state-02: #3969ef; --sds-color-background-accent-01-transparency-01: rgba(114, 149, 246, 0.15); --sds-color-background-accent-01-transparency-02: rgba(114, 149, 246, 0.30); --sds-color-background-accent-01-alt: #2b55ca; --sds-color-background-accent-01-alt-state-01: #1e42a4; --sds-color-background-accent-01-alt-state-02: #14307e; --sds-color-background-accent-02: rgba(255, 255, 255, 0.90); --sds-color-background-positive: #21C000; --sds-color-background-destructive: #FF545A; --sds-color-background-destructive-state-01: #E04A4F; --sds-color-background-destructive-state-02: #D1454A; --sds-color-background-utility: rgba(255, 255, 255, 0.18); --sds-color-background-utility-state-01: rgba(255, 255, 255, 0.24); --sds-color-background-utility-state-02: rgba(255, 255, 255, 0.30); --sds-color-background-utility-alt: rgba(255, 255, 255, 0.12); --sds-color-background-utility-alt-state-01: rgba(255, 255, 255, 0.18); --sds-color-background-utility-alt-state-02: rgba(255, 255, 255, 0.24); --sds-color-background-container-01: #444444; --sds-color-background-container-02: #333333; --sds-color-background-container-pre: rgba(0, 0, 0, 0.24); --sds-color-background-backdrop: rgba(0, 0, 0, 0.60); --sds-color-background-light: #cccccc; --sds-color-background-dark: #111111; --sds-color-background-support-accent-state-01: rgba(114, 149, 246, 0.15); --sds-color-background-support-accent-state-02: rgba(114, 149, 246, 0.3); --sds-color-background-support-utility-state-01: rgba(255, 255, 255, 0.18); --sds-color-background-support-utility-state-02: rgba(255, 255, 255, 0.24); --sds-color-background-support-destructive-state-01: rgba(255, 84, 90, 0.15); --sds-color-background-support-destructive-state-02: rgba(255, 84, 90, 0.30); --sds-color-text-01: #FFFFFF; --sds-color-text-02: #cccccc; --sds-color-text-03: #cccccc; --sds-color-text-04: #888888; --sds-color-text-disabled: rgba(255, 255, 255, 0.36); --sds-color-text-on-color: #222222; --sds-color-text-on-dark-01: #FFFFFF; --sds-color-text-on-dark-02: #cccccc; --sds-color-text-link-01: #adc2fc; --sds-color-text-link-01-visited: #A591DC; --sds-color-text-link-02: #aaaaaa; --sds-color-text-link-02-hover: #cccccc; --sds-color-text-accent-01: #7295f6; --sds-color-text-accent-01-state-01: #8fabf9; --sds-color-text-accent-01-state-02: #adc2fc; --sds-color-text-accent-01-alt: #ccdaff; --sds-color-text-accent-02: #eeeeee; --sds-color-text-success: #7BD66D; --sds-color-text-utility: rgba(255, 255, 255, 0.84); --sds-color-text-destructive: #FF545A; --sds-color-border-01: rgba(255, 255, 255, 0.24); --sds-color-border-02: transparent; --sds-color-border-03: transparent; --sds-color-border-disabled: rgba(255, 255, 255, 0.24); --sds-color-border-accent-01: #7295f6; --sds-color-border-accent-01-state-01: rgba(114, 149, 246, 0.20); --sds-color-border-inner-divider: rgba(255, 255, 255, 0.09); --sds-color-border-utility: var(--sds-color-palette-tint-24); --sds-color-border-destructive: #FF545A; --sds-base-font-size-value: (0.9 * 16); --sds-base-font-size-in-px: 1px * var(--sds-base-font-size-value); --sds-base-px-in-rem: (1rem / var(--sds-base-font-size-value)); --sds-space-x_5: calc(2 * var(--sds-base-px-in-rem)); --sds-space-x01: calc(4 * var(--sds-base-px-in-rem)); --sds-space-x02: calc(8 * var(--sds-base-px-in-rem)); --sds-space-x03: calc(12 * var(--sds-base-px-in-rem)); --sds-space-x04: calc(16 * var(--sds-base-px-in-rem)); --sds-space-x05: calc(20 * var(--sds-base-px-in-rem)); --sds-space-x06: calc(24 * var(--sds-base-px-in-rem)); --sds-space-x07: calc(28 * var(--sds-base-px-in-rem)); --sds-space-x08: calc(32 * var(--sds-base-px-in-rem)); --sds-space-x09: calc(36 * var(--sds-base-px-in-rem)); --sds-space-x10: calc(40 * var(--sds-base-px-in-rem)); --sds-space-x11: calc(44 * var(--sds-base-px-in-rem)); --sds-space-x12: calc(48 * var(--sds-base-px-in-rem)); --sds-space-x13: calc(52 * var(--sds-base-px-in-rem)); --sds-space-x14: calc(56 * var(--sds-base-px-in-rem)); --sds-space-x16: calc(64 * var(--sds-base-px-in-rem)); --sds-space-x17: calc(68 * var(--sds-base-px-in-rem)); --sds-space-x18: calc(72 * var(--sds-base-px-in-rem)); --sds-space-x20: calc(80 * var(--sds-base-px-in-rem)); --sds-space-x24: calc(96 * var(--sds-base-px-in-rem)); --sds-space-x32: calc(128 * var(--sds-base-px-in-rem)); --sds-space-x40: calc(160 * var(--sds-base-px-in-rem)); --sds-space-x48: calc(192 * var(--sds-base-px-in-rem)); --sds-space-x56: calc(224 * var(--sds-base-px-in-rem)); --sds-space-x64: calc(256 * var(--sds-base-px-in-rem)); --sds-space-x72: calc(288 * var(--sds-base-px-in-rem)); --sds-space-x80: calc(320 * var(--sds-base-px-in-rem)); --sds-space-x96: calc(384 * var(--sds-base-px-in-rem)); --sds-radius-x01: calc(4 * var(--sds-base-px-in-rem)); --sds-radius-x02: calc(8 * var(--sds-base-px-in-rem)); --sds-radius-x03: calc(12 * var(--sds-base-px-in-rem)); --sds-radius-x04: calc(16 * var(--sds-base-px-in-rem)); --sds-radius-x05: calc(20 * var(--sds-base-px-in-rem)); --sds-radius-x06: calc(24 * var(--sds-base-px-in-rem)); --sds-radius-x07: calc(28 * var(--sds-base-px-in-rem)); --sds-radius-x08: calc(32 * var(--sds-base-px-in-rem)); --sds-radius-full: calc(999 * var(--sds-base-px-in-rem)); --sds-font-family-01: &quot;DuckSansProduct&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; --sds-font-family-monospace: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;,&quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace; --sds-font-size-01: 1rem; --sds-font-size-title-01: calc(24 / 14 * 1rem); --sds-font-size-title-02: calc(19 / 14 * 1rem); --sds-font-size-body-large: calc(16 / 14 * 1rem); --sds-font-size-body: 1rem; --sds-font-size-caption: calc(13 / 14 * 1rem); --sds-font-size-label: calc(12 / 14 * 1rem); --sds-font-line-height-01: calc(18 / 14); --sds-font-line-height-title-01: calc(32 / 24); --sds-font-line-height-title-02: calc(24 / 19); --sds-font-line-height-body-large: calc(20 / 16); --sds-font-line-height-body: calc(18 / 14); --sds-font-line-height-caption: calc(16 / 13); --sds-font-line-height-label: 1; --sds-font-weight-normal: 400; --sds-font-weight-medium: 430; --sds-font-weight-bold: 700; --theme-dc-color-blue-container: #F3F6FF; --theme-dc-color-background-dark: #161616; --theme-dc-color-red-tint: #FFD7CC3D; --theme-dc-color-zone-blue-light: #F0F4FF; --theme-dc-color-zone-blue-accent-light: rgba(57, 105, 239, 0.7); --theme-dc-color-zone-blue-dark: rgba(27, 45, 94, 0.97); --theme-dc-color-zone-blue-accent-dark: rgba(57, 105, 239, 0.7); --theme-dc-color-openai-a-10: #EBF1FF; --theme-dc-color-openai-a-30: #AEC5F9; --theme-dc-color-openai-a-50: #7B9CEA; --theme-dc-color-openai-a-70: #5278D1; --theme-dc-color-openai-a-90: #3F5CA2; --theme-dc-color-openai-b-10: #EBF7FF; --theme-dc-color-openai-b-30: #9BD6FD; --theme-dc-color-openai-b-50: #4FB4F8; --theme-dc-color-openai-b-70: #0F90E6; --theme-dc-color-openai-b-90: #0D5F96; --theme-dc-color-openai-c-10: #D8F7FF; --theme-dc-color-openai-c-30: #7EE3FF; --theme-dc-color-openai-c-50: #00D1EC; --theme-dc-color-openai-c-70: #00A2CE; --theme-dc-color-openai-c-90: #054E62; --theme-dc-color-openai-d-10: #F1EBFF; --theme-dc-color-openai-d-30: #CBB3F9; --theme-dc-color-openai-d-50: #A684EB; --theme-dc-color-openai-d-70: #855ED4; --theme-dc-color-openai-d-90: #6845B0; --theme-dc-color-openai-e-10: #E3EBF5; --theme-dc-color-openai-e-30: #B0C6E0; --theme-dc-color-openai-e-50: #7B9CC5; --theme-dc-color-openai-e-70: #7E93AD; --theme-dc-color-openai-e-90: #394C63; --theme-dc-color-claude-a-10: #D1FFE9; --theme-dc-color-claude-a-30: #88F6C1; --theme-dc-color-claude-a-50: #4BE299; --theme-dc-color-claude-a-70: #2EAD70; --theme-dc-color-claude-a-90: #276346; --theme-dc-color-claude-b-10: #DEFCD5; --theme-dc-color-claude-b-30: #A7EC92; --theme-dc-color-claude-b-50: #77D15B; --theme-dc-color-claude-b-70: #559C3F; --theme-dc-color-claude-b-90: #3B5832; --theme-dc-color-llama-a-10: #FFE5FB; --theme-dc-color-llama-a-30: #FA9EE1; --theme-dc-color-llama-a-50: #FA6AD1; --theme-dc-color-llama-a-70: #E72D9D; --theme-dc-color-llama-a-90: #932E70; --theme-dc-color-llama-b-10: #FFE5E5; --theme-dc-color-llama-b-30: #FAA3AF; --theme-dc-color-llama-b-50: #EC698C; --theme-dc-color-llama-b-70: #D73777; --theme-dc-color-llama-b-90: #9B2C67; --theme-dc-color-mistral-a--10: #FFE8DE; --theme-dc-color-mistral-a--30: #FEB695; --theme-dc-color-mistral-a--50: #FB864B; --theme-dc-color-mistral-a--70: #F25A07; --theme-dc-color-mistral-a--90: #A64107; --theme-dc-color-internal-a-10: #D8F7FF; --theme-dc-color-internal-a-30: #7EE3FF; --theme-dc-color-internal-a-50: #00D1EC; --theme-dc-color-internal-a-70: #00A2CE; --theme-dc-color-internal-a-90: #054E62; --theme-dc-color-internal-b-10: #E3E8FF; --theme-dc-color-internal-b-30: #BCC7FF; --theme-dc-color-internal-b-50: #7189FE; --theme-dc-color-internal-b-70: #5162B4; --theme-dc-color-internal-b-90: #434A70; --theme-dc-color-duckassist-10: #F0F0F0; --theme-dc-color-duckassist-30: #C2C2C2; --theme-dc-color-duckassist-50: #222222; --theme-dc-color-duckassist-70: #666666; --theme-dc-color-duckassist-90: #222222; --theme-dc-color-limit-10: #FFF1B8; --theme-dc-color-limit-90: #554400; --theme-dc-box-shadow-main-chat-light: 0px 4px 12px 0px rgba(0, 0, 0, 0.04); --theme-dc-box-shadow-main-chat-dark: 0px 4px 12px 0px rgba(0, 0, 0, 0.20), 0px 20px 40px 0px rgba(0, 0, 0, 0.16); --theme-dc-color-voice-input-background-disabled: rgba(255, 84, 90, 0.30); --theme-dc-color-anchor-sleep: var(--sds-color-palette-tint-48); --theme-dc-color-container-message: var(--sds-color-palette-tint-09); --theme-dc-color-border-01: var(--sds-color-palette-shade-03); --theme-dc-color-border-02: var(--sds-color-palette-transparent); --theme-dc-color-border-03: var(--sds-color-palette-transparent); --theme-dc-color-border-04: var(--sds-color-palette-tint-36); --theme-dc-color-border-05: var(--sds-color-palette-tint-12); --theme-dc-color-layer0: var(--theme-dc-color-background-dark); --theme-dc-color-layer1: var(--sds-color-palette-tint-03); --theme-dc-color-layer2: var(--sds-color-palette-tint-09); --theme-dc-color-layer3: var(--sds-color-palette-tint-06); --theme-dc-color-background-base: var(--sds-color-palette-gray-100); --theme-dc-color-drop-zone-bg: var(--theme-dc-color-zone-blue-dark); --theme-dc-color-drop-zone-border: var(--theme-dc-color-zone-blue-accent-dark); --theme-dc-color-disclaimer: var(--sds-color-palette-tint-09); --theme-dc-color-openai-a-text-01: var(--theme-dc-color-openai-a-50); --theme-dc-color-openai-a-main: var(--theme-dc-color-openai-a-50); --theme-dc-color-openai-a-fg: var(--sds-color-palette-black); --theme-dc-color-openai-a-bg: var(--theme-dc-color-openai-a-30); --theme-dc-color-openai-a-bg-hover: var(--theme-dc-color-openai-a-50); --theme-dc-color-openai-a-bg-highlight: var(--theme-dc-color-openai-a-90); --theme-dc-color-openai-b-text-01: var(--theme-dc-color-openai-b-50); --theme-dc-color-openai-b-main: var(--theme-dc-color-openai-b-50); --theme-dc-color-openai-b-fg: var(--sds-color-palette-black); --theme-dc-color-openai-b-bg: var(--theme-dc-color-openai-b-30); --theme-dc-color-openai-b-bg-hover: var(--theme-dc-color-openai-b-50); --theme-dc-color-openai-b-bg-highlight: var(--theme-dc-color-openai-b-90); --theme-dc-color-openai-c-text-01: var(--theme-dc-color-openai-c-50); --theme-dc-color-openai-c-main: var(--theme-dc-color-openai-c-50); --theme-dc-color-openai-c-fg: var(--sds-color-palette-black); --theme-dc-color-openai-c-bg: var(--theme-dc-color-openai-c-30); --theme-dc-color-openai-c-bg-hover: var(--theme-dc-color-openai-c-50); --theme-dc-color-openai-c-bg-highlight: var(--theme-dc-color-openai-c-90); --theme-dc-color-openai-d-text-01: var(--theme-dc-color-openai-d-50); --theme-dc-color-openai-d-main: var(--theme-dc-color-openai-d-50); --theme-dc-color-openai-d-fg: var(--sds-color-palette-black); --theme-dc-color-openai-d-bg: var(--theme-dc-color-openai-d-30); --theme-dc-color-openai-d-bg-hover: var(--theme-dc-color-openai-d-50); --theme-dc-color-openai-d-bg-highlight: var(--theme-dc-color-openai-d-90); --theme-dc-color-openai-e-text-01: var(--theme-dc-color-openai-e-50); --theme-dc-color-openai-e-main: var(--theme-dc-color-openai-e-50); --theme-dc-color-openai-e-fg: var(--sds-color-palette-black); --theme-dc-color-openai-e-bg: var(--theme-dc-color-openai-e-30); --theme-dc-color-openai-e-bg-hover: var(--theme-dc-color-openai-e-50); --theme-dc-color-openai-e-bg-highlight: var(--theme-dc-color-openai-e-90); --theme-dc-color-claude-a-text-01: var(--theme-dc-color-claude-a-50); --theme-dc-color-claude-a-main: var(--theme-dc-color-claude-a-50); --theme-dc-color-claude-a-fg: var(--sds-color-palette-black); --theme-dc-color-claude-a-bg: var(--theme-dc-color-claude-a-30); --theme-dc-color-claude-a-bg-hover: var(--theme-dc-color-claude-a-50); --theme-dc-color-claude-a-bg-highlight: var(--theme-dc-color-claude-a-90); --theme-dc-color-claude-b-text-01: var(--theme-dc-color-claude-b-50); --theme-dc-color-claude-b-main: var(--theme-dc-color-claude-b-50); --theme-dc-color-claude-b-fg: var(--sds-color-palette-black); --theme-dc-color-claude-b-bg: var(--theme-dc-color-claude-b-30); --theme-dc-color-claude-b-bg-hover: var(--theme-dc-color-claude-b-50); --theme-dc-color-claude-b-bg-highlight: var(--theme-dc-color-claude-b-90); --theme-dc-color-llama-a-text-01: var(--theme-dc-color-llama-a-50); --theme-dc-color-llama-a-main: var(--theme-dc-color-llama-a-50); --theme-dc-color-llama-a-fg: var(--sds-color-palette-black); --theme-dc-color-llama-a-bg: var(--theme-dc-color-llama-a-30); --theme-dc-color-llama-a-bg-hover: var(--theme-dc-color-llama-a-50); --theme-dc-color-llama-a-bg-highlight: var(--theme-dc-color-llama-a-90); --theme-dc-color-llama-b-text-01: var(--theme-dc-color-llama-b-50); --theme-dc-color-llama-b-main: var(--theme-dc-color-llama-b-50); --theme-dc-color-llama-b-fg: var(--sds-color-palette-black); --theme-dc-color-llama-b-bg: var(--theme-dc-color-llama-b-30); --theme-dc-color-llama-b-bg-hover: var(--theme-dc-color-llama-b-50); --theme-dc-color-llama-b-bg-highlight: var(--theme-dc-color-llama-b-90); --theme-dc-color-mistral-a--text-01: var(--theme-dc-color-mistral-a--50); --theme-dc-color-mistral-a--main: var(--theme-dc-color-mistral-a--50); --theme-dc-color-mistral-a--fg: var(--sds-color-palette-black); --theme-dc-color-mistral-a--bg: var(--theme-dc-color-mistral-a--30); --theme-dc-color-mistral-a--bg-hover: var(--theme-dc-color-mistral-a--50); --theme-dc-color-mistral-a--bg-highlight: var(--theme-dc-color-mistral-a--90); --theme-dc-color-internal-a-text-01: var(--theme-dc-color-internal-a-50); --theme-dc-color-internal-a-main: var(--theme-dc-color-internal-a-50); --theme-dc-color-internal-a-fg: var(--sds-color-palette-black); --theme-dc-color-internal-a-bg: var(--theme-dc-color-internal-a-50); --theme-dc-color-internal-a-bg-hover: var(--theme-dc-color-internal-a-30); --theme-dc-color-internal-a-bg-highlight: var(--theme-dc-color-internal-a-90); --theme-dc-color-internal-b-text-01: var(--theme-dc-color-internal-b-50); --theme-dc-color-internal-b-main: var(--theme-dc-color-internal-b-50); --theme-dc-color-internal-b-fg: var(--sds-color-palette-black); --theme-dc-color-internal-b-bg: var(--theme-dc-color-internal-b-50); --theme-dc-color-internal-b-bg-hover: var(--theme-dc-color-internal-b-30); --theme-dc-color-internal-b-bg-highlight: var(--theme-dc-color-internal-b-90); --theme-dc-color-duckassist-main: var(--theme-dc-color-duckassist-30); --theme-dc-color-duckassist-fg: var(--sds-color-palette-black); --theme-dc-color-duckassist-bg: var(--theme-dc-color-duckassist-30); --theme-dc-color-duckassist-bg-hover: var(--theme-dc-color-duckassist-50); --theme-dc-color-duckassist-bg-highlight: var(--theme-dc-color-duckassist-90); --theme-dc-color-image-generation-bg-highlight: var(--theme-dc-color-limit-90); --theme-dc-box-shadow-main-chat: var(--theme-dc-box-shadow-main-chat-dark); --theme-dc-color-background-input-disabled-mobile: var(--sds-color-palette-tint-09); --theme-dc-color-background-input-mobile: var(--sds-color-background-disabled); --theme-dc-color-voice-input-background: var(--sds-color-palette-transparent); --theme-dc-color-upsell-yellow: var(--theme-dc-color-limit-90); --theme-assist-bg-chat-system: #23252A; --theme-assist-button-border-color: var(--sds-color-palette-blue-tint-15); --theme-assist-bg-opt-in: rgb(31, 34, 43); --theme-assist-bg-opt-in-border: var(--sds-color-palette-blue-tint-15); --theme-assist-gradient-stop: #23252A; --theme-assist-bg-loading-dot: var(--sds-color-palette-white); --theme-assist-btn-bg: var(--sds-color-palette-tint-09); --theme-assist-bg-icon: var(--sds-color-palette-shade-36); --theme-assist-txt-link: var(--sds-color-text-accent-01); --theme-assist-txt-link-hover: var(--sds-color-text-accent-01-state-01); --theme-assist-txt-link-active: var(--sds-color-text-accent-01-state-02); --theme-assist-error-bg: var(--sds-color-palette-tint-03); --theme-assist-error-border: var(--sds-color-palette-tint-06); --theme-assist-button-background: #161616; --theme-assist-button-border: linear-gradient(
91deg,
var(--sds-color-palette-blue-70) 0%,
var(--sds-color-palette-purple-50) 49.04%,
var(--sds-color-palette-red-70) 100%
); --theme-assist-tab-background: linear-gradient(
135deg,
rgba(59, 130, 246, 0.15) 0%,
rgba(147, 197, 253, 0.08) 50%,
rgba(246, 87, 59, 0.12) 100%
); --theme-assist-button-text-gradient: linear-gradient(
91deg,
var(--sds-color-palette-blue-10) 0%,
var(--sds-color-palette-purple-10) 49.04%,
var(--sds-color-palette-red-10) 100%
); --theme-assist-button-selected-background: #242937; --theme-col-bg-page: #1c1c1c; --theme-col-bg-page-transparent: rgba(28, 28, 28, 0); --theme-col-bg-page-alt-1: #333333; --theme-col-bg-page-alt-2: #282828; --theme-col-bg-page-alt-3: #161616; --theme-col-bg-txt-1: #eeeeee; --theme-col-bg-txt-2: #cccccc; --theme-col-bg-txt-3: #666666; --theme-col-txt-title: #adc2fc; --theme-col-txt-title-visited: #a591dc; --theme-col-txt-snippet: #cccccc; --theme-col-txt-url: #cccccc; --theme-col-bg-ui: #282828; --theme-col-bg-ui-transparent: rgba(40, 40, 40, 0); --theme-col-border-ui: #282828; --theme-shadow-ui: none; --theme-col-bg-card: #282828; --theme-col-bg-card-header: #333333; --theme-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.5); --theme-shadow-card-hover: 0px 1px 3px rgba(0, 0, 0, 0.16), 0px 2px 4px rgba(0, 0, 0, 0.2); --theme-shadow-button-floating: 0px 2px 6px 0px rgba(0, 0, 0, 0.3), 0px 8px 16px 0px rgba(0, 0, 0, 0.5); --theme-border-card-hover: var(--sds-color-palette-tint-30); --theme-border-button-floating: var(--sds-color-palette-tint-12); --theme-shadow-elevation-50: 0px 2px 6px 0px rgba(0, 0, 0, 0.20), 0px 8px 16px 0px rgba(0, 0, 0, 0.16); --theme-col-border-card-nested: var(--col-gray-70); --theme-col-txt-card: var(--col-white); --theme-col-txt-card-title: var(--col-white); --theme-col-txt-card-subtitle: var(--col-gray-20); --theme-col-txt-tertiary: var(--col-tint-50); --theme-col-txt-card-body: var(--col-gray-20); --theme-col-txt-card-body-light: var(--col-gray-40); --theme-col-txt-card-aside: var(--col-gray-50); --theme-col-card-inner-border: var(--col-slate-light); --theme-col-success: var(--col-green-40); --theme-col-error: var(--col-red-40); --theme-col-txt-msg: var(--col-gray-40); --theme-col-icon: rgba(255,255,255,0.8); --theme-col-bg-button-primary: var(--col-blue-30); --theme-col-bg-button-primary-hover: var(--col-blue-40); --theme-col-bg-button-primary-active: var(--col-blue-50); --theme-col-bg-button-primary-disabled: rgba(255,255,255,0.18); --theme-col-txt-button-primary: var(--col-gray-90); --theme-col-txt-button-primary-disabled: rgba(255,255,255,0.36); --theme-col-bg-button-secondary: rgba(255, 255, 255, 0.18); --theme-col-bg-button-secondary-hover: rgba(255, 255, 255, 0.24); --theme-col-bg-button-secondary-active: rgba(255, 255, 255, 0.30); --theme-col-bg-button-secondary-disabled: rgba(255, 255, 255, 0.18); --theme-col-txt-button-secondary: var(--col-white); --theme-col-txt-button-secondary-disabled: rgba(255, 255, 255, 0.36); --theme-col-bg-button-tertiary-hover: rgba(255, 255, 255, 0.18); --theme-col-bg-button-tertiary-active: rgba(255, 255, 255, 0.24); --theme-col-border-button-tertiary: rgba(255, 255, 255, 0.24); --theme-col-border-button-tertiary-hover: rgba(255, 255, 255, 0.36); --theme-col-border-button-tertiary-active: rgba(255, 255, 255, 0.48); --theme-col-border-button-tertiary-disabled: rgba(255, 255, 255, 0.24); --theme-col-txt-button-tertiary: var(--col-white); --theme-col-txt-button-tertiary-disabled: rgba(255, 255, 255, 0.36); --theme-col-bg-button-ghost-hover: rgba(255, 255, 255, 0.18); --theme-col-bg-button-ghost-active: rgba(255, 255, 255, 0.24); --theme-col-txt-button-ghost: var(--col-blue-30); --theme-col-txt-button-ghost-hover: var(--col-blue-20); --theme-col-txt-button-ghost-active: var(--col-blue-10); --theme-col-txt-button-ghost-disabled: rgba(255, 255, 255, 0.36); --sds-color-border-utility-state-01: var(--sds-color-palette-tint-24); --sds-color-border-utility-state-02: var(--sds-color-palette-tint-30); --theme-col-menu-promo-border: var(--theme-col-bg-page); --theme-col-border-input-alternate: rgba(255,255,255,0.12); --theme-col-bg-button-tab: var(--col-gray-80); --theme-col-txt-button-tab: var(--col-gray-20); --theme-col-bg-button-tab-active: var(--col-gray-20); --theme-col-txt-button-tab-active: var(--col-gray-90); --theme-col-bg-button-tab-hover: var(--col-gray-70); --theme-col-bg-pill: var(--col-gray-80); --theme-col-txt-large-tab: var(--col-gray-40); --theme-col-border-large-tab-selected: var(--col-gray-20); --theme-border-dropdown: none; --theme-bg-dropdown: var(--theme-col-bg-ui-active); --theme-divider-dropdown: 1px solid var(--sds-color-palette-tint-09); --theme-col-lightbox: #0009; --theme-col-bg-header-modal: var(--col-slate); --theme-col-bg-dialog-overlay: rgba(0, 0, 0, 0.6); --theme-col-bg-dialog-install-overlay: rgba(51,51,51,.75); --theme-col-bg-dialog-gradient: radial-gradient(50% 50% at 50% 50%, #051133 0%, #282828 100%); --theme-bg-missing-asset: var(--col-gray-70); --theme-col-missing-asset: var(--col-gray-20); --theme-col-txt-bar: var(--col-tint-84); --theme-col-bg-bar: var(--col-tint-12); --theme-col-bg-modal: var(--col-gray-85); --theme-col-modal-header-border: var(--col-shade-24); --theme-col-modal-border: var(--col-tint-12); --theme-col-bg-expandcollapse: var(--col-gray-85); --theme-col-txt-expandcollapse: var(--col-gray-40); --theme-col-border-expandcollapse: var(--col-gray-85); --theme-col-bg-button-expandcollapse: var(--col-gray-80); --theme-col-bg-button-expandcollapse-active: var(--col-gray-70); --theme-col-bg-button-expandcollapse-hover: var(--col-gray-70); --theme-col-border-button-expandcollapse: var(--col-gray-80); --theme-col-icon-button-expandcollapse: var(--col-gray-20); --theme-col-module-link-new-ux: var(--col-new-blue-light); --theme-pmenu-bg: var(--col-dark); --theme-pmenu-product-icon-bg: var(--col-gray-85); --theme-pmenu-table-odd-row-bg: rgba(255, 255, 255, 0.06); --theme-pmenu-table-gradient: linear-gradient(-90deg, rgba(0, 0, 0, 0.16) 0%, rgba(0, 0, 0, 0) 8%); --theme-pmenu-cross-icon-bg: var(--col-gray-80); --theme-pmenu-expandcollapse-bg: var(--col-gray-85); --theme-pmenu-expandcollapse-bg-hover: var(--col-gray-80); --theme-pmenu-mobile-bg: var(--col-gray-90); --theme-sad-panel-bg: var(--col-gray-80); --theme-sad-panel-number-fg: var(--col-gray-80); --theme-sad-panel-number-bg: var(--col-blue-20); --theme-sad-panel-prompt-em: var(--col-blue-20); --theme-spp-high-contrast-bg: var(--sds-color-palette-purple-0); --theme-spp-high-contrast-card-indicator-color: var(--sds-color-palette-purple-0); --theme-spp-high-contrast-text: var(--sds-color-palette-gray-90); --theme-spp-high-contrast-text-secondary: rgba(0, 0, 0, 0.6); --theme-spp-high-contrast-title-text: var(--sds-color-palette-purple-50); --theme-spp-high-contrast-title-span-text: var(--sds-color-palette-purple-100); --theme-spp-high-contrast-header-border: var(--sds-color-palette-shade-09); --theme-spp-high-contrast-variant-bg: linear-gradient(43deg, #330B01 -0.03%, #5132A9 80.97%), #FFF; --theme-spp-high-contrast-variant-card-indicator-color: var(--sds-color-palette-purple-50); --theme-apple-txt-heading: var(--sds-color-palette-white); --theme-apple-txt: var(--sds-color-palette-gray-40); --theme-apple-txt-light: var(--sds-color-palette-gray-40); --theme-apple-btn: var(--sds-color-palette-blue-40); --theme-apple-btn-txt: var(--sds-color-palette-white); --theme-apple-img-border: var(--sds-color-palette-tint-09); --theme-col-txt-qna-answer: var(--col-gray-20); --theme-col-txt-qna-details: var(--col-gray-55); --theme-col-border-qna-list-sep: var(--col-gray-85); --theme-col-bg-button-qna: var(--col-gray-85); --theme-col-bg-button-qna-hover: var(--col-gray-80); --theme-col-border-button-qna: var(--col-gray-85); --theme-col-border-button-qna-hover: var(--col-gray-80); --theme-col-icon-qna: var(--col-gray-0); --theme-col-image-preload: var(--col-gray-85); --theme-col-sports-team-link: var(--col-gray-40); --theme-col-sitefilter-enabled-card-bg: rgba(204, 218, 255, 0.24); --theme-col-sitefilter-disabled-reddit-circle: var(--col-gray-80); --theme-col-about-link: var(--sds-color-text-accent-01); --theme-skeleton-loader-bg: var(--col-gray-70); --shine-skeleton-loader-color: rgba(51, 51, 51, 0.5); --logo-wrapper-bg: #eee; --calendar-highlight-bg: var(--sds-color-palette-blue-50); --calendar-header-border: var(--sds-color-palette-gray-70); --calendar-icons: var(--sds-color-palette-gray-20); --hotel-offers-border: var(--sds-color-palette-gray-85); --hotel-offers-list-icon-bg: var(--sds-color-palette-gray-20); --toggletip-border-color: var(--sds-color-palette-gray-80); --theme-col-newtab-globe: rgba(255, 255, 255, 0.3); --theme-col-border-dashed: var(--col-tint-18); --theme-col-bg-textarea: var(--col-shade-24); --theme-col-txt-textarea: white; --theme-col-txt-textarea-placeholder: var(--col-gray-50); --theme-col-bg-ext-dropdown: #282828; --theme-background-gradient: linear-gradient(#282828, #3B3B3B); --theme-col-label-annotation: var(--sds-color-palette-gray-40); --theme-col-label-dropdown-text: var(--sds-color-palette-gray-30); --theme-col-text-link: var(--sds-color-palette-blue-20); --theme-col-bg-result-item-divider: #1c1c1c; --forecast-selected-border-color: var(--sds-color-palette-gray-70); --theme-searchbox-border: rgba(0, 0, 0, 0.08); --theme-col-glow: #3969EF33; --theme-searchbox-accent-alt-01: rgba(249, 249, 249, 0.12); --theme-searchbox-accent-alt-02: rgba(249, 249, 249, 0.18); --theme-modal-setasdefault-bg-number: var(--sds-color-palette-blue-30-transparency-01); --theme-modal-setasdefault-fg-number: var(--sds-color-palette-white); --theme-modal-bubble-bg: linear-gradient(180deg, var(--sds-color-palette-shade-30) 0%, var(--sds-color-palette-shade-12) 100%); --theme-modal-bubblepointer-bg: var(--sds-color-palette-shade-30); --theme-col-bg-ui-header: #333333; --theme-col-separator: #333333; --theme-col-bg-ui-active: #3d3d3d; --theme-col-separator-active: #474747; --theme-col-bg-header: #161616; --theme-col-bg-header-transparent: rgba(22, 22, 22, 0); --theme-col-txt-header-link: #cccccc; --theme-col-txt-header-link-hover: #eeeeee; --theme-col-txt-url-domain: #cccccc; --theme-col-txt-url-path: #cccccc; --theme-font-family-result-title: &quot;DuckSansProduct&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; --default-font: &quot;DuckSansProduct&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif;"><head><meta name="description" content="DuckDuckGo. Privacy, Simplified."><meta http-equiv="content-type" content="text/html; charset=utf-8"><title>rust tokio async streaming chunked responses backpressure best practices 2024 at DuckDuckGo</title><style>@media (prefers-color-scheme: dark) { .no-theme { background: #1c1c1c; } }</style><meta name="apple-itunes-app" content="app-id=663592361, app-argument=https://duckduckgo.com/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;smartbanner=1"><link rel="stylesheet" href="/dist/s.323e057b0497b1a5a089.css" type="text/css"><link rel="stylesheet" href="/dist/r.7d617ca0e0ee80baf3c9.css" type="text/css"><link rel="stylesheet" href="/dist/wpl.main.46422da08de6ed97e35f.css" type="text/css" data-handle-css-custom-properties="true"><meta name="robots" content="noindex,nofollow"><meta name="referrer" content="origin"><meta name="apple-mobile-web-app-title" content="rust tokio async streaming chunked responses backpressure best practices 2024"><link rel="preconnect" href="https://links.duckduckgo.com"><link rel="preload" href="/font/DuckSansProduct-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"><link rel="preload" href="/font/DuckSansProduct-Medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"><link rel="preload" href="/font/DuckSansProduct-Bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"><link id="icon60" rel="apple-touch-icon" href="/assets/icons/meta/DDG-iOS-icon_60x60.png?v=2"><link id="icon76" rel="apple-touch-icon" sizes="76x76" href="/assets/icons/meta/DDG-iOS-icon_76x76.png?v=2"><link id="icon120" rel="apple-touch-icon" sizes="120x120" href="/assets/icons/meta/DDG-iOS-icon_120x120.png?v=2"><link id="icon152" rel="apple-touch-icon" sizes="152x152" href="/assets/icons/meta/DDG-iOS-icon_152x152.png?v=2"><link rel="image_src" href="/assets/icons/meta/DDG-icon_256x256.png"><script type="text/javascript" src="/dist/s.c944dd95f816265a132c.js"></script><script type="text/javascript" async="" src="/t.js?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024&amp;l=au-en&amp;s=0&amp;dl=en&amp;ct=AU&amp;bing_market=en-AU&amp;p_ent=&amp;ex=-1&amp;dp=6CIWX9p0i_jb-tIjjVkDGPuyL4apusyaMaTSd7HicU-jcgLgfHJOJUtcagRFrysZmjzTU7FawAh97V6c-m3YI3TkZzwycmubZeh15JF_ujodRtJzgRsI-fKBkNwqCYysPGZq0dSGatF805zYdKyCKt59xnsGo6G-TVlX31Cv84NYyfnPt3a6gMQSVBSlc7iS-3r06SRbWAell9T_GBtgNg.suJFCgK3SmjvqEN7xgo_tw&amp;perf_id=1cc9aa1de3d2371f&amp;parent_perf_id=d9522738f46724ae&amp;perf_sampled=0&amp;host_region=aue&amp;dfrsp=1&amp;aps=0&amp;biaexp=b&amp;eclsexp=a&amp;litexp=c&amp;msvrtexp=b&amp;searchbarexp=b&amp;weatherexp=b"></script><script type="text/javascript">var dc_enabled=1,dc_iu=false,baseLinkUrl="links.duckduckgo.com",baseLinkEnvName="prod",testTrafficType=0,rpl="1",fq=0,fd=1,it=0,iqa=0,iqbi=0,iqm=0,iqs=0,iqp=0,iqq=0,qw=10,dl="en",ct="AU",iqd=0,r1hc=0,r1c=0,r2c,r3c=0,rq="rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024",rqd="rust tokio async streaming chunked responses backpressure best practices 2024",rfq=0,rt="",ra="",rv="",rad="",rds=30,rs=0,spice_version="2000",spice_paths="{}",locale="en_AU",settings_url_params={},rl="au-en",shfl=1,shrl="au-en",rlo=0,df="",ds="",sfq="",iar="",vqd="4-332205726396082626323026369495305160160",safe_ddg=0,show_covid=0,perf_id="1cc9aa1de3d2371f",parent_perf_id="d9522738f46724ae",perf_sampled=0,ti,tig,y,y1,didNotLoadScripts=[],__DDG_BE_VERSION__="serp_20260109_153408_ET",__DDG_FE_CHAT_HASH__="6bead51d64a4725f9a3f";function handleScriptError(el) { if (el && el.getAttribute) { window.didNotLoadScripts.push(el.getAttribute('src')); }}</script><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="HandheldFriendly" content="true"><meta name="apple-mobile-web-app-capable" content="no"><script>var backendExperimentAssignments = {"3adexp":{"active":false,"assignedVariant":null},"aaspuexp":{"active":false,"assignedVariant":null},"aiheaderexp":{"active":true,"assignedVariant":"b"},"biaexp":{"active":true,"assignedVariant":"b"},"binexp":{"active":false,"assignedVariant":null},"defaultfontexpbe":{"active":true,"assignedVariant":"b"},"eclsexp":{"active":true,"assignedVariant":"a"},"headexp":{"active":false,"assignedVariant":null},"litexp":{"active":true,"assignedVariant":"c"},"localfilterexp":{"active":false,"assignedVariant":null},"mautoadexp":{"active":false,"assignedVariant":null},"mcnavexp":{"active":false,"assignedVariant":null},"mobileshoppingfiltersexp":{"active":false,"assignedVariant":null},"msvrtexp":{"active":true,"assignedVariant":"b"},"news_uk_test_exp":{"active":false,"assignedVariant":null},"pa_card_size_experiment_mobile":{"active":false,"assignedVariant":null},"puloverlayexp":{"active":false,"assignedVariant":null},"qfcls":{"active":false,"assignedVariant":null},"related":{"active":false,"assignedVariant":null},"related_click":{"active":false,"assignedVariant":null},"related_done":{"active":false,"assignedVariant":null},"related_requery":{"active":false,"assignedVariant":null},"rspexp2":{"active":false,"assignedVariant":null},"searchbarexp":{"active":true,"assignedVariant":"b"},"svpadexp":{"active":false,"assignedVariant":null},"svpamexp":{"active":false,"assignedVariant":null},"text_extensions_exp":{"active":false,"assignedVariant":null},"tjsexp":{"active":false,"assignedVariant":null},"tqcls":{"active":false,"assignedVariant":null},"useclsexp":{"active":false,"assignedVariant":null},"uspoleposexp":{"active":false,"assignedVariant":null},"videxp":{"active":false,"assignedVariant":null},"weatherexp":{"active":true,"assignedVariant":"b"},"you_news_verticalexp":{"active":false,"assignedVariant":null}}, backendRandomNumbers = {"ads":0.888371863539849};</script><script>var _bootstrapBackendData={"_region":"","bingMarket":"en-AU","hasExtension":false,"hostRegion":"aue","isDesktop":true,"isMobile":false,"showAppleAppStoreAds":false,"showAutoAds":false,"showProductAds":true};</script><script>window.__preloadData__={"apple-ads-ia":{"legacy":[],"modern":[]},"auto-ads-ia":{"legacy":["/dist/wpl.auto-ads-ia.17b44ca4029d3fbadaf9.js","/dist/wpl.auto-ads-ia.53fa85453dd5b4bc3800.css"],"modern":["/dist/wpm.auto-ads-ia.18092f31b60decbd414a.js","/dist/wpm.auto-ads-ia.53fa85453dd5b4bc3800.css"]},"computation-ia":{"legacy":["/dist/wpl.computation-ia.3dcfef67ed5823a6d465.js"],"modern":["/dist/wpm.computation-ia.6309be272b168e9f7163.js"]},"conversions-ia":{"legacy":["/dist/wpl.conversions-ia.d88048cca41674c06e48.js","/dist/wpl.conversions-ia.23c6cb69b3655eeb2d83.css"],"modern":["/dist/wpm.conversions-ia.e494e46498eed5072374.js","/dist/wpm.conversions-ia.23c6cb69b3655eeb2d83.css"]},"currency-ia":{"legacy":["/dist/wpl.currency-ia.edc1703f637001587ed3.js","/dist/wpl.currency-ia.7208f73ac9cc8854b4fa.css"],"modern":["/dist/wpm.currency-ia.52382d72cbf83d96ecaa.js","/dist/wpm.currency-ia.7208f73ac9cc8854b4fa.css"]},"directions-ia":{"legacy":["/dist/wpl.directions-ia.99cf98af8097b5a38f32.js","/dist/wpl.directions-ia.06e5cea60ebabd08f4c1.css"],"modern":["/dist/wpm.directions-ia.43159edddbb6a3e005cd.js","/dist/wpm.directions-ia.06e5cea60ebabd08f4c1.css"]},"duckassist-ia":{"legacy":["/dist/wpl.duckassist-ia.49e64fb7c7bf63359dc8.js","/dist/wpl.duckassist-ia.b0b5f1490f8ecb72f421.css"],"modern":["/dist/wpm.duckassist-ia.cce28afdbdee7d334be5.js","/dist/wpm.duckassist-ia.b0b5f1490f8ecb72f421.css"]},"duckduckgo-help-ia":{"legacy":["/dist/wpl.duckduckgo-help-ia.c2226cacdcb9d56e5ada.js","/dist/wpl.duckduckgo-help-ia.479e0d00c4c2e7096ae8.css"],"modern":["/dist/wpm.duckduckgo-help-ia.595b6e12ad35193c6416.js","/dist/wpm.duckduckgo-help-ia.479e0d00c4c2e7096ae8.css"]},"elections-ia":{"legacy":["/dist/wpl.elections-ia.68c256545211ebb4474b.js","/dist/wpl.elections-ia.e0a8f656b92eb093f797.css"],"modern":["/dist/wpm.elections-ia.b4de6b44e16243a651fe.js","/dist/wpm.elections-ia.e0a8f656b92eb093f797.css"]},"expanded-maps-vertical":{"legacy":["/dist/wpl.expanded-maps-vertical.7a1041a0c622a854e0e6.js","/dist/wpl.expanded-maps-vertical.16e0a21b98b5f044cf0a.css"],"modern":["/dist/wpm.expanded-maps-vertical.87e7625424002bb18b01.js","/dist/wpm.expanded-maps-vertical.16e0a21b98b5f044cf0a.css"]},"forecast-ia":{"legacy":["/dist/wpl.forecast-ia.63df1e23c4820127ccc7.js","/dist/wpl.forecast-ia.a246e17e0f659f42339d.css"],"modern":["/dist/wpm.forecast-ia.8be1cbc12b1e0f37ef9f.js","/dist/wpm.forecast-ia.a246e17e0f659f42339d.css"]},"holiday-ia":{"legacy":["/dist/wpl.holiday-ia.c3941ffdfb4e71f328a9.js"],"modern":["/dist/wpm.holiday-ia.ecd534ca44b35be80bf3.js"]},"images-ia":{"legacy":["/dist/wpl.images-ia.f42a280613f3fd04f3ae.js","/dist/wpl.images-ia.9d788b0bda6e2c3e5307.css"],"modern":["/dist/wpm.images-ia.c33c778f7efdee42e45f.js","/dist/wpm.images-ia.9d788b0bda6e2c3e5307.css"]},"maps-maps-ia":{"legacy":["/dist/wpl.maps-maps-ia.0c98cb8611c7a56c7404.js","/dist/wpl.maps-maps-ia.e2ec0a2172eb9f122691.css"],"modern":["/dist/wpm.maps-maps-ia.d7fe13f3c28b1ad2cbf6.js","/dist/wpm.maps-maps-ia.e2ec0a2172eb9f122691.css"]},"maps-places-ia":{"legacy":["/dist/wpl.maps-places-ia.97c94a8d887551d9f178.js","/dist/wpl.maps-places-ia.984adde8bd151934580b.css"],"modern":["/dist/wpm.maps-places-ia.78b01c3753ea1f737ad4.js","/dist/wpm.maps-places-ia.984adde8bd151934580b.css"]},"news-ia":{"legacy":["/dist/wpl.news-ia.9039e18df1bfcac3592d.js","/dist/wpl.news-ia.b9300c4321da3131b6f3.css"],"modern":["/dist/wpm.news-ia.72521b9b2c13588da26f.js","/dist/wpm.news-ia.b9300c4321da3131b6f3.css"]},"olympics-ia":{"legacy":[],"modern":[]},"public-holidays-ia":{"legacy":["/dist/wpl.public-holidays-ia.a278cedba85cb8e531fc.js"],"modern":["/dist/wpm.public-holidays-ia.25121bbc5247d057db37.js"]},"recipes-ia":{"legacy":["/dist/wpl.recipes-ia.28327bea69ae30f2c4e4.js","/dist/wpl.recipes-ia.f18a4cdb96e231662a6b.css"],"modern":["/dist/wpm.recipes-ia.895a24c5865a1dbf62bc.js","/dist/wpm.recipes-ia.f18a4cdb96e231662a6b.css"]},"sports-ia":{"legacy":["/dist/wpl.sports-ia.21a6f4714844b3a9b3ae.js","/dist/wpl.sports-ia.a6d57a206e60d700bd80.css"],"modern":["/dist/wpm.sports-ia.f47e291567775f384cad.js","/dist/wpm.sports-ia.a6d57a206e60d700bd80.css"]},"titles-ia":{"legacy":["/dist/wpl.titles-ia.5f7ebce7b43d9f4cf1c5.js","/dist/wpl.titles-ia.56d0652025851e8a099a.css"],"modern":["/dist/wpm.titles-ia.b3822b76daf01879003c.js","/dist/wpm.titles-ia.56d0652025851e8a099a.css"]},"videos-ia":{"legacy":["/dist/wpl.videos-ia.52b79331a41d2f5ab359.js","/dist/wpl.videos-ia.4afe1d5b5de496ccb48d.css"],"modern":["/dist/wpm.videos-ia.7d049c8b6b4e899ef6e2.js","/dist/wpm.videos-ia.4afe1d5b5de496ccb48d.css"]},"where-to-watch-ia":{"legacy":["/dist/wpl.where-to-watch-ia.775b17c037769d05ad4e.js","/dist/wpl.where-to-watch-ia.ab67e3579f7a92358aa2.css"],"modern":["/dist/wpm.where-to-watch-ia.dafee69ab0f539daad21.js","/dist/wpm.where-to-watch-ia.ab67e3579f7a92358aa2.css"]}};</script><script type="module">window.supportsModule=true;</script><script nomodule="">if(window.supportsModule!==true){window.supportsModule=false;}</script><script>window.__indexPayload__={instantAnswers:[]};</script><script>window.__initialSearchFormData__={"display_query":"rust tokio async streaming chunked responses backpressure best practices 2024","fields":{"direxp":null,"log":"","requery":null,"sltexp":null,"u":"","up":"","v":null}};</script><script src="/dist/b.9297af3611cf6a19a9e7.js" onerror="handleScriptError(this)"></script><script> function DeepPreloaderV2(scriptId, linkId, timeout, headUrl) { this.scriptId = scriptId; this.linkId = linkId; this.headUrl = headUrl; this.status = 'pending'; this.afterTimeoutStatus = 'pending'; this.headStatus = 'pending'; this.headResponse = null; this.headDuration = null; this.startFetchTime = Date.now(); this.endFetchTime = null; this._onLoad = null; this._onError = null; this._onTimeout = null; this._onHeadComplete = null; if (timeout > 0) { this._timeoutId = setTimeout( function () { this.status = 'timeout'; if (this._onTimeout) { this._onTimeout(); } this._onLoad = null; this._onError = null; this._onTimeout = null; }.bind(this), timeout ); } if (this.headUrl) { var timeHeadStart = Date.now(); DeepPreloaderV2.head(this.headUrl, function(response) { var timeHeadEnd = Date.now(); this.headStatus = 'complete'; this.headDuration = timeHeadEnd - timeHeadStart; this.headResponse = response; if (this._onHeadComplete) { this._onHeadComplete(response); } }.bind(this)); } } DeepPreloaderV2.execTriggerCache = function() { var instantAnswerPayloads = window.__triggerCacheData__ || []; var preloadData = window.__preloadData__; var supportsModule = window.supportsModule; if (!window.__preventExecTriggerCache__ && Array.isArray(instantAnswerPayloads)) { instantAnswerPayloads.forEach(function (instantAnswerPayload) { if (!instantAnswerPayload) return; if (Array.isArray(instantAnswerPayload.resources)) { instantAnswerPayload.resources.forEach(function (resource) { if (!resource) return; switch (resource.type) { case 'webpack-chunk': { if (preloadData && preloadData[resource.name] && document.head) { var assets = preloadData[resource.name][supportsModule ? 'modern' : 'legacy'] || []; assets.forEach(function (asset) { if (!document.head.querySelector('[href="' + asset + '"]')) { var link = document.createElement('link'); link.rel = 'preload'; link.href = asset; link.as = asset.endsWith('.css') ? 'style' : 'script'; document.head.appendChild(link); } }); } break; } case 'json': { if (resource.url && document.head && !document.head.querySelector('[href="' + resource.url + '"]')) { var link = document.createElement('link'); link.rel = 'preload'; link.href = resource.url; link.as = 'fetch'; link.crossOrigin = 'anonymous'; document.head.appendChild(link); } break; } } }); } }); } }; DeepPreloaderV2.head = function(url, callback) { var xhr = new XMLHttpRequest(); xhr.open('HEAD', url, true); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE) { var finalUrl = xhr.responseURL || url; var redirected = finalUrl !== url; callback({ statusCode: xhr.status, redirected: redirected, finalUrl: finalUrl }); } }; xhr.send(); }; DeepPreloaderV2.prototype.addEventListener = function (type, cb) { switch (type) { case 'load': this._onLoad = cb; break; case 'error': this._onError = cb; break; case 'timeout': this._onTimeout = cb; break; case 'loadAfterTimeout': this._onLoadAfterTimeout = cb; break; case 'errorAfterTimeout': this._onErrorAfterTimeout = cb; break; case 'headComplete': this._onHeadComplete = cb; break; } }; DeepPreloaderV2.prototype._cleanup = function () { this._onLoad = null; this._onError = null; this._onTimeout = null; this._onLoadAfterTimeout = null; this._onErrorAfterTimeout = null; var script = document.getElementById(this.scriptId); if (script) { script.onload = null; script.onerror = null; document.head.removeChild(script); script = null; } var link = document.getElementById(this.linkId); if (link) { document.head.removeChild(link); link = null; } }; DeepPreloaderV2.prototype.cancel = function () { this._cleanup(); }; DeepPreloaderV2.prototype.onLoad = function () { clearTimeout(this._timeoutId); this.endFetchTime = Date.now(); var duration = this.endFetchTime - this.startFetchTime; if (this.status === 'timeout') { this.afterTimeoutStatus = 'success'; if (this._onLoadAfterTimeout) { this._onLoadAfterTimeout(duration); } } else { this.status = 'success'; if (this._onLoad) { this._onLoad(duration); } } this._cleanup(); }; DeepPreloaderV2.prototype.onError = function () { clearTimeout(this._timeoutId); this.endFetchTime = Date.now(); var duration = this.endFetchTime - this.startFetchTime; if (this.status === 'timeout') { this.afterTimeoutStatus = 'error'; if (this._onErrorAfterTimeout) { this._onErrorAfterTimeout(duration); } } else { this.status = 'error'; if (this._onError) { this._onError(duration); } } this._cleanup(); }; window.deepPreloader = new DeepPreloaderV2('deep_preload_script', 'deep_preload_link', 4750, null); window.deepPreloaderOnLoad = window.deepPreloader.onLoad.bind(window.deepPreloader); window.deepPreloaderOnError = window.deepPreloader.onError.bind(window.deepPreloader);</script><link rel="prefetch" as="script" href="/dist/wpm.2808.941aec5fd1f1977b2196.js"><link rel="prefetch" as="script" href="/dist/wpm.1619.36c7464fcbf3bdd269a2.js"><link rel="prefetch" as="script" href="/dist/wpm.933.10388c97d85ac9051fc0.js"><link rel="prefetch" as="script" href="/dist/wpm.6508.0c99c59c5830a9bf97bd.js"><link rel="prefetch" as="script" href="/dist/wpm.chat.6bead51d64a4725f9a3f.js"><link rel="prefetch" as="script" href="/dist/wpm.9814.5216d4bcb95276c83858.js"><link rel="prefetch" as="script" href="/dist/wpm.feedback-modal.d37ec57784d7c084d2bb.js"><link rel="prefetch" as="script" href="/dist/wpm.2110.dc636bbafacc163a57c3.js"><link rel="prefetch" as="script" href="/dist/wpm.images-vertical.a523c49763df4bb76495.js"><link rel="prefetch" as="script" href="/dist/wpm.shopping-vertical.9f7b52ca4a320894b29c.js"><link title="DuckDuckGo" type="application/opensearchdescription+xml" rel="search" href="https://duckduckgo.com/opensearch.xml?atb=v516-3__"><link rel="preload" href="/dist/wpm.duckassist-ia.cce28afdbdee7d334be5.js" as="script"><link rel="preload" href="/dist/wpm.duckassist-ia.b0b5f1490f8ecb72f421.css" as="style"><link data-handle-css-custom-properties="true" rel="stylesheet" type="text/css" href="/dist/wpm.6508.4a14583f371da9ab6d16.css"><link data-handle-css-custom-properties="true" rel="stylesheet" type="text/css" href="/dist/wpm.duckassist-ia.b0b5f1490f8ecb72f421.css"><style>@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/73ea273a72f4aca30ca5.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/d562e886c52f12660a41.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/853be92419a6c3766b9a.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(https://duckduckgo.com/dist/react-assets/a1abf90dfd72792a577a.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/d757c535a2e5902f1325.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/7489a2fbfb9bfe704420.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/d6484fce1ef428d5bd94.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/db074fa22cf224af93d7.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/7e873d3833eb108a0758.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(https://duckduckgo.com/dist/react-assets/931d67ea207ab37ee693.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/354501bac435c3264834.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/4c761b3711973ab04edf.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/172d3529b26f8cedef6b.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/6fdf0ac577be0ba82a4c.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/ed305b5434865e06ffde.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(https://duckduckgo.com/dist/react-assets/39890742bc957b368704.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/0c3b8929d377c0e9b2f3.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/8169508bf58f8bd92ad8.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(https://duckduckgo.com/dist/react-assets/20f389c4120be058d80a.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/428978dc7837d46de091.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/828abcb200061cffbaae.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/fe2176f79edaa716e621.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/fd947498bc16392e76c2.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/fa675e5e4bec9eb250b6.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/f650f111a3b890d116f1.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/4f35fbcc9ee8614c2bcc.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/9eba1d77abcf2aa6e94e.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(https://duckduckgo.com/dist/react-assets/dcbcbd93bac0470b462d.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/3f07ed67f06c720120ce.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/bf2d440b3a42ea78a998.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/6d3d25f4820d0da8f01f.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/96759856b4e70f3a8338.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/8a5f936332e8028c7278.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(https://duckduckgo.com/dist/react-assets/95591a929f0d32aa282a.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/b9cd458ac6d5889ff9c3.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/5b49f4993ae22d7975b4.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/7d393d382f3e7fb1c637.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/8d593cfaa96238d5e2f8.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/b257a18c016f37ee4543.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/cd5e231e0cc53b2cb2c0.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/02271ec5cb9f5b4588ac.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/2f7bc363fc5424ebda59.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/c81d1b2a4b75d3eded60.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/073b3402d036714b4370.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/fc9ba5249878cd8f8d88.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/6eec866c69313624be60.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/0108e89c9003e8c14ea3.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/6de7d4b539221a49e9e2.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/2960900c4f271311eb36.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/3a99e70aee4076660d38.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/57f5c1837853986ea1db.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/e1951519f6f0596f7356.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/7947224e8a9914fa332b.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/8d6b6822586eea3d3b20.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/e418bf257af1052628d8.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/aeffd8025cba3647f1a6.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/4ad7c7e8bb8d10a34bb7.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(https://duckduckgo.com/dist/react-assets/c295e7f71970f03c0549.woff2) format("woff2"),url(https://duckduckgo.com/dist/react-assets/4c6b94fd1d07f8beff7c.woff) format("woff"),url(https://duckduckgo.com/dist/react-assets/c5c02d763c89380dcb4e.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.11"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
</style></head><body class="body--serp " data-activetabid="web"><input id="state_hidden" name="state_hidden" type="text" size="1"><!-- Ignore this input please --><div id="spacing_hidden_wrapper"><div id="spacing_hidden"></div></div><script type="text/javascript" src="/dist/lib/l.32113981e35aa54fc221.js" onerror="handleScriptError(this)"></script><script type="text/javascript" src="/dist/locale/en_AU.b880d58aa19a491ca0b3b29888029eff.js" onerror="handleScriptError(this)"></script><script type="text/javascript" src="/dist/util/u.55f7e4ea210eaf291fa8.js" onerror="handleScriptError(this)"></script><script>!function(e,t,n){!("noModule"in(t=e.createElement("script")))&&"onbeforeload"in t&&(n=!1,e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove())}(document)</script><script src="/dist/wpmv.ee1104e13748933e48db.js" type="module" onerror="handleScriptError(this)"></script><script src="/dist/wpm.main.308090568bd91c4c0316.js" type="module" onerror="handleScriptError(this)"></script><script src="/dist/wplv.88dd2107d52819e19bfa.js" nomodule="" defer="" onerror="handleScriptError(this)"></script><script src="/dist/wpl.main.5cbc7eebb57193a80ef3.js" nomodule="" defer="" onerror="handleScriptError(this)"></script><script type="text/javascript" src="/dist/d.1d9055b5508ac5647903.js" onerror="handleScriptError(this)"></script><div class="site-wrapper js-site-wrapper" style="min-height: 628px;"><div class="welcome-wrap js-welcome-wrap"></div><div id="header_wrapper" data-testid="header" class="header-wrap js-header-wrap ai-header-exp ready"><div id="header" class="header cw"><div id="header-non-nav" class="header__shrink-beyond-min-size"><div class="header__search-wrap">
<a id="header-logo-wrapper" tabindex="-1" href="/" class="header__logo-wrap js-header-logo" data-testid="header-logo" aria-label="DuckDuckGo home">
<span class="header__logo js-logo-ddg" data-dynamic-logo="">
<span class="header__logo-icon js-logo-icon"></span>
<span class="header__logo-wordmark"></span>
<span class="visually-hidden">DuckDuckGo</span>
</span>
</a>
<div class="header__content header__search"><div id="react-search-form"><form data-testid="search-form" id="search_form" name="x" action="/" method="GET"><div data-reach-combobox="" data-state="idle"><div class="qbeSJGurtw4wF0FqAJqF"><div class="jnfopIud3XnBlXjNFBlD jyBaPv1HPGOoWrXSAjiu"><div class="T265XEcezvjUhK71U8pN QsyijBlqupsaY11GFhnp"><input aria-autocomplete="both" aria-controls="listbox--:r1:" aria-expanded="false" aria-haspopup="listbox" aria-label="search" role="combobox" id="search_form_input" name="q" class="KzVoRLlICt8isnbHKZpL" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="Search privately" data-reach-combobox-input="" data-state="idle" value="rust tokio async streaming chunked responses backpressure best practices 2024"><div class="_212PfUnoxOJ9_9eYg13j"><button class="HVBL8JHISy20igdHL30m" type="reset" aria-label="clear"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><path fill="currentColor" d="M11.933 3.183a.625.625 0 1 1 .884.884L8.884 8l3.933 3.933a.625.625 0 1 1-.884.884L8 8.884l-3.933 3.933a.625.625 0 1 1-.884-.884L7.116 8 3.183 4.067a.625.625 0 1 1 .884-.884L8 7.116z"></path></svg></button><button class="tre66mmQ79ZU1ithDMXw" type="submit" aria-label="search"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><g><path fill="currentColor" fill-rule="evenodd" d="M7 0a7 7 0 1 0 4.488 12.372l3.445 3.445a.625.625 0 1 0 .884-.884l-3.445-3.445A7 7 0 0 0 7 0M1.25 7a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0" clip-rule="evenodd"></path></g></svg></button></div></div><div class="TDdmR6XoXO983xBDDprD uNwszad6rrPUgzBOPjCr M3FRjVZdCD97QaHV0pnh" data-testid="search-autocomplete-menu" data-reach-combobox-popover="" data-state="idle" hidden="" tabindex="-1"><div class="MwGlxUL0L_ihHwCldl_j"><div class="OutojmGb6PuJYpCXJAm_"><ul role="listbox" class="UtQI0KU_zBtRJ8DdzVHn" data-reach-combobox-list="" id="listbox--:r1:"><div class="kRtiXxLgFRMWbZza0qma Cnj6WNwQCRaK_zGmhk88"></div></ul></div></div></div></div></div></div></form></div></div></div><div class="header--aside js-header-aside"><div id="react-ai-button-slot"></div><div class="header--aside__item header--aside__item--hidden-lg"></div><button id="header-hamburger-menu-btn" class="header__button--menu js-side-menu-open"><span>Open menu</span><svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 10a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1-.75-.75ZM1.75 7a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5H1.75Z"></path></svg></button></div></div><div id="react-duckbar" data-testid="duckbar"><div class="A3jKQ60lBdG4Xl5HbK6_ h3EKGeHmRRkjbMqYfNUi wuwdN2SgDOTwsnBO5PI7 rXBzGoYc_uM83jRoODrM xWVFEW_kM7bYLASLNfsZ"><div class="FMPme3X940xAt4SKPFuw"><section class="aDtqDaYogch0DyrGTrX6"><nav class="DrcPyihFGyKMlg6lpwsa fmNE5tkVXayTmN_LsM5d"><ul class="XvPRmQVeIoCP5lQhICTv DrcNDXeWs90rE8UOUh96"><li><a class="kFFXe30DOpq5j1hbWU1q SnptgjT2zdOhGYfNng6g wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=web"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><g><path fill="currentColor" fill-rule="evenodd" d="M7 0a7 7 0 1 0 4.488 12.372l3.445 3.445a.625.625 0 1 0 .884-.884l-3.445-3.445A7 7 0 0 0 7 0M1.25 7a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0" clip-rule="evenodd"></path></g></svg> All</a></li><li><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=images&amp;iax=images">Images</a></li><li><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=videos&amp;iax=videos">Videos</a></li><li><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=news&amp;iar=news">News</a></li><li class="WGdpd_iV__IHlnRacxBr"><div class="KE_4ibtn0WI3iUo6lJw9 nOpYdHAdSD_d47TfU1p8"><div tabindex="0" class="UWzy821Y58lvrLxQ7fnz"><span class="AcDYEbcXCwvTbbTAUvSP"><span class="kFFXe30DOpq5j1hbWU1q">More</span></span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="sG3VWKPgDjJAlSrJSoLP" aria-hidden="true"><path fill="currentColor" d="M9.151 4.142a.5.5 0 0 1 .698.716L7.045 7.582a1.5 1.5 0 0 1-2.09 0L2.15 4.858a.5.5 0 0 1 .698-.716L5.65 6.864a.5.5 0 0 0 .698 0z"></path></svg></div><div data-testid="dropdown-options" class="fCp5GIWYTsUwPglO0ME2 AgWckucr2h5uZCHmaoMA MjGkjxbh30CPBNoGlBBJ" style="top: 108px; left: 268.53125px;"><div class="IrVYRCUvYQ98h_9Xp7aN undefined"><div><div class="BDI1KtNF8HUPBZ4Cw_nK jtdbIaZI8tp6TDLy9g9C"><div class="XDlY0TtgvNNpAZYGOLff"><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" tabindex="-1" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;iaxm=maps">Maps</a></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK ck6hdN1Jv1QmGaF7klae"><div class="XDlY0TtgvNNpAZYGOLff"><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" tabindex="-1" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=shopping&amp;iax=shopping">Shopping</a></div></div></div></div></div></div></li></ul><ul class="XvPRmQVeIoCP5lQhICTv ofDl_1VxUG_EKc3b9E3x"><li><span tabindex="0"><div class="Rfx96grmLovPIeXAv6j6 xR2eKNUpKGfW6kG4WYbe"><a class="d3n3IVqx1558EtMlZV_g xR2eKNUpKGfW6kG4WYbe ffON2NH02oMAcqyoh2UU vcOFkrrvuSYp7xsAur2Y GnLX_jUB3Jn3idluie7R" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=web&amp;assist=false"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><path fill="currentColor" fill-rule="evenodd" d="M3.375 6a.625.625 0 1 0 0-1.25H.625a.625.625 0 1 0 0 1.25zM8.5 9.375c0 .345-.28.625-.625.625H.625a.625.625 0 1 1 0-1.25h7.25c.345 0 .625.28.625.625M10.375 14a.625.625 0 1 0 0-1.25H.625a.625.625 0 1 0 0 1.25z" clip-rule="evenodd"></path><path fill="currentColor" d="M10.154.382c.123-.49.819-.49.941 0l.297 1.186a4.18 4.18 0 0 0 3.04 3.04l1.186.296c.49.123.49.819 0 .941l-1.186.297a4.18 4.18 0 0 0-3.04 3.04l-.296 1.186c-.123.49-.82.49-.942 0l-.296-1.186a4.18 4.18 0 0 0-3.04-3.04l-1.186-.297c-.49-.122-.49-.818 0-.94l1.186-.297a4.18 4.18 0 0 0 3.04-3.04z"></path></svg> <span>Search Assist</span></a></div></span></li><li><span tabindex="0"><a class="Pd_jmhkZzftl0UtTaw0u FjSJqhByQmoYMVscUoQe VssOcyhy47YNtTsYTdr0 wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&amp;ia=chat"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><g fill="currentColor"><path fill-rule="evenodd" d="m10.54 12.57-.047.02c-.81.372-2.323.786-4.064 1.174a93 93 0 0 1-3.324.67l.297-.343c.781-.901.554-2.169-.215-2.85-1.22-1.08-1.937-2.539-1.937-4.116C1.25 4.013 4.132 1.25 8 1.25s6.75 2.763 6.75 5.875c0 2.372-1.644 4.514-4.161 5.427zm.475 1.157c-1.891.868-6.545 1.75-9.2 2.206-.665.114-1.092-.66-.65-1.17l1.293-1.491c.28-.322.22-.813-.1-1.096C.902 10.886 0 9.1 0 7.125 0 3.19 3.582 0 8 0s8 3.19 8 7.125c0 2.985-2.061 5.541-4.985 6.602" clip-rule="evenodd"></path><path d="M7.62 3.271c.099-.396.661-.396.76 0l.22.878a3.27 3.27 0 0 0 2.376 2.376l.878.22c.396.099.396.661 0 .76l-.878.22A3.27 3.27 0 0 0 8.6 10.102l-.219.877c-.099.396-.661.396-.76 0l-.22-.877a3.27 3.27 0 0 0-2.377-2.377l-.877-.22c-.396-.099-.396-.661 0-.76l.877-.22A3.27 3.27 0 0 0 7.4 4.15z"></path></g></svg> Duck.ai</a></span></li><li><span tabindex="0"><button class="Pd_jmhkZzftl0UtTaw0u FjSJqhByQmoYMVscUoQe VssOcyhy47YNtTsYTdr0 gu3Q2GnnzpqybD2PQxoN wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><g><path fill="currentColor" fill-rule="evenodd" d="M5.647 14.153c0 1.028.833 1.862 1.862 1.862h.983a1.86 1.86 0 0 0 1.861-1.862c0-.512.592-.797.993-.478a1.86 1.86 0 0 0 2.616-.295l.613-.768a1.86 1.86 0 0 0-.295-2.616.611.611 0 0 1 .245-1.075 1.86 1.86 0 0 0 1.4-2.229l-.218-.958a1.86 1.86 0 0 0-2.23-1.4.611.611 0 0 1-.686-.862 1.86 1.86 0 0 0-.87-2.485l-.886-.426a1.86 1.86 0 0 0-2.484.869.611.611 0 0 1-1.101 0A1.86 1.86 0 0 0 4.965.56L4.08.988a1.86 1.86 0 0 0-.87 2.485.611.611 0 0 1-.686.861 1.86 1.86 0 0 0-2.23 1.4l-.218.96a1.86 1.86 0 0 0 1.4 2.228c.5.114.646.755.245 1.075a1.86 1.86 0 0 0-.295 2.616l.613.768a1.86 1.86 0 0 0 2.616.295c.4-.32.993-.034.993.478m1.862.612a.61.61 0 0 1-.612-.612c0-1.56-1.803-2.427-3.022-1.455a.61.61 0 0 1-.86-.097l-.612-.769a.61.61 0 0 1 .097-.859c1.219-.972.774-2.923-.747-3.27a.61.61 0 0 1-.46-.732l.22-.959a.61.61 0 0 1 .731-.46c1.52.347 2.768-1.217 2.092-2.622a.61.61 0 0 1 .286-.816l.886-.427a.61.61 0 0 1 .815.285C7 3.377 9 3.377 9.677 1.972a.61.61 0 0 1 .816-.285l.886.427a.61.61 0 0 1 .285.816c-.676 1.405.571 2.97 2.092 2.622a.61.61 0 0 1 .732.46l.219.959a.61.61 0 0 1-.46.732c-1.52.347-1.966 2.298-.746 3.27.264.21.307.595.096.86l-.612.768a.61.61 0 0 1-.86.097c-1.22-.973-3.022-.104-3.022 1.455a.61.61 0 0 1-.611.612zM8 9.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M5 8a3 3 0 1 0 6 0 3 3 0 0 0-6 0" clip-rule="evenodd"></path></g></svg><span style="border: 0px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px; white-space: nowrap;">Search Settings</span><span class="GvOyzMne4mp0HkKQ5VRk"><div class="dropdown dropdown--settings dropdown--settings--icon"><a class="zcm__link dropdown__button js-dropdown-button"></a></div></span></button></span></li></ul></nav></section></div></div></div></div></div><div id="react-browser-update-info"></div><div id="zero_click_wrapper" class="zci-wrap"><div id="react-root-zci"></div></div><div id="vertical_wrapper" class="verticals"></div><div id="web_content_wrapper" class="content-wrap" data-hide-untill-css-vars-polyfilled="true"><div class="serp__top-right js-serp-top-right"></div><div class="serp__bottom-right js-serp-bottom-right"><div class="js-feedback-btn-wrap"></div></div><div data-testid="mainline" class="results--main"><noscript><meta http-equiv="refresh" content="0;URL=/html?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024"><link href="/css/noscript.css" rel="stylesheet" type="text/css"><div class="msg msg--noscript"><p class="msg-title--noscript">You are being redirected to the non-JavaScript site.</p>Click <a href="/html/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024">here</a> if it doesn't happen automatically.</div></noscript></div><div id="react-layout"><div><div class=""><div class="qrc3T8W2PIYg9L63oA06 IlK3G8WDnnjkNGDV6qzo h3EKGeHmRRkjbMqYfNUi wuwdN2SgDOTwsnBO5PI7 rXBzGoYc_uM83jRoODrM xWVFEW_kM7bYLASLNfsZ" data-testid="web-vertical"><div class="W4_K5H4AqLL1ngRJt_pk"><nav class="ph1UFslrkUMqoYJEtp3t hnKIeVb9Fi3YMCZAeQvR"><div class="c1GwqC__eRoEs0cLTIfL"> <div class="KE_4ibtn0WI3iUo6lJw9 nOpYdHAdSD_d47TfU1p8 yjuFYcjOI844d3KiuLhz"><div tabindex="0" class="UWzy821Y58lvrLxQ7fnz"><span class="AcDYEbcXCwvTbbTAUvSP"><div data-testid="privacy-reminder" class="tLOIFsGSlsX1Gf3q0uFm"><div class="WrUGeBiPtBxjLCPzF2gE FebjDuqgRHRk3Jcfkl0y"><div class="hkZz1SMSxfWESglVlkUJ"><div class="MdTimh5XRAJzHIEU2HIT IuA6a2PUTR9Lck6m0WlP"></div><div class="MdTimh5XRAJzHIEU2HIT XxDCpwElzOhQaLmCxJ8z"></div><div class="MdTimh5XRAJzHIEU2HIT XzgiQhR6DcqPkNRYyhnH FebjDuqgRHRk3Jcfkl0y"></div></div><span class="wXKLp5dS9jGvo097pfaG">Protected</span></div></div></span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="sG3VWKPgDjJAlSrJSoLP" aria-hidden="true"><path fill="currentColor" d="M9.151 4.142a.5.5 0 0 1 .698.716L7.045 7.582a1.5 1.5 0 0 1-2.09 0L2.15 4.858a.5.5 0 0 1 .698-.716L5.65 6.864a.5.5 0 0 0 .698 0z"></path></svg></div><div data-testid="dropdown-options" class="fCp5GIWYTsUwPglO0ME2 AgWckucr2h5uZCHmaoMA" style="top: 146px; left: 39px;"><div class="IrVYRCUvYQ98h_9Xp7aN undefined"><div><div class="BDI1KtNF8HUPBZ4Cw_nK OclDwUPgB3PdqoXbDvcR jtdbIaZI8tp6TDLy9g9C"><div class="XDlY0TtgvNNpAZYGOLff"><div class="Cl1W1ol3KdIDHQeFJSoQ Kh7VvjJwRsgt_OgIhx3L"><div class="xnO0nvypgWdWjZpibUR_"><span>DuckDuckGo never tracks your searches.</span></div><a class="wZ4JdaHxSAhGy1HoNVja cPy9QU4brI7VQXFNPEvF eKLpdg0GHJZw2hhyErM0" href="https://duckduckgo.com/duckduckgo-help-pages/search-privacy/" target="_blank" rel="noreferrer"><span>Learn More</span></a></div></div></div><div class="DmUz0shbcgVaKTcYy035"></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK OclDwUPgB3PdqoXbDvcR ck6hdN1Jv1QmGaF7klae"><div class="XDlY0TtgvNNpAZYGOLff"><div class="Cl1W1ol3KdIDHQeFJSoQ AplJcDPP9mbM06R18q6o"><span>You can hide this reminder in <a class="Z7guJPWZYCCiVjc9OyXh" href="/settings#appearance">Search Settings</a></span></div></div></div></div></div></div></div></div><div class="c1GwqC__eRoEs0cLTIfL"> <div class="KE_4ibtn0WI3iUo6lJw9 nOpYdHAdSD_d47TfU1p8 MSEyj35eWAsmX9Y7_zYQ"><div tabindex="0" class="UWzy821Y58lvrLxQ7fnz P3PpyTb2TLJojWzVTZdE WiAwXRBfyDliy0tc5wSj"><span class="AcDYEbcXCwvTbbTAUvSP"><div class="GDhvI_gnvGtGgJQNMU64 jknWZ3qQe5vFIZ9yXj8W"><div class="aUwNG71q4M_3F2biXHuu"><div role="switch" aria-checked="true" class="twMgHM3B8cVRU4iN6brN wEurP_l9rVCcQWImfp8m YjvCRIuul_goVuf1ESim aZO4YZYIAXDN6NUwv7yO"><span class="a7IdTSXiroCWFya3eWu0"></span></div><a data-testid="region-filter-label" class="GDhvI_gnvGtGgJQNMU64 EQDxxehkKNFUnaQjdH1d">Australia</a></div></div></span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="sG3VWKPgDjJAlSrJSoLP" aria-hidden="true"><path fill="currentColor" d="M9.151 4.142a.5.5 0 0 1 .698.716L7.045 7.582a1.5 1.5 0 0 1-2.09 0L2.15 4.858a.5.5 0 0 1 .698-.716L5.65 6.864a.5.5 0 0 0 .698 0z"></path></svg></div><div data-testid="dropdown-options" class="fCp5GIWYTsUwPglO0ME2 AgWckucr2h5uZCHmaoMA" style="top: 146px; left: 163.5px;"><div class="S344rnw9ISpO7vPLUpsK"><div class="Tkxe1s6khNnhOtrE1eGA"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="ddgsi DabjI_8X4G2xVicuFf2J"><g><path fill="currentColor" fill-rule="evenodd" d="M7 0a7 7 0 1 0 4.488 12.372l3.445 3.445a.625.625 0 1 0 .884-.884l-3.445-3.445A7 7 0 0 0 7 0M1.25 7a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0" clip-rule="evenodd"></path></g></svg><input class="L4GOiGZOx5odAiup1nlt" placeholder="Search" type="text" value=""></div></div><div class="IrVYRCUvYQ98h_9Xp7aN undefined"><div class="CKzurDElYSSm6Q9WoWhS"><p class="wZ4JdaHxSAhGy1HoNVja cPy9QU4brI7VQXFNPEvF">Recent:</p><div class="z0NZlhz4vu_SBzEGoeJS"><a class="wZ4JdaHxSAhGy1HoNVja cPy9QU4brI7VQXFNPEvF eKLpdg0GHJZw2hhyErM0">Clear All</a></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK qa4u8R88Mwi5zOMJtiVg P3PpyTb2TLJojWzVTZdE jtdbIaZI8tp6TDLy9g9C"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -32px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Australia</span></div></div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="X5dusGBNrFkDzspAyxPA"><path fill="currentColor" fill-rule="evenodd" d="M10.767 2.138c.269.216.311.61.095.878L4.987 10.33a.625.625 0 0 1-.959.018L1.153 7.035a.625.625 0 1 1 .944-.82l2.384 2.748 5.407-6.73a.625.625 0 0 1 .879-.095" clip-rule="evenodd"></path></svg></div><div class="DmUz0shbcgVaKTcYy035"></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -896px;"></span><span class="fdosLIuRgrWo7SyeqSUb">All regions</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px 0px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Argentina</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -16px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Austria</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -48px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Belgium (fr)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -48px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Belgium (nl)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -80px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Brazil</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -64px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Bulgaria</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -96px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Canada (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -96px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Canada (fr)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -176px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Catalonia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -128px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Chile</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -144px;"></span><span class="fdosLIuRgrWo7SyeqSUb">China</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -160px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Colombia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -336px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Croatia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -192px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Czechia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -224px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Denmark</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -240px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Estonia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -272px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Finland</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -288px;"></span><span class="fdosLIuRgrWo7SyeqSUb">France</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -208px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Germany</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -304px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Greece</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -320px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Hong Kong</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -352px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Hungary</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -432px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Iceland</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -416px;"></span><span class="fdosLIuRgrWo7SyeqSUb">India (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -368px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Indonesia (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -384px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Ireland</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -400px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Israel (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -448px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Italy</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -464px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Japan</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -480px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Korea</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -512px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Latvia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -496px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Lithuania</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -544px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Malaysia (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -528px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Mexico</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -560px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Netherlands</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -592px;"></span><span class="fdosLIuRgrWo7SyeqSUb">New Zealand</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -576px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Norway</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -640px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Pakistan (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -608px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Peru</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -624px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Philippines (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -656px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Poland</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -672px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Portugal</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -688px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Romania</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -704px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Russia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -912px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Saudi Arabia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -736px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Singapore</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -752px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Slovakia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -768px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Slovenia</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -944px;"></span><span class="fdosLIuRgrWo7SyeqSUb">South Africa</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -256px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Spain (ca)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -256px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Spain (es)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -720px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Sweden</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -112px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Switzerland (de)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -112px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Switzerland (fr)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -816px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Taiwan</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -784px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Thailand (en)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -800px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Turkey</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -832px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Ukraine</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -848px;"></span><span class="fdosLIuRgrWo7SyeqSUb">United Kingdom</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -864px;"></span><span class="fdosLIuRgrWo7SyeqSUb">US (English)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -864px;"></span><span class="fdosLIuRgrWo7SyeqSUb">US (Spanish)</span></div></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK ck6hdN1Jv1QmGaF7klae"><div class="XDlY0TtgvNNpAZYGOLff"><div class="M0ujmOhCHtsN1oLaSQki"><span class="i1JGhSafbwxIa_zZmFgT" style="background-position: 0px -880px;"></span><span class="fdosLIuRgrWo7SyeqSUb">Vietnam (en)</span></div></div></div></div></div></div></div></div><div class="c1GwqC__eRoEs0cLTIfL"> <div class="KE_4ibtn0WI3iUo6lJw9 nOpYdHAdSD_d47TfU1p8"><div tabindex="0" class="UWzy821Y58lvrLxQ7fnz K3OGxmrYmlInVyLTbimt"><span class="AcDYEbcXCwvTbbTAUvSP">Safe search: moderate</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="sG3VWKPgDjJAlSrJSoLP" aria-hidden="true"><path fill="currentColor" d="M9.151 4.142a.5.5 0 0 1 .698.716L7.045 7.582a1.5 1.5 0 0 1-2.09 0L2.15 4.858a.5.5 0 0 1 .698-.716L5.65 6.864a.5.5 0 0 0 .698 0z"></path></svg></div><div data-testid="dropdown-options" class="fCp5GIWYTsUwPglO0ME2 AgWckucr2h5uZCHmaoMA" style="top: 146px; left: 296.9375px;"><div class="IrVYRCUvYQ98h_9Xp7aN undefined"><div><div class="BDI1KtNF8HUPBZ4Cw_nK jtdbIaZI8tp6TDLy9g9C"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Strict</span></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK qa4u8R88Mwi5zOMJtiVg"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Moderate</span></div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="X5dusGBNrFkDzspAyxPA"><path fill="currentColor" fill-rule="evenodd" d="M10.767 2.138c.269.216.311.61.095.878L4.987 10.33a.625.625 0 0 1-.959.018L1.153 7.035a.625.625 0 1 1 .944-.82l2.384 2.748 5.407-6.73a.625.625 0 0 1 .879-.095" clip-rule="evenodd"></path></svg></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK ck6hdN1Jv1QmGaF7klae"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Off</span></div></div></div></div></div></div></div><div class="c1GwqC__eRoEs0cLTIfL"> <div class="KE_4ibtn0WI3iUo6lJw9 nOpYdHAdSD_d47TfU1p8"><div tabindex="0" class="UWzy821Y58lvrLxQ7fnz"><span class="AcDYEbcXCwvTbbTAUvSP">Any time</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="sG3VWKPgDjJAlSrJSoLP" aria-hidden="true"><path fill="currentColor" d="M9.151 4.142a.5.5 0 0 1 .698.716L7.045 7.582a1.5 1.5 0 0 1-2.09 0L2.15 4.858a.5.5 0 0 1 .698-.716L5.65 6.864a.5.5 0 0 0 .698 0z"></path></svg></div><div data-testid="dropdown-options" class="fCp5GIWYTsUwPglO0ME2 AgWckucr2h5uZCHmaoMA" style="top: 146px; left: 474.328125px;"><div class="IrVYRCUvYQ98h_9Xp7aN undefined"><div><div class="BDI1KtNF8HUPBZ4Cw_nK qa4u8R88Mwi5zOMJtiVg jtdbIaZI8tp6TDLy9g9C"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Any time</span></div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 12 12" width="12" height="12" color="currentColor" class="X5dusGBNrFkDzspAyxPA"><path fill="currentColor" fill-rule="evenodd" d="M10.767 2.138c.269.216.311.61.095.878L4.987 10.33a.625.625 0 0 1-.959.018L1.153 7.035a.625.625 0 1 1 .944-.82l2.384 2.748 5.407-6.73a.625.625 0 0 1 .879-.095" clip-rule="evenodd"></path></svg></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Past day</span></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Past week</span></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Past month</span></div></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK"><div class="XDlY0TtgvNNpAZYGOLff"><span class="gj1DLKT2IqzlxHKsuX6c">Past year</span></div></div><div class="DmUz0shbcgVaKTcYy035"></div></div><div><div class="BDI1KtNF8HUPBZ4Cw_nK OclDwUPgB3PdqoXbDvcR ck6hdN1Jv1QmGaF7klae"><div class="XDlY0TtgvNNpAZYGOLff"><div><a class="wZ4JdaHxSAhGy1HoNVja cPy9QU4brI7VQXFNPEvF eKLpdg0GHJZw2hhyErM0">Custom date range</a></div></div></div></div></div></div></div></div></nav></div><div class="FMPme3X940xAt4SKPFuw"><section class="At_VJ9MlrHsSjbfCtz2_ aDtqDaYogch0DyrGTrX6" data-testid="mainline" data-area="mainline"><ol class="react-results--main"><li class="L6fj2A3X2mfJl5kE8caF"><div class="m94aMCA3hTXDNQYZ_qAz" style="height: auto;"><div class="react-module" data-hide-untill-css-vars-polyfilled="true" data-react-module-id="wikinlp"><div class="kKiMGBI82U6yU_AJL8bL l9zzCS1YxeRxFHNsi9IQ"><div class="Yf9bk3ILYs4b7K_9B8tY Rb4E5rkUBlkwgIcwjYDJ bWGaCk6qIWA9B9RWdHQU"><div class="nKc6YUBojXXvgstPGALT"></div><div class="d1KvUBkGOywTiqUIZcou"><div class="g8mClvN4LqWxcREUbed7"><button class="pxX3f3ReeZnfMp13QBvc" aria-hidden="true" tabindex="-1" aria-label="Assist Settings"><span class="jN5GdFSL1nj0PRRAOw7x FYzW6BKWnkpE8Qa3qBmL wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2"><span class="zHmKXya03lRu_br7aWAj"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor"><path fill="currentColor" fill-rule="evenodd" d="M3.375 6a.625.625 0 1 0 0-1.25H.625a.625.625 0 1 0 0 1.25zM8.5 9.375c0 .345-.28.625-.625.625H.625a.625.625 0 1 1 0-1.25h7.25c.345 0 .625.28.625.625M10.375 14a.625.625 0 1 0 0-1.25H.625a.625.625 0 1 0 0 1.25z" clip-rule="evenodd"></path><path fill="currentColor" d="M10.154.382c.123-.49.819-.49.941 0l.297 1.186a4.18 4.18 0 0 0 3.04 3.04l1.186.296c.49.123.49.819 0 .941l-1.186.297a4.18 4.18 0 0 0-3.04 3.04l-.296 1.186c-.123.49-.82.49-.942 0l-.296-1.186a4.18 4.18 0 0 0-3.04-3.04l-1.186-.297c-.49-.122-.49-.818 0-.94l1.186-.297a4.18 4.18 0 0 0 3.04-3.04z"></path></svg></span> Search Assist</span></button><div class="pHzjxo6WrTRP8tGajQ3q"></div></div><div class="fPd5p7_C_O7yt1fWyHLl" aria-label="Loading..."><div aria-hidden="true"></div><div aria-hidden="true"></div><div aria-hidden="true"></div><span class="o7dp_bNKVOg39F8jzZHz">Generating answer...</span></div></div></div></div></div></div></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-0" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-biriukov.dev/docs/async-rust-tokio-io/1-async-rust-with-tokio-io-streams-backpressure-concurrency-and-ergonomics/"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-biriukov.dev/docs/async-rust-tokio-io/1-async-rust-with-tokio-io-streams-backpressure-concurrency-and-ergonomics/" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">biriukov.dev</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Abiriukov.dev" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Abiriukov.dev" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:biriukov.dev" rel="noopener" title="Search domain biriukov.dev" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/biriukov.dev.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">biriukov.dev</p><a href="https://biriukov.dev/docs/async-rust-tokio-io/1-async-rust-with-tokio-io-streams-backpressure-concurrency-and-ergonomics/" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://biriukov.dev</span><span>&nbsp;&nbsp;docs async-rust-tokio-io 1-async-rust-with-tokio-io-streams-backpressure-concurrency-and-ergonomics</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://biriukov.dev/docs/async-rust-tokio-io/1-async-rust-with-tokio-io-streams-backpressure-concurrency-and-ergonomics/" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Async Rust with Tokio I/O Streams: Backpressure, Concurrency, and ...</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span>I/O loop <b>Backpressure</b> propagation Concurrency 3. <b>Tokio</b> I/O Patterns TCP split stream Split generic AsyncRead+AsyncWrite stream Bidirectional driver for I/O without split Framed I/O Bidirectional driver for framed I/O There are many excellent, straightforward guides for getting started with <b>Async</b> <b>Rust</b> and <b>Tokio</b>.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-1" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-github.com/mrathod05/tokio_async_methods"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-github.com/mrathod05/tokio_async_methods" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">github.com</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Agithub.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Agithub.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:github.com" rel="noopener" title="Search domain github.com" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/github.com.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">Github</p><a href="https://github.com/mrathod05/tokio_async_methods" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://github.com</span><span>&nbsp;&nbsp;mrathod05 tokio_async_methods</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://github.com/mrathod05/tokio_async_methods" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">mrathod05/tokio_async_methods - GitHub</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span class="MILR5XIVy9h75WrLvKiq">1 Aug 2025</span><span>A comprehensive demonstration of <b>Tokio's</b> core <b>async</b> methods with real-world examples, detailed explanations, and <b>best</b> <b>practices</b> for <b>Rust</b> <b>async</b> programming.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-2" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-www.w3resource.com/rust-tutorial/mastering-tokio-async-rust.php"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-www.w3resource.com/rust-tutorial/mastering-tokio-async-rust.php" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">w3resource.com</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Awww.w3resource.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Awww.w3resource.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:www.w3resource.com" rel="noopener" title="Search domain w3resource.com" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/www.w3resource.com.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">w3resource</p><a href="https://www.w3resource.com/rust-tutorial/mastering-tokio-async-rust.php" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://www.w3resource.com</span><span>&nbsp;&nbsp;rust-tutorial mastering-tokio-async-rust.php</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://www.w3resource.com/rust-tutorial/mastering-tokio-async-rust.php" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Tokio in Rust: Async Programming Guide - w3resource</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span class="MILR5XIVy9h75WrLvKiq">23 Nov 2024</span><span>Learn <b>Rust</b> <b>Tokio</b> with <b>async</b>/await, TCP server examples, channels, and <b>best</b> <b>practices</b>. Explore how to build scalable, non-blocking applications in <b>Rust</b>.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-3" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-codezup.com/rust-tokio-async-guide/"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-codezup.com/rust-tokio-async-guide/" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">codezup.com</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Acodezup.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Acodezup.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:codezup.com" rel="noopener" title="Search domain codezup.com" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/codezup.com.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">Codez Up</p><a href="https://codezup.com/rust-tokio-async-guide/" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://codezup.com</span><span>&nbsp;&nbsp;rust-tokio-async-guide</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://codezup.com/rust-tokio-async-guide/" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Master Async Rust Programming with Tokio: Step-by-Step</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span>Learn <b>async</b> programming in <b>Rust</b> using <b>Tokio</b> with this comprehensive tutorial. Build concurrent applications faster using <b>async</b>/await, futures, and <b>Tokio</b> runtime. Start mastering today!</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-4" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-tokio.rs/tokio/tutorial/async"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-tokio.rs/tokio/tutorial/async" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">tokio.rs</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Atokio.rs" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Atokio.rs" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:tokio.rs" rel="noopener" title="Search domain tokio.rs" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/tokio.rs.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">Tokio</p><a href="https://tokio.rs/tokio/tutorial/async" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://tokio.rs</span><span>&nbsp;&nbsp;tokio tutorial async</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://tokio.rs/tokio/tutorial/async" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Async in depth | Tokio - An asynchronous Rust runtime</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span><b>Tokio</b> is a runtime for writing reliable asynchronous applications with <b>Rust</b>. It provides <b>async</b> I/O, networking, scheduling, timers, and more.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-5" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-blog.poespas.me/posts/2024/08/08/rust-async-streaming-with-tokio/"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-blog.poespas.me/posts/2024/08/08/rust-async-streaming-with-tokio/" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">blog.poespas.me</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Ablog.poespas.me" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Ablog.poespas.me" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:blog.poespas.me" rel="noopener" title="Search domain blog.poespas.me" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/blog.poespas.me.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">blog.poespas.me</p><a href="https://blog.poespas.me/posts/2024/08/08/rust-async-streaming-with-tokio/" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://blog.poespas.me</span><span>&nbsp;&nbsp;posts 2024 08 08 rust-async-streaming-with-tokio</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://blog.poespas.me/posts/2024/08/08/rust-async-streaming-with-tokio/" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Asynchronous Streaming in Rust with Tokio: A Deep Dive into Efficient ...</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span class="MILR5XIVy9h75WrLvKiq">8 Aug 2024</span><span>Conclusion Asynchronous <b>streaming</b> is a powerful technique in <b>Rust</b> programming that enables efficient concurrency and scalability. By leveraging <b>Tokio's</b> <b>async</b> <b>streaming</b> API, you can build high-performance systems that efficiently handle large datasets or real-time data sources. This article has provided a basic example of asynchronous <b>streaming</b> with <b>Tokio</b>, and you can further explore the ...</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-6" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-users.rust-lang.org/t/async-rust-with-tokio-i-o-streams-backpressure-concurrency-and-ergonomics/134465"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-users.rust-lang.org/t/async-rust-with-tokio-i-o-streams-backpressure-concurrency-and-ergonomics/134465" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">users.rust-lang.org</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Ausers.rust-lang.org" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Ausers.rust-lang.org" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:users.rust-lang.org" rel="noopener" title="Search domain users.rust-lang.org" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/users.rust-lang.org.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">The Rust Programming Language Forum</p><a href="https://users.rust-lang.org/t/async-rust-with-tokio-i-o-streams-backpressure-concurrency-and-ergonomics/134465" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://users.rust-lang.org</span><span>&nbsp;&nbsp;t async-rust-with-tokio-i-o-streams-backpressure-concurrency-and-ergonomics 134465</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://users.rust-lang.org/t/async-rust-with-tokio-i-o-streams-backpressure-concurrency-and-ergonomics/134465" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Async Rust with Tokio I/O Streams: Backpressure, Concurrency, and ...</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span class="MILR5XIVy9h75WrLvKiq">6 Oct 2025</span><span>I just published a blog post about <b>async</b> I/O in <b>Tokio</b> — covering how <b>backpressure</b>, concurrency, and I/O loops interact under the hood. If you've ever wondered why select! might block reads, or how to design ergonomic <b>async</b> streams in <b>Rust</b>, this might resonate. Would love to hear feedback, alternative patterns, or war stories from folks building <b>async</b> systems.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-7" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-www.djamware.com/post/685d50e742837501e5116195/async-programming-in-rust-using-tokio-a-practical-guide"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-www.djamware.com/post/685d50e742837501e5116195/async-programming-in-rust-using-tokio-a-practical-guide" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">djamware.com</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Awww.djamware.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Awww.djamware.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:www.djamware.com" rel="noopener" title="Search domain djamware.com" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/www.djamware.com.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">Djamware</p><a href="https://www.djamware.com/post/685d50e742837501e5116195/async-programming-in-rust-using-tokio-a-practical-guide" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://www.djamware.com</span><span>&nbsp;&nbsp;post 685d50e742837501e5116195 async-programming-in-rust-using-tokio-a-practical-guide</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://www.djamware.com/post/685d50e742837501e5116195/async-programming-in-rust-using-tokio-a-practical-guide" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Async Programming in Rust Using Tokio: A Practical Guide</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span>Build efficient, concurrent apps in <b>Rust</b> using <b>Tokio</b>. Learn <b>async</b> tasks, timers, channels, TCP/HTTP servers, and real-world messaging.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-8" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-www.javacodegeeks.com/2024/12/async-rust-how-to-master-concurrency-with-tokio-and-async-await.html"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-www.javacodegeeks.com/2024/12/async-rust-how-to-master-concurrency-with-tokio-and-async-await.html" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">javacodegeeks.com</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Awww.javacodegeeks.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Awww.javacodegeeks.com" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:www.javacodegeeks.com" rel="noopener" title="Search domain javacodegeeks.com" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/www.javacodegeeks.com.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">Java Code Geeks</p><a href="https://www.javacodegeeks.com/2024/12/async-rust-how-to-master-concurrency-with-tokio-and-async-await.html" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://www.javacodegeeks.com</span><span>&nbsp;&nbsp;2024 12 async-rust-how-to-master-concurrency-with-tokio-and-async-await.html</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://www.javacodegeeks.com/2024/12/async-rust-how-to-master-concurrency-with-tokio-and-async-await.html" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Async Rust: How to Master Concurrency with tokio and async/await</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span class="MILR5XIVy9h75WrLvKiq">26 Dec 2024</span><span>To master concurrency with <b>Tokio</b> and <b>async</b>/await, consider the following <b>best</b> <b>practices</b>: Understand the <b>Async</b> Ecosystem: Familiarize yourself with <b>Rust's</b> asynchronous ecosystem, including crates like futures and <b>async</b>-std, to choose the right tools for your application.</span></span></div></div></div></article></li><li data-layout="organic" class="wLL07_0Xnd1QZpzpfR4W"><article id="r1-9" data-handled-by-react="true" data-testid="result" data-nrn="result" class="yQDlj3B5DI5YO8c8Ulio CpkrTDP54mqzpuCSn1Fa SKlplDuh9FjtDprgoMxk Fr1jPX9uTqiYNJFs2Cfb"><div class="OHr0VX9IuNcv6iakvT6A"><button type="button" class="cxQwADb9kt3UnKwcXKat uuIDnYC4qmyFk5dsXOhr YZxymVMEkIDA0nZSt_Pm ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ hF7w5TROgutbYQwHzEf_ kYheVVecSlvJdWHcWzJs" aria-haspopup="menu" aria-expanded="false" aria-controls="contextMenu-thenewstack.io/async-programming-in-rust-understanding-futures-and-tokio/"><svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="M3.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM14 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></g></svg></button><div role="menu" id="contextMenu-thenewstack.io/async-programming-in-rust-understanding-futures-and-tokio/" class="BdZVYXbdg6Rx9Lrm5wzC" aria-hidden="true"><div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="QmBU788gp3Cjs7Fwyz1G"><path fill="currentColor" d="M13.817 3.067a.625.625 0 1 0-.884-.884L8 7.116 3.067 2.183a.625.625 0 1 0-.884.884L7.116 8l-4.933 4.933a.625.625 0 1 0 .884.884L8 8.884l4.933 4.933a.625.625 0 1 0 .884-.884L8.884 8z"></path></svg><p class="ePXqZzRA466zTvNP6hpa wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2">thenewstack.io</p><div class="oDTE1nbHCw1Kax_TrCHw"><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20site%3Athenewstack.io" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M10.5 7a3.5 3.5 0 0 1 2.877 5.493l2.462 2.463a.625.625 0 0 1-.883.883l-2.463-2.462A3.5 3.5 0 1 1 10.5 7M12 1a4 4 0 0 1 4 4v2.006c0 .653-.876.868-1.179.29l-.071-.136V5.25H1.25V11A2.75 2.75 0 0 0 4 13.75h2.14l.182.178A.625.625 0 0 1 5.885 15H4a4 4 0 0 1-4-4V5a4 4 0 0 1 4-4zm-1.5 7.25a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5m-6.5-6A2.75 2.75 0 0 0 1.438 4h13.124A2.75 2.75 0 0 0 12 2.25z"></path></svg><span>Only include results for this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024%20-site%3Athenewstack.io" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><path fill="currentColor" d="M12.5 9a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7M8.001 2.125c4.607 0 7.212 3.558 7.849 5.696l.06.203-.075.199c-.127.332-.548.415-.85.23a5 5 0 0 0-.498-.267q.052-.107.096-.207c-.63-1.799-2.833-4.604-6.582-4.604-3.725 0-5.93 2.834-6.575 4.588.854 1.759 2.785 4.532 6.326 4.656l.002.055c.022.605-.418 1.196-1.016 1.102C2.93 13.177.956 9.948.183 8.26L.08 8.043l.072-.228C.787 5.76 3.387 2.125 8 2.125m2.374 9.75a.5.5 0 0 0-.5.5v.25a.5.5 0 0 0 .5.5h4.25a.5.5 0 0 0 .5-.5v-.25a.5.5 0 0 0-.5-.5zM8.001 5A3 3 0 0 1 11 7.992 4.76 4.76 0 0 0 7.993 11a2.999 2.999 0 0 1 .008-6"></path></svg><span>Redo search without this site</span></a><a class="bcz7ZQmpP9fW9gyprTn7" href="#" role="menuitem"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M3.708 13.21a6.75 6.75 0 0 0 9.502-9.502zM8 1.25a6.75 6.75 0 0 0-5.18 11.079l9.51-9.509A6.72 6.72 0 0 0 8 1.25"></path></g></svg><span>Block this site from all results</span></a><div class="P0qXZSsYM5mY7vngloXE"></div><div class="bcz7ZQmpP9fW9gyprTn7" role="menuitem" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="16" height="16" color="currentColor" class="sOgzQOS4liCVE5xXVnJT"><g><path fill="currentColor" fill-rule="evenodd" d="M0 5a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4.25a4 4 0 0 1-4 4H9.455c-.347 0-.702.152-.996.426-1.146 1.067-2.39 1.767-3.374 2.206a1.285 1.285 0 0 1-1.535-.34 1.48 1.48 0 0 1-.223-1.518c.11-.269.203-.535.268-.781C1.565 13.121 0 11.433 0 9.386zm4-2.75A2.75 2.75 0 0 0 1.25 5v4.386C1.25 10.838 2.395 12 3.83 12c.288 0 .565.114.765.307a.97.97 0 0 1 .293.878c-.079.44-.236.899-.404 1.312-.045.11-.014.197.02.237q.011.013.018.017l.006.002h.006a.1.1 0 0 0 .041-.012c.896-.4 2.014-1.032 3.032-1.98.484-.45 1.132-.761 1.848-.761H12a2.75 2.75 0 0 0 2.75-2.75V5A2.75 2.75 0 0 0 12 2.25z" clip-rule="evenodd"></path></g></svg><span>Share feedback about this site</span></div></div></div></div></div><div class="OQ_6vPwNhCeusNiEDcGp"><div class="mwuQiMOjmFJ5vmN6Vcqw CmOawDMavJGKvqBIPeeC SgSTKoqQXa0tEszD2zWF VkOimy54PtIClAT3GMbr LQVY1Jpkk8nyJ6HBWKAk"><span class="DpVR46dTZaePK29PDkz8"><a href="/?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024+site:thenewstack.io" rel="noopener" title="Search domain thenewstack.io" data-testid="result-extras-site-search-link" data-handled-by-react="true"><div class="c_ZIRTZwvW2k4q8TtKU0"><img src="//external-content.duckduckgo.com/ip3/thenewstack.io.ico" height="16" width="16" loading="lazy"></div></a></span><div class="pAgARfGNTRe_uaK72TAD"><p class="fOCEb2mA3YZTJXXjpgdS wZ4JdaHxSAhGy1HoNVja yGEuosa_aZeFroGMfpgu">The New Stack</p><a href="https://thenewstack.io/async-programming-in-rust-understanding-futures-and-tokio/" rel="noopener" target="_self" data-testid="result-extras-url-link" class="Rn_JXVtoPVAFyGkcaXyK VkOimy54PtIClAT3GMbr" data-handled-by-react="true"><div class="xS2NxE06pIznLuh2xjH0"><p class="veU5I0hFkgFGOPhX2RBE wZ4JdaHxSAhGy1HoNVja AlPVsxUsFt3bnuOvg6hI"><span>https://thenewstack.io</span><span>&nbsp;&nbsp;async-programming-in-rust-understanding-futures-and-tokio</span></p></div></a></div></div></div><div class="ikg2IXiCD14iVX7AdZo1"><h2 class="LnpumSThxEWMIsDdAT17 CXMyPcQ6nDv47DKFeywM"><a href="https://thenewstack.io/async-programming-in-rust-understanding-futures-and-tokio/" rel="noopener" target="_self" class="eVNpHGjtxRBq_gLOfGDr LQNqh2U1kzYxREs65IJu" data-testid="result-title-a" data-handled-by-react="true"><span class="EKtkFWMYpwzMKOYr0GYm LQVY1Jpkk8nyJ6HBWKAk">Async Programming in Rust: Understanding Futures and Tokio</span></a></h2></div><div class="E2eLOJr8HctVnDOTM8fs"><div class="OgdwYG6KE2qthn9XQWFC" data-result="snippet"><div><span class="kY2IgmnCmOGjharHErah" style="-webkit-line-clamp: 3;"><span class="MILR5XIVy9h75WrLvKiq">17 Dec 2025</span><span><b>Rust</b> achieves this using Futures and the <b>async</b>/await syntax, enabling tasks to yield control when waiting for external resources and resume efficiently once ready. Combined with powerful runtime libraries like <b>Tokio</b>, <b>Rust</b> can handle thousands of simultaneous operations without the overhead of traditional threads.</span></span></div></div></div></article></li><li data-layout="related_searches" class="L6fj2A3X2mfJl5kE8caF"><div><div class="related-searches t-m at-bottom"><p class="related-searches__title-long">Related Searches</p><p class="related-searches__title-short">Related Searches</p><div class="related-searches__lists"><ol class="related-searches__list related-searches__list--first"><li class="related-searches__item"><a class="result__a related-searches__link js-related-searches-link" href="?q=tokio%20in%20rust%20async"><span class="related-searches__item-text"><span>tokio <b>in</b> rust async</span></span></a></li></ol><ol class="related-searches__list"><li class="related-searches__item"><a class="result__a related-searches__link js-related-searches-link" href="?q=tokio%20async%20codes"><span class="related-searches__item-text"><span>tokio async <b>codes</b></span></span></a></li></ol></div></div></div></li></ol><div style="height: 1px; width: 1px; margin-top: -1px; opacity: 0;"></div><div class="rdxznaZygY2CryNa5yzk"><button type="button" class="wE5p3MOcL8UVdJhgH3V1 ffON2NH02oMAcqyoh2UU hUUdRtuaOUx7mcSwc56s q7VhSk71XgyB1xYfeChb VVwKmb7llplcxyVXzHz9" id="more-results">More results</button></div></section><section class="gdzyb9PgLazLyi4DKK0O js-react-sidebar YL_aMfikzFszfcc4KLSh" data-testid="sidebar" data-area="sidebar"></section></div></div></div></div></div></div><div id="bottom_spacing2"> </div><div class="nav-menu--slideout js-menu--slideout"><ul class="nav-menu__list"><button class="nav-menu__close js-side-menu-close"><span>Close menu</span><svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M13.28 3.78a.75.75 0 0 0-1.06-1.06L8 6.94 3.78 2.72a.75.75 0 0 0-1.06 1.06L6.94 8l-4.22 4.22a.75.75 0 1 0 1.06 1.06L8 9.06l4.22 4.22a.75.75 0 1 0 1.06-1.06L9.06 8z"></path></svg></button><div class="nav-menu__promo js-side-menu-promo"><div><div class="F7HoWPiBkn1IGCsoVCbh"><div class="DnEtJnBw87FchOUi50QZ"><p class="LaPuc_vx4ewQ2sv77Be3 wZ4JdaHxSAhGy1HoNVja tBgBi0cErjBFar8PpVzN">Upgrade to our Private Browser</p><p class="wZ4JdaHxSAhGy1HoNVja cPy9QU4brI7VQXFNPEvF">Fast. Secure. Free.</p></div><a class="ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ dkPsZgoVlwHrgASCd797 VVwKmb7llplcxyVXzHz9" href="/mac"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path clip-rule="evenodd" d="M8 .5a.75.75 0 0 1 .75.75v8.264l2.986-2.81a.75.75 0 1 1 1.028 1.092l-4.25 4a.75.75 0 0 1-1.028 0l-4.25-4a.75.75 0 1 1 1.028-1.092l2.986 2.81V1.25A.75.75 0 0 1 8 .5Zm-5.25 13a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5H2.75Z"></path></svg>Install Mac Browser</a></div></div></div><ul class="nav-menu--theme"><li class="nav-menu__heading"><span>Search</span></li><li class="nav-menu__item"><a href="https://start.duckduckgo.com/">Homepage</a></li><li class="nav-menu__item clear"><a href="/settings#appearance" data-settings="1">Themes</a></li><li class="nav-menu__item"><a href="/settings" data-settings="1">Settings</a></li></ul><ul class="nav-menu--feedback"><li class="nav-menu__heading"><span>Share Feedback</span></li><li id="side-menu-feedback-prompt-wrapper" class="nav-menu__feedback"><div class="react-feedback-prompt-mvc-wrapper react-feedback-prompt-mvc-wrapper--generic"><span data-testid="feedback-prompt"><span class="jEtSIrH8lHNhHno1Glvn"><button type="button" class="dyHlyxOqLifDe070KyaT avn_A2TOU6KXzrsF2rEt li40e9JVHlKe18y0LGl1 qMADia80_s5XhaARirM4 uuIDnYC4qmyFk5dsXOhr FvyODV1d6aXw8C5t5HA_ ffON2NH02oMAcqyoh2UU eEHLqtMiqMsCAZCkwFaE CPXAhl7VTkj2dHDyAYAf kYheVVecSlvJdWHcWzJs" aria-controls=":r0:" aria-expanded="false" aria-label="Positive feedback"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#thumbs-up_svg__a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.708 10.125h.386c.226 0 .374-.08.497-.222.142-.161.262-.42.352-.777.179-.716.182-1.605.182-2.282 0-.314.195-.517.342-.617.147-.1.315-.153.461-.182.299-.06.661-.052 1.01.028a2.2 2.2 0 0 1 1.039.537c.317.307.523.733.523 1.265 0 .241-.03.46-.086.658a2.835 2.835 0 0 0-.098.456c.041.006.1.01.184.01L16.3 9a1.497 1.497 0 0 1 1.34 2.166l-.058.116c.56.617.518 1.62-.177 2.177l-.011.009.01.02a1.5 1.5 0 0 1-.436 1.868l-.036.027.027.1a1.26 1.26 0 0 1-.167 1.03 1.678 1.678 0 0 1-1.62.733l-5.484-.737a1.31 1.31 0 0 1-1.181.741H7.313A1.313 1.313 0 0 1 6 15.937v-4.874c0-.725.588-1.313 1.313-1.313h.477c.355 0 .68.142.918.375Zm2.326-.726c.189-.753.213-1.624.216-2.265.119-.01.274-.002.437.035.213.05.391.138.508.25.105.102.18.238.18.456 0 .146-.018.26-.044.353-.059.207-.11.417-.131.612-.021.19-.021.422.072.646.224.54.78.639 1.228.639h2.8a.372.372 0 0 1 .333.538l-.261.523c-.13.26-.04.578.208.73l.084.052c.221.136.24.45.038.613l-.366.292a.563.563 0 0 0-.152.691l.214.428a.375.375 0 0 1-.109.467l-.34.256a.562.562 0 0 0-.203.597l.128.467a.135.135 0 0 1-.018.11.553.553 0 0 1-.534.242l-5.57-.748-.608-4.134c.546-.013.98-.245 1.295-.606.307-.352.485-.805.595-1.244Zm-3.909 1.664c0-.104.084-.188.188-.188h.477c.093 0 .172.068.185.16l.717 4.875a.188.188 0 0 1-.185.215H7.313a.188.188 0 0 1-.188-.188v-4.874Z" fill="currentColor"></path></g></svg></button><button type="button" class="dyHlyxOqLifDe070KyaT avn_A2TOU6KXzrsF2rEt li40e9JVHlKe18y0LGl1 qMADia80_s5XhaARirM4 uuIDnYC4qmyFk5dsXOhr FvyODV1d6aXw8C5t5HA_ ffON2NH02oMAcqyoh2UU eEHLqtMiqMsCAZCkwFaE CPXAhl7VTkj2dHDyAYAf kYheVVecSlvJdWHcWzJs" aria-controls=":r0:" aria-expanded="false" aria-label="Negative feedback"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#thumbs-down_svg__a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.708 13.875h.386c.226 0 .374.08.497.222.142.161.262.42.352.777.179.716.182 1.605.182 2.282 0 .314.195.517.342.617.147.1.315.153.461.182.299.06.661.052 1.01-.028a2.2 2.2 0 0 0 1.039-.537c.317-.307.523-.733.523-1.265 0-.241-.03-.46-.086-.658a2.837 2.837 0 0 1-.098-.456c.041-.006.1-.011.184-.011h2.8a1.497 1.497 0 0 0 1.34-2.166l-.058-.116a1.501 1.501 0 0 0-.177-2.177l-.011-.009.01-.02a1.5 1.5 0 0 0-.436-1.868l-.036-.027.027-.1a1.26 1.26 0 0 0-.167-1.03 1.678 1.678 0 0 0-1.62-.733l-5.484.737a1.312 1.312 0 0 0-1.181-.741H7.313C6.588 6.75 6 7.338 6 8.063v4.874c0 .725.588 1.313 1.313 1.313h.477c.355 0 .68-.142.918-.375Zm2.326.726c.189.753.213 1.624.216 2.265.119.01.274.002.437-.035.213-.05.391-.138.508-.25a.59.59 0 0 0 .18-.456c0-.146-.018-.26-.044-.353a3.907 3.907 0 0 1-.131-.612 1.304 1.304 0 0 1 .072-.646c.224-.54.78-.639 1.228-.639h2.8a.372.372 0 0 0 .333-.538l-.261-.523a.563.563 0 0 1 .208-.73l.084-.052a.375.375 0 0 0 .038-.613l-.366-.292a.563.563 0 0 1-.152-.691l.214-.428a.375.375 0 0 0-.109-.467l-.34-.256a.562.562 0 0 1-.203-.597l.128-.467a.135.135 0 0 0-.018-.11.553.553 0 0 0-.534-.242l-5.57.748-.608 4.134c.546.013.98.245 1.295.606.307.351.485.805.595 1.244Zm-3.909-1.664c0 .104.084.188.188.188h.477a.188.188 0 0 0 .185-.16l.717-4.875a.187.187 0 0 0-.185-.215H7.313a.188.188 0 0 0-.188.188v4.874Z" fill="currentColor"></path></g></svg></button></span></span></div></li></ul><ul><li class="nav-menu__heading"><span>Downloads</span></li><li class="nav-menu__item"><a href="https://apps.apple.com/app/duckduckgo-private-browser/id663592361?platform=iphone&amp;pt=866401&amp;mt=8&amp;ct=serp-atb-serp">iOS Browser</a></li><li class="nav-menu__item"><a href="https://play.google.com/store/apps/details?id=com.duckduckgo.mobile.android&amp;referrer=utm_campaign%3Dserp-atb-serp%26origin%3Dfunnel_playstore_searchresults">Android Browser</a></li><li class="nav-menu__item"><a href="/mac?origin=funnel_browser_searchresults">Mac Browser</a></li><li class="nav-menu__item"><a href="/windows?origin=funnel_browser_searchresults">Windows Browser</a></li><li class="nav-menu__item"><a href="/duckduckgo-help-pages/desktop/adding-duckduckgo-to-your-browser/">Browser Extensions</a></li></ul><ul><li class="nav-menu__heading"><span>More From DuckDuckGo</span></li><li class="nav-menu__item has-badge"><a href="https://duck.ai">Duck.ai</a></li><li class="nav-menu__item"><a href="/email">Email Protection</a></li><li class="nav-menu__item"><a href="/newsletter">Newsletter</a></li><li class="nav-menu__item"><a href="/blog">Blog</a></li><li class="nav-menu__item"><a href="https://insideduckduckgo.substack.com/?showWelcome=true">Podcast<div class="nav-menu__item-badge"><div><div class="gADc1vgzmPc4cvxu7yBr nav-menu__item--badge">NEW</div></div></div></a></li></ul><ul><li class="nav-menu__heading"><span>Learn More</span></li><li class="nav-menu__item"><a href="/updates">Whats New</a></li><li class="nav-menu__item"><a href="/compare-privacy">Compare Privacy</a></li><li class="nav-menu__item"><a href="/app">About Our Browser</a></li><li class="nav-menu__item"><a href="/about">About DuckDuckGo</a></li></ul><ul><li class="nav-menu__heading"><span>Other Resources</span></li><li class="nav-menu__item"><a href="/duckduckgo-help-pages">Help</a></li><li class="nav-menu__item"><a href="https://www.reddit.com/r/duckduckgo/" rel="noreferrer noopener">Community</a></li><li class="nav-menu__item"><a href="/careers">Careers</a></li><li class="nav-menu__item"><a href="/privacy">Privacy Policy</a></li><li class="nav-menu__item"><a href="/terms">Terms of Service</a></li><li class="nav-menu__item"><a href="/press">Press Kit</a></li><li class="nav-menu__item"><a href="/duckduckgo-help-pages/company/advertise-on-duckduckgo-search">Advertise on Search</a></li></ul></ul></div></div><div class="footer" style="display: block;"><div><div class="WVvM2VZmaSCvFUapMaYQ h3EKGeHmRRkjbMqYfNUi wuwdN2SgDOTwsnBO5PI7 rXBzGoYc_uM83jRoODrM xWVFEW_kM7bYLASLNfsZ"><div class="FMPme3X940xAt4SKPFuw"><section class="aDtqDaYogch0DyrGTrX6"><div class="O9Ipab51rBntYb0pwOQn V_kJtMs7Zyzm6ruq8Z3u"><svg viewBox="0 0 65 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.417 16H48.25c1.335 0 2.417 1.194 2.417 2.667v12A3.333 3.333 0 0 1 47.333 34h-6a8 8 0 0 0-8 8v3.333H12V18.667C12 17.194 13.082 16 14.417 16Z" fill="#3969EF"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M33.333 43.333h-18v-24h32V34h-6a8 8 0 0 0-8 8v1.333Z" fill="#CCDAFF"></path><g clip-path="url(#browser-mac_svg__a)"><path d="M33.811 27.31a.007.007 0 0 1 .007-.01c.243.036.498.118.786.267.164.085.317.199.462.341.137.134.287.43.138.548-.118.094-.247.21-.4.375-.153.163-.27.362-.388.62-.117.257-.164.55-.164.888 0 .398.07.725.211 1.006.141.28.306.491.494.667.188.175.353.292.494.362.153.077.207.221.147.382l-.089.238a4.641 4.641 0 0 1-.552 1.018c-.223.327-.47.62-.729.9a1.22 1.22 0 0 1-.928.41c-.247 0-.447-.035-.6-.106-.152-.07-.317-.14-.482-.21-.164-.07-.387-.105-.67-.105-.282 0-.493.035-.681.105-.188.07-.353.14-.517.222-.165.082-.353.105-.576.105a1.15 1.15 0 0 1-.882-.397 9.943 9.943 0 0 1-.775-.948 6.38 6.38 0 0 1-.788-1.602A6.036 6.036 0 0 1 27 30.468c0-.69.13-1.263.388-1.743.258-.48.6-.819 1.01-1.064a2.448 2.448 0 0 1 1.282-.363c.235 0 .458.035.658.117s.4.152.588.234c.188.082.34.117.493.117.153 0 .306-.047.494-.128.188-.082.4-.164.635-.246.235-.082.481-.117.752-.117.104 0 .264.011.504.045.005 0 .01-.005.007-.01Zm-1.575-.403a1.68 1.68 0 0 1-.782.216c-.023 0-.046 0-.07-.002-.042-.002-.069-.04-.082-.08-.012-.035 0-.07 0-.117 0-.269.058-.538.176-.795a2.64 2.64 0 0 1 .411-.644 2.23 2.23 0 0 1 .73-.573c.215-.111.424-.185.623-.221.12-.022.234.064.234.186 0 .27-.047.538-.153.796a2.688 2.688 0 0 1-.411.69 2.186 2.186 0 0 1-.663.534.057.057 0 0 0-.013.01Z" fill="#3969EF"></path></g><path fill-rule="evenodd" clip-rule="evenodd" d="M33.333 42H8.667v3.333h24.666V42Z" fill="#7295F6"></path><path d="M33.333 45.333H8.667l1.687 1.886c.447.5 1.054.781 1.687.781h18.626a2.667 2.667 0 0 0 2.666-2.667Z" fill="#3969EF"></path><path d="M36 42a5.333 5.333 0 0 1 5.333-5.333H52A5.333 5.333 0 0 1 57.333 42v10.667A5.333 5.333 0 0 1 52 58H41.333A5.333 5.333 0 0 1 36 52.667V42Z" fill="#DE5833"></path><path d="M49.21 46.976c-.066.042-.275.018-.55-.014-2.44-.429-2.677.964-1.502 3.083-1.064.317.191 3.387 1.215 5.692-1.12.397-3.181.311-4.134-.04l-.005-.016c-.21-.077-.47-.077-.59-.242-.329-2.255-4.904-13.018.686-13.723.035-.01-.722-.245-1.742.01-1.274.254 1.239-3.471 3.878-.205 2.869.627 3.074 5.245 2.744 5.455Z" fill="#fff"></path><path d="M50.193 54.06c-.028.182-.091.304-.203.322-.213.032-1.166-.186-1.707-.392-.062.283-1.512.551-1.742.171-.527.455-1.535 1.115-1.746.977-.404-.264-.784-2.3-.48-2.73.462-.42 1.433.036 2.114.277.23-.39 1.349-.538 1.58-.218.612-.465 1.633-1.12 1.733-1 .496.597.558 2.02.45 2.593h.001Z" fill="#4CBA3C"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M45.02 47.913c.208-1.477 2.998-1.015 4.245-1.18a8.071 8.071 0 0 0 2.033-.504c1.032-.424 1.208-.004.704.657-1.425 1.688-4.593.46-5.16 1.332-.166.259-.038.868 1.265 1.06 1.761.259 3.208-.312 3.386.033-.401 1.843-7.087 1.216-6.474-1.398Z" fill="#FC3"></path><g opacity="0.8" fill="#14307E"><path d="M47.266 43.637c.182-.382 1.13-.384 1.315.015.024.033-.012.072-.049.056-.731-.392-1.311.146-1.266-.071ZM43.246 43.847c.408-.226.962-.002.849-.144-.393-.395-1.471-.088-1.495.548 0 .048.096.052.12.011.068-.109.18-.267.526-.415Z"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M48.243 45.881c-.726-.003-.726-1.122 0-1.126.726.004.726 1.123 0 1.126ZM44.565 45.708c-.014.863-1.28.863-1.294 0 .004-.86 1.29-.859 1.294 0Z"></path></g><path fill-rule="evenodd" clip-rule="evenodd" d="M46.667 39.304a8.03 8.03 0 1 0 0 16.059 8.03 8.03 0 0 0 0-16.06Zm-9.304 8.03a9.304 9.304 0 1 1 18.608 0 9.304 9.304 0 0 1-18.608 0Z" fill="#fff"></path><path d="M60.936 47.204h2.402c.44 0 .8.36.8.8 0 .44-.36.8-.8.8h-2.402c-.44 0-.8-.36-.8-.8 0-.44.36-.8.8-.8ZM61.737 40a.802.802 0 0 1 .564 1.369l-1.6 1.6a.802.802 0 0 1-1.134-1.132l1.601-1.6a.798.798 0 0 1 .565-.237h.004ZM60.14 52.808a.802.802 0 0 0-.564 1.369l1.6 1.6a.802.802 0 0 0 1.133-1.132l-1.6-1.6a.798.798 0 0 0-.565-.237h-.004Z" fill="#CCC"></path><defs><clipPath id="browser-mac_svg__a"><path fill="#fff" transform="translate(26 24.667)" d="M0 0h10.667v10.667H0z"></path></clipPath></defs></svg><div class="q_wRJwz5akFF3htUlg2g"><h3 class="wZ4JdaHxSAhGy1HoNVja xrWcR15SIZQFwwZBfYi3">Get Our Mac Browser</h3><p class="wZ4JdaHxSAhGy1HoNVja cPy9QU4brI7VQXFNPEvF">Protect your data as you search and browse.</p></div><a class="FBYaSySYZ3Qn5yV4hRg3 ffON2NH02oMAcqyoh2UU MQCbz04ET5EljRmK3YpQ dkPsZgoVlwHrgASCd797" href="https://duckduckgo.com/mac?origin=funnel_browser_searchresults__footercard"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path clip-rule="evenodd" d="M8 .5a.75.75 0 0 1 .75.75v8.264l2.986-2.81a.75.75 0 1 1 1.028 1.092l-4.25 4a.75.75 0 0 1-1.028 0l-4.25-4a.75.75 0 1 1 1.028-1.092l2.986 2.81V1.25A.75.75 0 0 1 8 .5Zm-5.25 13a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5H2.75Z"></path></svg>Download</a></div></section></div></div></div><!-- This only serves as container. Footer is now a React component --><div class="footer__addons"><div id="footer-feedback-wrapper" class="js-footer-feedback-btn-wrap"></div></div></div><script type="text/javascript"></script><script type="text/JavaScript">function nrji() {nrj('/t.js?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024&l=au-en&s=0&dl=en&ct=AU&bing_market=en-AU&p_ent=&ex=-1&dp=6CIWX9p0i_jb-tIjjVkDGPuyL4apusyaMaTSd7HicU-jcgLgfHJOJUtcagRFrysZmjzTU7FawAh97V6c-m3YI3TkZzwycmubZeh15JF_ujodRtJzgRsI-fKBkNwqCYysPGZq0dSGatF805zYdKyCKt59xnsGo6G-TVlX31Cv84NYyfnPt3a6gMQSVBSlc7iS-3r06SRbWAell9T_GBtgNg.suJFCgK3SmjvqEN7xgo_tw&perf_id=1cc9aa1de3d2371f&parent_perf_id=d9522738f46724ae&perf_sampled=0&host_region=aue&dfrsp=1&aps=0');DDG.deep.initialize('/d.js?q=rust%20tokio%20async%20streaming%20chunked%20responses%20backpressure%20best%20practices%202024&l=au-en&s=0&dl=en&ct=AU&vqd=4-332205726396082626323026369495305160160&bing_market=en-AU&p_ent=&ex=-1&dp=6CIWX9p0i_jb-tIjjVkDGPuyL4apusyaMaTSd7HicU-jcgLgfHJOJUtcagRFrysZmjzTU7FawAh97V6c-m3YI3TkZzwycmubZeh15JF_ujodRtJzgRsI-fKBkNwqCYysPGZq0dSGatF805zYdKyCKt59xnsGo6G-TVlX31Cv84NYyfnPt3a6gMQSVBSlc7iS-3r06SRbWAell9T_GBtgNg.suJFCgK3SmjvqEN7xgo_tw&perf_id=1cc9aa1de3d2371f&parent_perf_id=d9522738f46724ae&perf_sampled=0&host_region=aue&sp=1&dfrsp=1&bpa=1&wrap=1&aps=0', false);;};DDG.ready(nrji, 1);</script><script src="/dist/g.3ebeb54f705a0f4d82eb.js" onerror="handleScriptError(this)"></script><script type="text/javascript">DDG.page = new DDG.Pages.SERP({ showSafeSearch: 0, instantAnswerAds: false, hostRegion: "aue" });</script><div id="z2"> </div><div id="z"></div><script type="text/JavaScript">DDG.index = DDG.index || {}; DDG.index.signalSummary = "";</script><iframe id="iframe_hidden" src="/post3.html"></iframe><style>body,input,textarea,.search__input--adv {font-family: 'DuckSansProduct', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,'DuckSansProduct', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;}</style><style>.vertical--map--sidebar-left .vertical--map__sidebar__header,.vertical--map--sidebar-left .has-requery .vertical--map__sidebar__header,.vertical--map__sidebar__header--mobile,.map-requery-mobile,.footer,.footer--mobile {border-color: transparent;background-color: #161616;box-shadow:0 1px 0 #282828;}.vertical--map--sidebar-left .has-requery .vertical--map__sidebar__header {box-shadow: 0 1px 0 #333333;}.footer,.footer--mobile {border-top: 1px solid #282828;}.no-touch .header-wrap .zcm__link.is-active {background-color: transparent;}.header-wrap.header-wrap--home {background: none;}.no-touch .site-wrapper .zcm__link,.zcm__link,.zcm__link:visited {color: #cccccc;}.no-touch .zcm__link:hover,.no-touch .zcm__link:active,.no-touch .zcm__item.is-open .zcm__link {color: #eeeeee;}.no-touch .zcm__link.is-active:hover,.no-touch .zcm__link.is-active:active {color: #eeeeee;}.zcm__link:hover,.zcm__link:active,.zcm__link.is-active {background-color: #161616;color: #eeeeee;border-bottom-color: #eeeeee;}.no-touch .header-wrap .zcm__link.is-active {color: #eeeeee;}.lt-ie9 .header-wrap {border-bottom-color: #282828;}.set-header--menu.has-zcm.is-mobile .header--aside {background: -moz-linear-gradient(left, rgba(22, 22, 22,0) 0%, rgba(22, 22, 22,1) 40%, rgba(22, 22, 22,1) 100%);background: -webkit-linear-gradient(left, rgba(22, 22, 22,0) 0%, rgba(22, 22, 22,1) 40%, rgba(22, 22, 22),1) 100%);background: -o-linear-gradient(left, rgba(22, 22, 22,0) 0%,rgba(22, 22, 22,1) 40%,rgba(22, 22, 22,1) 100%);background: -ms-linear-gradient(left, rgba(22, 22, 22,0) 0%, rgba(22, 22, 22,1) 40%, rgba(22, 22, 22,1) 100%);background: linear-gradient(to right, rgba(22, 22, 22,0) 0%, rgba(22, 22, 22,1) 40%, rgba(22, 22, 22,1) 100%);}.vertical--map__mobile-toggle {background-color: #161616;}.vertical--map__mobile-toggle-icon--map {background-image: url('assets/maps/map-icon-light.svg');}a.header--text_promo--link,a.header--text_promo--link:active,a.header--text_promo--link:visited {color: #cccccc;}.header--text_promo:hover .text_promo--text {color: #eeeeee;}.dark-bg.is-link-style-exp .module__link {color: #769DFF !important;}.dark-bg.is-link-style-exp .btn--primary:not(.is-disabled),.dark-bg.is-link-style-exp .atb-banner__btn--standalone,.dark-bg.is-link-style-exp .vertical--map__search-this-area.btn {background: #769DFF;border-color: #769DFF;color: #333333;}.dark-bg.is-link-style-exp .atb-banner__btn--standalone span[role='button'] {color: #333333;}.dark-bg.is-link-style-exp .btn--primary:not(.is-disabled):hover.dark-bg.is-link-style-exp .atb-banner__btn--standalone:hover {background: #9CB8FF;border-color: #9CB8FF;color: #333333;}.dark-bg.is-link-style-exp .btn--primary:not(.is-disabled):active,.dark-bg.is-link-style-exp .atb-banner__btn--standalone:active {background: #B3C7FF;border-color: #B3C7FF;color: #333333;}.dark-bg.is-link-style-exp .btn--primary.is-disabled,.dark-bg.is-link-style-exp .btn--primary:disabled {background: #666666;border-color: #666666;color: #333333;}.dark-bg.is-link-style-exp .switch.is-on,.dark-bg.is-link-style-exp .set-themes .set-theme.is-checked .set-theme__check,.dark-bg.is-link-style-exp .modal--dropdown--settings .settings-dropdown--section .frm__field.is-checked .frm__switch .frm__switch__label.btn {background: #769DFF;}.dark-bg.is-link-style-exp .user-loc-badge__btn--loc.loc-enabled {background: #769DFF;}.dark-bg.is-link-style-exp .modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .custom_date__fields .custom_date__input:focus {border-color: #769DFF;}.dark-bg.is-link-style-exp .modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-table tbody td.is-startrange .pika-day,.dark-bg.is-link-style-exp .modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-table tbody td.is-endrange .pika-day {background-color: #769DFF;}.dark-bg.is-link-style-exp .modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-table tbody .is-startrange .pika-day::after,.dark-bg.is-link-style-exp .modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-table tbody .is-endrange .pika-day::after {color: #769DFF;}.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link:not(.dropdown__button).is-active,.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link:not(.dropdown__button).is-active:active,.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link:not(.dropdown__button).is-active:hover,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link:not(.dropdown__button).is-active,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link:not(.dropdown__button).is-active:active,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link:not(.dropdown__button).is-active:hover {color: #769DFF;border-color: #769DFF;background-color: transparent;}.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link:not(.dropdown__button):active,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link:not(.dropdown__button):active {color: #769DFF;background-color: transparent;}.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link:hover,.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link:focus,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link:hover,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link:focus {color: #eeeeee;background-color: transparent;}.dark-bg.is-vertical-tabs-exp #duckbar .zcm__link.is-active,.dark-bg.is-vertical-tabs-exp #duckbar_right .zcm__link.is-active {background-color: transparent}.header-wrap {box-shadow: 0 1px 0 #282828;-webkit-tab-highlight-color: rgba(0, 0, 0, 0);background-color: #161616;}.header-wrap:after {content: '';width: 100%;display: block;margin-top: -2px;height: 1px;}.lt-ie9 .header-wrap {border-bottom: 1px solid #282828;}.is-link-style-exp .header-wrap {background-color: #161616;}.search--home,.search--header {background-color: #333333;border-color: #333333;box-shadow: 0 1px 3px rgba(0,0,0,0.5);}.search__clear,.search--home.has-text .search__clear {color: #cccccc;}.search__clear:focus,.search__clear:hover,.search__clear:active,.search__clear:active:focus,.search__clear:active:hover {color: #eeeeee;}.search__input--adv {color: #eeeeee;}.search__button:hover,.search__button:focus,.search--hover .search__button,.search--hover .search__button:focus,.search--header.has-text.search--hover .search__button,.search--header.has-text.search--focus .search__button,.search--header.has-text.search--hover .search__button:hover,.search--header.has-text.search--focus .search__button:hover,.search--home.has-text .search__button,.search--home.has-text .search__button:focus,.search--home.has-text .search__button:hover {background-color: #444444;color: #cccccc;}.search__button:hover,.search--header.has-text.search--hover .search__button:hover,.search--header.has-text.search--focus .search__button:hover,.search--home.has-text .search__button:focus,.search--home.has-text .search__button:hover {color: #eeeeee;}.is-mobile .search--adv {border-color: #333333;}.is-mobile .search--adv.has-text:after {background-color: #666666;}.is-mobile .search--adv.has-text .search__button {background-color: transparent;}.is-mobile .search--adv.has-text .search__button:focus,.is-mobile .search--adv.has-text .search__button:hover,.is-mobile .search--adv.search__button:focus,.is-mobile .search--adv.search__button:hover {background-color: transparent;color: #eeeeee;}.is-mobile .search--adv.has-text .search__button {color: #cccccc;}.is-mobile .search--adv.acp__search-fill:hover,.is-mobile .search--adv.acp__search-fill:focus {color: #eeeeee;}.search__autocomplete {border-color: #333333;background: #333333;border-top: 1px solid #282828;}.acp-footer {border: 1px solid #333333;}.acp-wrap, .acp-footer {background-color: #333333;border-color: #333333;}.acp-wrap__column.acp-wrap__column--left {border-color: #282828;}.acp,.acp--bang,.acp__detail,.acp-footer .acp-footer__instructions {color: #cccccc;}.acp,.acp--bang,.acp strong,.acp--bang .acp--bang__phrase,.acp--highlight.acp--bang .acp--bang__phrase,.acp--highlight.acp--bang .acp--bang__snippet {color: #eeeeee;}.acp--highlight {background-color: #282828;}.is-mobile .acp-wrap {border: none;}.btn--icon,.header__label,.no-touch .btn--icon,.no-touch .header__button, {color: #cccccc;}.header__label:hover,.header__clickable:hover {color: #eeeeee;}.no-touch .btn--icon:hover,.no-touch .header__button:hover,.no-touch .header__button:focus {color: #eeeeee;background-color: #282828;}.metabar__mode, .metabar__grid-btn {color: #eeeeee;background-color: #282828;border-color: #282828;}.metabar__mode:hover, .metabar__grid-btn:hover {color: #cccccc;background-color: #282828;border-color: #282828;}.zci, .zci:before,.tileview .metabar--fixed,.tileview--grid .metabar--fixed,.tileview--grid .metabar--fixed.is-stuck {background-color: #161616;border-bottom-color: #333333;}.zci-wrap {background-color: #161616;}.set-header--fixed .tileview--grid .metabar--fixed,.tileview--grid .metabar--fixed.is-stuck {background-color: #161616;border-top-color: #161616;}.zci.is-active {border-bottom-color: #282828;}.zci,.zci__body,.zci__detail,.zci__caption,.zci__body h4, .zci__detail h4,.zci__body h5, .zci__detail h5,.zci__body h6, .zci__detail h6.metabar,.metabar__dropdowns .dropdown .dropdown__button,.c-detail__title,.c-detail__title__sub,.c-detail__desc,.c-detail__filemeta,.c-detail__more,.c-detail__user,.c-detail__count,.c-detail__date,.c-info,.c-info__title,.c-icon,.c-icon__title,.c-icon__content,.c-score,dropdown__selected,dropdown__selected:hover,dropdown__selected:focus,.metabar__primary-text--linked,.overlay--video-privacy__remember,.zcm__link--sub,.zcm__link--sub:visited,.zci .badge--ad-wrap--shopping-vertical .badge--ad,.bing .vertical-section-header .badge--ad.ddgsi,.bing .vertical-section-header .free-listings-badge.ddgsi {color: #cccccc;}.detail--l .detail__media, .detail--products .detail__media, .detail--qa .detail__media, .detail--about .detail__media,.detail--l .detail__media:after, .detail--products .detail__media:after, .detail--qa .detail__media:after, .detail--about .detail__media:after {background: none;}a,a.no-visited,.zci__body a,.zci__detail a,.zci__body .chomp--link,.metabar .zci__more-at,.zci__body .zci__more-at,.zci__body .c-detail__rating :link,.zci__more-at,.c-info__link,.c-icon__link,.chomp--link__mr,.chomp--link__ls,.overlay__text,.overlay--video-privacy__remember a,.overlay--video-privacy__remember a:hover,.c-detail__more :link:hover,.zci__header,.zci__body h1, .zci__detail h1,.zci__body h2, .zci__detail h2,.zci__body h3, .zci__detail h3,.detail--xd .tile-nav--sm,.zcm__link--sub.is-selected {color: #eeeeee;}a:visited,.zci__body a:hover,.detail__body a:hover,.zci__body a:active,.zci__body a:active,.zcm__link--sub.is-here,.zcm__item.is-here .zcm__link--sub,.zci__body .chomp--link:hover,.zci__more-at:hover,.c-info__link:hover,.c-icon__link:hover,.zcm__link--sub:hover,.zcm__link--sub.is-highlighted,.chomp--link:hover .chomp--link__mr,.chomp--link:hover .chomp--link__ls,.bing .tile__title a,.bing .sidebar-filter__title,.bing .sidebar-filter__show-more,.zci.has-sidebar-filters .metabar .metabar__secondary-text,.vertical-section-header .vertical-section-header__title,.metabar__dropdowns .dropdown .dropdown__button:hover {color: #eeeeee;}.module__text pre,.zci pre,.zci code,.zci .frm__select,.zci .frm__select select,.zci--shorten input.tag,.zci--conversions .frm__select:after,.zci--conversions .frm--bottom .frm__input,.zci--conversions .frm--bottom .frm__select,.zci--conversions .frm--bottom .frm__select select,.zci--timer .name_input,.zci--timer .time_input input,.zci--timer .corner_btn.add_minute,.metabar__mode,#color_picker_container input,.is-full-page .has-tiles--grid .tile--m .tile--m--mob {color: #eeeeee;background-color: #333333;border-color: #333333;}.tile-nav.can-scroll,.tile-nav.can-scroll:after,.tile-nav.can-scroll:hover:after {background-color: #333333;color: #fff;}.zci .frm__select:hover,.zci .frm__select:hover:after,.zci .frm__select:hover select,.tile-nav.can-scroll:hover,.zci--timer .corner_btn.add_minute:hover,.is-full-page .has-tiles--grid .tile--m .tile--m--mob:hover {border-color: #444444;background: #444444;}.forecast-wrapper .module--forecast .module__items-unit.module__items-unit--low {color: #cccccc;}.forecast-wrapper .module--forecast .module__temperature-unit--on {border-color: #eeeeee;}.zci pre,.zci code,.c-list__items,.record__cell,.forecast-wrapper .module--forecast .module__items-item:not(:last-child),.forecast-wrapper .module--forecast .module__items-item.module__items-item--selected,.forecast-wrapper .module--forecast .module__items-item,.forecast-wrapper .module--forecast .module__warnings,.bing .vertical-section-divider,.zci--images .vertical-section-divider {border-color: #333333;}.forecast-wrapper .module--forecast .module__items-item.module__items-item--selected {border-top-color: #666666;}.forecast-wrapper .module--forecast .module__items-item.module__items-item--selected,.forecast-wrapper .module--forecast .module__items-item:hover {color: #eeeeee;background: #333333;}.zci .frm__input,.zci--cryptocurrency .frm__input,.zci--cryptocurrency .frm__select,.zci--cryptocurrency .frm__select:after,.zci--currency .frm__select:after {border-color: #333333;background: #333333;}.metabar__mode:not(.is-disabled):hover {border-color: #444444;background-color: #444444;color: #eeeeee;}.metabar__mode.is-disabled,.metabar__mode.is-disabled:hover,.metabar__mode.is-disabled:active {color: #333333;background-color: transparent;}.metabar__dropdowns-wrap:before {background-image: linear-gradient(90deg, #1c1c1c,rgba(41,41,41,0));}.metabar__dropdowns-wrap:after {background-image: linear-gradient(90deg, rgba(41,41,41,0),#1c1c1c);}.metabar.is-stuck.has-ebi .explore-by-items .explore-by-items__arrow--right {background: linear-gradient(-90deg, #161616 80%, transparent);}.metabar.is-stuck.has-ebi .explore-by-items .explore-by-items__arrow--left {background: linear-gradient(90deg, #161616 80%, transparent)}.detail {background-color: #0f0f0f;border-color: #333333;}.detail__close {color: #cccccc;}.detail__close:hover,.detail__close:active{color: #eeeeee;}.detail__media--pr {border-right-color: #333333;}.sep,.sep--small,.sep--before:before,.sep--after:after {border-color: #333333;}.tileview--grid .metabar--fixed:before {background-color: #161616;}.chomp--link__icn,.count__i:after {color: #282828;}.tile-nav--sm {color: #eeeeee;background-color: #cccccc;}.tile-nav--sm:hover,.tile-nav--sm:active {background-color: #eeeeee;}.star,.count__i,.tileview__message,.tileview__message:before {color: #cccccc;}.tile, .tile--s, .tile--info {border-color: #333333;}.highlight.tile, .highlight.tile--s, .highlight.tile--info,.is-selected.tile, .is-selected.tile--s, .is-selected.tile--info,.highlight.tile--f .tile--f__main, .highlight.tile--f .tile--f__alt, .is-selected.tile--f .tile--f__alt,.highlight.tile:active, .highlight.tile--s:active, .highlight.tile--info:active {box-shadow: none;border-color: #282828;outline-color: #282828;}.highlight.tile--no-highlight, .highlight.tile--no-highlight:active, .tile--no-highlight.is-selected {border-color: #282828;outline: none;}.tile--m {background-color: #161616;color: #eeeeee;}.tile--m:hover {background-color: #333333;color: #eeeeee;}.tile--m:active,.tile--m.is-loading,.tile--m.is-loading:hover {background-color: #161616;color: #161616;}.is-full-page .has-tiles--grid .tile--m,.is-full-page .has-tiles--grid .tile--m:hover,.is-full-page .has-tiles--grid .tile--m.is-loading,.is-mobile .has-tiles--grid .tile--m,.is-mobile .has-tiles--grid .tile--m:hover {background-color: #161616;border-color: #0f0f0f;}.is-mobile .bing .tileview-top-module,.is-mobile .bing .tileview-top-module .products-carousel.module.is-in-vertical .module--carousel__item {background-color: #282828;}.zci--airlines .text--title,.zci--airlines .text--airline-flight,.zci--airlines .flight-details__values {color: #ffffff;}.zci--airlines .tile__flightID svg path {fill: #ffffff;}.zci--airlines .airlines-footer,.zci--airlines .airlines-footer .source-link {color: #aaaaaa;}.zci--airlines .airlines-footer .source-link:hover,.zci--airlines .airlines-footer .source-link:focus,.zci--airlines .timing,.zci--airlines .tile__day,.zci--airlines .flight-details__labels,.zci--airlines .scheduled-time {color: #cccccc;}.tile-wrap .tile--airlines.highlight,.tile-wrap .tile--airlines.highlight:active {box-shadow: none;border-color: #282828;outline-color: #282828;}.zci--airlines .timing .tile__status {color: #000000;}.zci--airlines .tx-clr--green {color: #63C853;}.zci--airlines .timing .tile__status.bg-clr--green,.zci--airlines .progress__complete.bg-clr--green {background-color: #63C853;}.zci--airlines .delayed-color,.zci--airlines .tx-delayed-color {color: #E46F4F;}.zci--airlines .bg-delayed-color {background-color: #E46F4F;}.zci--airlines hr,.zci--airlines .progress__bar {background-color: #444444;}.bg-clr--dk,.bg-clr--dk2,.bg-clr--slate,.bg-clr--slate-light {background-color: #cccccc;}.bg-clr--lt,.bg-clr--lt2,.bg-clr--lt3,.bg-clr--grey-dark,.bg-clr--grey-light,.bg-clr--grey,.text--primary,.forecast-wrapper .module--forecast .module__temperature-unit,.forecast-wrapper .module--forecast .module__temperature-unit:hover,.forecast-wrapper .module--forecast .summary-more,.forecast-wrapper .module--forecast .summary-more:hover,.forecast-wrapper .module--forecast .summary-more:focus,.forecast-wrapper .module--forecast .summary-more:visited,.forecast-wrapper .module--forecast .module__items-item--selected .module__items-day,.forecast-wrapper .module--forecast .module__items-item--selected .module__items-unit,.forecast-wrapper .module--forecast .module__temperature-unit--on:hover {color: #eeeeee;}.forecast-wrapper .module__detail--hours__labels .module__detail__hour-label {color: #cccccc;}.forecast-wrapper .module--forecast .module__more a,.forecast-wrapper .module--forecast .module__more a:hover,.forecast-wrapper .module--forecast .module__more a:focus,.forecast-wrapper .module--forecast .module__more a:visited {color: #eeeeee;}.forecast-wrapper .module--forecast .module__current,.forecast-wrapper .module--forecast .hours__labels--day-0 .label-0 .module__detail__hour-label,.forecast-wrapper .module--forecast .module__detail__temp-label {color: #eeeeee;}.tx-clr--dk,.tx-clr--dk2,.tx-clr--slate,.tx-clr--slate-light {color: #cccccc;}.zci__subheader,.zci__header__sub,.c-info__sub,.c-info__title__sub,.c-icon__sub,.c-score__head,.c-score__foot,.text--secondary,.tx-clr--grey-dark,.tx-clr--grey-light,.tx-clr--grey,.tx-clr--lt,.tx-clr--lt2,.tx-clr--lt3,.place-detail__subtitle,.place-detail__review-count,.place-detail__review-count__link,.place-detail__review-count__link:visited,.place-list-item__rating,.related-searches,.zci--airlines .source-link,.zci--airlines .source-link:hover,.zci--airlines .source-link:focus {color: #cccccc;}.tile, .tile__title, .tile h4, .tile--m--mob, .at-topic .tile__title, .at-topic .tile.active-topic .tile__title, .at-topic .tile.highlight .tile__title, .is-mobile .c-info__link, .is-mobile .c-info__link:hover, .tile .tile__price b, .tile--pr__price, .tile--pr__brand, .bing .tile--pr__original-price, .bing .tile--pr__free-shipping, .bing .sidebar-filter__option {color: #cccccc;}.bing .sidebar-filter__option__icon {border-color: #cccccc;}.tile, .tile--s, .bg-tile, .tile--m--mob, .at-topic .tile.active-topic, .at-topic .tile.highlight, .tile__foot--news, .tile--f__main, .tile--f__alt, .tile__num:before, .is-mobile .c-info__link, .is-mobile .c-info__link:hover, .tile__media:not(.tile__media--pr) .tile__media__img {background-color: #161616;}.tile__expand,.tile__expand:hover,.bg-clr--platinum-darker,.bg-clr--platinum-dark,.bg-clr--platinum-light,.bg-clr--platinum,.bg-clr--silver-dark,.bg-clr--silver-light,.bg-clr--silver {background: #cccccc;}.at-topic .tile {background: #161616;}.tile__sub, .tile__sub--2, .tile__title__sub, .tile__foot, .tile__footer, .tile__link, .tile--audio .tile__footer, .tile__count, .tile--b--i .tile__source, .tile__neighborhood, .tile__rating, .tile__more-at, .tile__title a:visited, .bing .tile__title a:visited,.bing .tile--pr__brand, .bing .tileview--grid .tile--pr__rating,.tx-clr--platinum-darker, .tx-clr--platinum-dark, .tx-clr--platinum-light, .tx-clr--platinum,.tx-clr--silver-dark, .tx-clr--silver-light, .tx-clr--silver {color: #cccccc;}.tile--b--i .tile__description, .tile__content, .tile__content--qa, .tile__content--news, .tile__tx, .tile__expand, .tile__expand:hover, .tile__num, .tile__phone, .info__label, .info__value, .tile__foot, .tile__foot--news {color: #eeeeee;}.tile--info .info, .tile__expand, .tile__expand:hover, .attribution__hr, .c-score__line, .c-score__foot, .has-score .c-score__line__name, .is-mobile .no-score .c-score__line--home, .c-score__line--vs1:before, .c-score__line--vs1:after, .detail {border-color: #282828;}.tile--f__main, .tile--f__alt, .csstransforms3d .tile--f__main, .csstransforms3d .tile--f__alt, .is-mobile .c-info__link,.zci--maven tr,.c-list__item,.zci--sun_rise_set .sun_rise_set--border-right {border-color: #333333;}.tile .tile__price {color: #0f0f0f;}.mapkit-static,.mapkit-map {background: #161616;}.tile__rating a:hover,color: #eeeeee;}</style><style>html,body,.body--home,.site-wrapper,.region__body,.badge-link,.module--carousel__image-wrapper,.result__image,.vertical--map__sidebar,.vertical--map__sidebar__header,.page-chrome_newtab,.zci--type--tiles:not(.is-fallback).is-full-page.is-expanded,.zci--type--tiles:not(.is-fallback).is-full-page.is-expanded .metabar:not(.is-stuck) {background-color: #1c1c1c;}body.embedded-search-default-theme.page-chrome_newtab,body.embedded-search-default-theme .newtab-heading {background-color: #1c1c1c;}.results,.results--powered,.results--ads--rrail,.result__extras__url,.msg,.dropdown .dropdown__button,.dropdown--region.has-inactive-region .dropdown__button,.dir-btn .btn.dir-btn__link:hover,.dropdown--region.has-inactive-region .dropdown__button:after,.dropdown:hover .dropdown__button,.dropdown.is-active:hover .dropdown__button,.dropdown.dropdown--location .dropdown__button,.nav-menu__feedback__icon:hover,.nav-menu__feedback__icon:focus,.feedback-btn__icon:hover,.feedback-btn__send:hover,.feedback-btn__icon:focus,.feedback-btn__send:focus,.address-detail__name,.address-detail__name:hover,.address-detail__name:active,.address-detail__name:focus,.address-detail__name:visited,.address-detail .btn.btn--primary:hover,.vertical--map__sidebar,.set-main .frm__desc,.about-info-box__info-label,.about-info-box__info-value,.modal__box,.place-detail,.review__rating-date,.place-list-item__info__item,.products-carousel .module--carousel__footer,.forecast-wrapper .module--forecast .module__weather-warning:visited:not(.module__weather-warning--red),.pika-label,.pika-table th,.modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-table tbody .pika-day,.modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-prev,.modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-next {color: #cccccc;}.switch:not(.is-on) .switch__knob,.modal--dropdown--settings .settings-dropdown--section .frm__field:not(.is-checked) .frm__switch.frm__switch__label.btn:after {background: #cccccc;}.result__check {color: #1c1c1c;}.result__check:visited,.feedback-btn,.feedback-btn:hover,.result__pagenum {color: #333333;}a,a:hover,.no-visited,.result__a,.result__a:hover,.result__a:active,.result__a:focus,.highlight .result__a,.highlight .result__a:hover,.result__a:visited,.page-settings,.frm__label,.badge-link__text,.badge-link__cookie-msg,.no-results__link,.no-results__link:visited,.no-results__link:active,.no-results__link:hover,.vertical--map__sidebar__results__inner .no-results__link,.vertical--map__sidebar__results__inner .no-results__link:hover,.modal__header__title,.modal__header__clear:hover,.modal__list__link,.modal__list__link:hover,.modal__list__link:visited,.modal__list__link:focus,.modal__list__link.is-highlighted,.modal--dropdown .modal__list__link.is-selected,.modal--dropdown .modal__list__link.is-selected:hover,.module--carousel__body__title,.module--carousel__body__title:hover,.module--carousel__body__title:focus,.module--carousel__body__title:active,.module--carousel__body__title:visited,.module--carousel__left,.module--carousel__right,.modal select,.dropdown.is-open .dropdown__button,.dropdown .dropdown__button:hover,.dropdown.dropdown--location .dropdown__button:hover,.feedback-external__link:hover,.feedback-btn__icon,.feedback-btn__send,.feedback-modal__heading__prompt.has-category,.feedback-modal__heading__prompt,.feedback-modal .frm__label,.forecast-wrapper .module__more-at .zci__more-at:hover,.forecast-wrapper .module--forecast .module__weather-warning:not(.module__weather-warning--red),.forecast-wrapper .module--forecast .module__weather-warning:hover:not(.module__weather-warning--red),.forecast-wrapper .module--forecast .module__weather-warning:active:not(.module__weather-warning--red),.module__title__link,.module__title__link:hover,.module__title__link:visited,.module__title__link:active,.module__title__link:focus,.about-info-box__heading,.about-info-box__link-row__link,.about-info-box__link-row__link:hover,.dropdown--region.has-inactive-region .dropdown__button:hover,.dropdown.is-active:not(.has-inactive-region) .dropdown__button,.module__more-at,.module__more-at:hover,.module__more-at:active,.module__more-at:focus,.module__more-at-bottom,.module__more-at-bottom:hover,.module__official-url,.module__official-url:hover,.module__link,.module__link:hover,.module__link:focus,.module__link:active,.module__link a,.module__link a:hover,.module__link a:focus,.module__link a:active,.address-detail__name,.address-detail .btn.btn--primary,.dir-btn .btn.dir-btn__link,.mapboxgl-ctrl,.mapboxgl-ctrl a,.mapkit-static__attribution,.mapkit-static__cta,.module__header.module__header--link,.module__footer,.module__footer:visited,.module__footer:active,.module__footer:hover,.module__toggle__text,.user-loc-title,.user-loc-cta,.user-loc-subtitle,.place-list-item__title,.vertical--map__search-examples__button,.cloudsave__new-suggestion,.cloudsave__new-suggestion:hover,.footer__text,.set-main .frm__section-label,.frm__select select,.modal--dropdown .modal__list__link.is-selected,.modal--dropdown .modal__list__link.is-selected:visited,.modal--dropdown .modal__list__link.is-selected:hover,.modal--dropdown.modal--dropdown--date .modal__footer .modal__list__link,.modal--dropdown.modal--dropdown--date .modal__footer .modal__list__link:visited,.modal--dropdown.modal--dropdown--date .modal__footer .modal__list__link:hover,.modal--dropdown.modal--dropdown--license .modal__footer .modal__list__link,.modal--dropdown.modal--dropdown--license .modal__footer .modal__list__link:visited,.modal--dropdown.modal--dropdown--license .modal__footer .modal__list__link:hover,.place-detail__status,.place-detail__cta-text,.bing .vertical-section-header .badge--ad.ddgsi:hover,.bing .vertical-section-header .badge--ad.ddgsi:focus,.bing .vertical-section-header .free-listings-badge.ddgsi:hover,.bing .vertical-section-header .free-listings-badge.ddgsi:focus,.footer--text_promo--link:hover {color: #eeeeee;}.module--carousel .badge--ad,.module--carousel .badge--ad:hover,.module--carousel .badge--ad:focus {border-color: #eeeeee;}.badge-link__title,.badge-link__bullets,.atb-new .badge-link__title,.atb-new .badge-link__checkbox {color: #eeeeee;}.atb-new .badge-link__close {color: #cccccc;}.atb-new .badge-link__checkbox.badge-link__checkbox_checked,.atb-new .badge-link__checkbox__container::before {background: #333333;}.atb-new .badge-link__checkbox.badge-link__checkbox_checked.badge-link__checkbox__container::before {background-color: #7BD66D;}.atb-new .badge-link__checkbox:not(.badge-link__checkbox_checked),.atb-new .badge-link__checkbox__container::before {border-color: #7BD66D;}.dark-bg.is-link-style-exp .atb-new .badge-link__out a {color: #769DFF;}.faq__title,.faq__question,.faq__answer {color: #678FFF;}.settings-page-wrapper .set-side a,.settings-page-wrapper .set-side a:hover,.settings-page-wrapper .set-side a:active {color: #eeeeee;text-decoration: underline;}.result--sep--hr:before,.result--more.is-loading,.feedback--button.btn--wire,.place-list-item:hover,.footer--mobile .feedback-btn,.module__section.place-list-item:hover {color: #cccccc;border-color: #333333;background-color: #333333;}.place-hours {border-color: #333333;}.feedback--button.btn--wire:hover {color: #eeeeee;background-color: #333333;}.mapboxgl-ctrl-scale {border-color: #eeeeee;}.set-head,.set-thumbnail__img,.set-main-footer,.region__header__section--current,.badge-link,.frm__color__swatch {border-color: #333333;}.modal__list__link:hover,.modal__list__link.is-active,.modal__list__link.is-highlighted,.modal--dropdown--region .modal__list__link.is-highlighted,.highlight .result__image,.switch,.modal--dropdown--settings .settings-dropdown--section .frm__field .frm__switch .frm__switch__label.btn {background-color: #333333;}.cloudsave,.set-bookmarklet__detail,.set-reset__detail {background: #282828;}code,.set-bookmarklet__input,.set-bookmarklet__data,.btn,.btn:visited,.btn:active,.btn.btn--primary,.btn.btn--secondary,.btn--primary:hover,.btn.is-disabled,.btn.is-disabled:hover,input,textarea,.frm__input,.frm__text,.detail--xd .c-detail__btn,.set-bookmarklet,.set-reset,.frm__select,.frm__select select,.zci--json_validator textarea,.colorpicker,.feedback-modal__submit.is-disabled,.feedback-modal__submit.is-disabled:hover,.feedback-modal__submit.is-disabled:active,.feedback-modal__submit.is-disabled:focus,.btn.btn--skeleton:hover {background-color: #333333;border-color: transparent;color: #eeeeee;text-shadow: none;}.open-in-app__tooltip {background-color: #333333;border-color: #161616;color: #eeeeee;}.open-in-app__tooltip::before {border-left-color: transparent;border-right-color: transparent;border-bottom-color: #161616;}.open-in-app__tooltip::after {border-left-color: transparent;border-right-color: transparent;border-bottom-color: #333333;}.zcm-wrap-wrap .zcm--right-fade::before {background-image: linear-gradient(90deg, rgba(9%, 9%, 9%, 0), rgba(9%, 9%, 9%, 1));}.colorpicker .colorpicker__nub {background-color: #333333;border-color: #333333;}.frm__select:hover select,.btn.is-active,.btn:hover,.frm__select:hover,.no-touch .tile-nav--sm.can-scroll:hover,.no-touch .tile-nav--sm.can-scroll:active,.no-touch .tile-nav--sm.can-scroll:hover:active,.modal .btn:hover:not(.is-disabled),.modal .btn:hover:not(.is-disabled) {background-color: #444444;color: #eeeeee;border-color: #444444;}.btn.feedback-btn,.btn.feedback-btn a,.feedback-modal__submit.is-disabled,.feedback-modal__submit.is-disabled:hover,.feedback-modal__submit.is-disabled:active,.feedback-modal__submit.is-disabled:focus,.feedback-single-place-modal__disclaimer,.feedback-external__link,.feedback-external__link:visited,.products-carousel.has-grid .module--carousel__main-source a,.products-carousel.has-grid .module--carousel__main-source a:visited,.module--carousel .module--carousel__main-source .js-badge--ad,.module--carousel .badge--ad-wrap--product-carousel .js-badge--ad,.module__more-at-and-feedback .module__more-at a,.btn.btn--skeleton,.btn.btn--skeleton:hover,.btn.is-disabled,.btn.is-disabled:hover {color: #666666;}.btn.feedback-btn {border-radius: 4px;background: #282828;}.btn.feedback-btn:hover,.btn.feedback-btn a:hover,.footer__text,.footer__text,.footer--text_promo--link,.footer--text_promo--link:visited,.footer--text_promo--link:active,a:visited {color: #cccccc;}.module__more-at-and-feedback .module__more-at a img {opacity: 0.5;}.module__more-at-and-feedback .module__more-at a:hover img {opacity: 1;}.is-mobile .results_links_deep, .is-mobile .results_links {background: #282828;border-color: transparent;border-bottom-color: transparent;box-shadow: 0 1px 3px rgba(0,0,0,0.5);}.modal--dropdown--region .modal__header .frm__input {background-color: #282828;}.module--carousel__placeholder,.result__image__plc {color: #cccccc;background-color: #282828;}.frm__hr {border-color: #333333;}.header-atb {background-color: #161616;}.header-atb,.header-atb:active,.header-atb:hover,.header-atb:visited {color: #cccccc;}.modal--popover.is-showing,.modal--popover--gray.is-showing {background: rgba(0,0,0,0.6);}.modal__box {border: 1px solid #161616;}.modal__header {background-color: #161616;border-bottom-color: #333333;}.modal--popout--bottom.has-header .modal__box:before,.modal--popout--bottom-right.has-header .modal__box:before,.modal--popout--bottom-left.has-header .modal__box:before,.modal--popout--bottom.has-header .modal__box:after,.modal--popout--bottom-right.has-header .modal__box:after,.modal--popout--bottom-left.has-header .modal__box:after,.modal--popout .modal__box:before {color: #161616;}.modal--popout .modal__box:after {color: #1c1c1c;}.modal--popover.is-showing,.modal--popover--gray.is-showing {background: rgba(0,0,0,0.6);}.results--powered,.mapboxgl-ctrl.mapboxgl-ctrl-scale,.mapboxgl-ctrl.mapboxgl-ctrl-attrib,.mapkit-static__attribution {background-color: rgba(11%, 11%, 11%,0.85);}.region-flag__wrap--small.has-region:before {border-color: transparent;}.modal__box {border: 1px solid #161616;}.modal__header {background-color: #161616;border-bottom-color: #161616;}.modal--popout--bottom.has-header .modal__box:before,.modal--popout--bottom-right.has-header .modal__box:before,.modal--popout--bottom-left.has-header .modal__box:before,.modal--popout--bottom.has-header .modal__box:after,.modal--popout--bottom-right.has-header .modal__box:after,.modal--popout--bottom-left.has-header .modal__box:after,.modal--popout .modal__box:before {color: #161616;}.modal--popout .modal__box:after {color: #1c1c1c;}.is-mobile .search-filters-wrap:before {background-image: linear-gradient(90deg, #1c1c1c, rgba(11%, 11%, 11%, 0));}.is-mobile .search-filters-wrap:after {background-image: linear-gradient(90deg, rgba(11%, 11%, 11%, 0), #1c1c1c);}.user-loc-cta {border-bottom-color: #1c1c1c;}.is-link-style-exp .zcm-wrap-wrap .zcm--right-fade::before {background-image: linear-gradient(90deg, rgba(9%, 9%, 9%, 0), rgba(9%, 9%, 9%, 1));}.is-link-style-exp:not(.is-mobile) .result.results_links_deep.highlight,.is-link-style-exp:not(.is-mobile) .result.results_links_deep {background: none !important;box-shadow: none !important;border-color: transparent !important;}.is-link-style-exp #links .result.is-keyboard-focus:focus-within {background-color: #282828 !important;}.is-link-style-exp #ads .report-ad__link,.is-link-style-exp #ads .report-ad__link:visited,.is-link-style-exp #ads .report-ad__link:visited:hover {color: #cccccc !important;}.is-link-style-exp .module--carousel__item,.is-link-style-exp .module--carousel__item.is-highlighted {box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.16), 0px 2px 4px rgba(0, 0, 0, 0.2);}.is-related-search-exp.dark-bg .related-searches {background-color: transparent;border-top-color: transparent;}.is-related-search-exp.dark-bg .related-searches__title-long,.is-related-search-exp.dark-bg .related-searches__title-short {color: #eeeeee;}.is-related-search-exp.dark-bg .related-searches__item {background-color: #282828;border-color: #282828;}.is-related-search-exp.dark-bg .related-searches__item:hover,.is-related-search-exp.dark-bg .related-searches__item:active {background-color: #444444;}.is-related-search-exp.dark-bg .related-searches__item:hover .related-searches__item-text::before,.is-related-search-exp.dark-bg .related-searches__item:active .related-searches__item-text::before {background-image: url("/assets/icons/related/loupe-white.svg");}.is-vertical-tabs-exp .module.module--carousel .module__header.module__header--link {color: #eeeeee;}.is-vertical-tabs-exp .module.module--carousel:not(.is-in-vertical) .module__footer {color: #DADADA;background: #282828;border-color: transparent;}.is-vertical-tabs-exp .result--more__btn {color: #DADADA;background: #444444;border-color: transparent;}.is-vertical-tabs-exp .module.module--carousel:not(.is-in-vertical) .module__footer:hover,.is-vertical-tabs-exp .module.module--carousel:not(.is-in-vertical) .module__footer:active,.is-vertical-tabs-exp .result--more__btn:hover,.is-vertical-tabs-exp .result--more__btn:active {color: #FFFFFF;background: #666666;border-color: transparent;}.is-mobile .bing .tileview-top-module > .vertical-section-divider,.is-mobile .bing .tileview-top-module > .vertical-section-header {background-color: #1c1c1c;}.nav-menu,.nav-menu--slideout {background-color: #282828;}.nav-menu--slideout {border-left-color: #161616;-webkit-box-shadow: none;-moz-box-shadow: none;box-shadow: none;}.nav-menu__item,.nav-menu__item--secondary,.nav-menu__item > a,.nav-menu__item--secondary > a,.nav-menu__item > a:visited,.nav-menu__item--secondary > a:visited {color: #eeeeee;}.nav-menu__item > a:hover {color: #eeeeee;}.nav-menu__heading,.nav-menu__heading--primary {color: #cccccc;}.nav-menu__theme.theme-is-selected {border-color: #cccccc;}.result__snippet,.result__snippet b,.sitelink--small__separator {color: #cccccc !important;}.report-ad__start {border-color: #eeeeee;}.report-ad,.report-ad__link,.report-ad__link:hover,.report-ad__link:visited,.report-ad__link:visited:hover {color: #666666 !important;}.result__date {color: #eeeeee !important;}.result__url,.result__url:visited,.result__url:active,.result__url:hover,.result__url:focus,.result__url:visited:focus,.result__url__full,.result__url__full:visited,.result__url__full:active,.result__url__full:hover,.result__url__full:focus,.result__url__full:visited:focus,.result--ad .result__url,.result--ad .result__url:hover,.result--ad .result__url:active,.result--ad .result__url:visited {color: #cccccc;}.badge--ad--inline,.badge--ad--inline:hover,.badge--ad--inline:focus {color: #cccccc;border-color: #cccccc;}.is-link-style-exp .result__url,.is-link-style-exp .result__url:visited,.is-link-style-exp .result__url:active,.is-link-style-exp .result__url:hover,.is-link-style-exp .result__url:focus,.is-link-style-exp .result__url:visited:focus,.is-link-style-exp .result__url__full,.is-link-style-exp .result__url__full:visited,.is-link-style-exp .result__url__full:active,.is-link-style-exp .result__url__full:hover,.is-link-style-exp .result__url__full:focus,.is-link-style-exp .result__url__full:visited:focus,.is-link-style-exp .result--ad .result__url,.is-link-style-exp .result--ad .result__url:hover,.is-link-style-exp .result--ad .result__url:active,.is-link-style-exp .result--ad .result__url:visited {color: #cccccc !important;}.msg--result.highlight,.msg--box,.about-info-box__toggle--hover .about-info-box__toggle__chevron,.about-info-box__toggle--hover .about-info-box__toggle__chevron--collapse {background: #333333;}.results--main .result.result--ad.highlight {border: none;}.result.result--ad.highlight {background: none;}.sitelinks_td.highlight {border-left-color: #333333;}.msg--bang__bang-name {color: #cccccc;background-color: #282828;border-color: #161616;}.msg--bang__bangs-link,.msg--bang__bangs-link:hover,.msg--bang__bangs-link:visited,.msg--bang__bangs-link:active,.msg--spelling a,.msg--spelling a:visited,.msg--spelling a:hover,.msg--spelling a:active,.msg--site a,.msg--site a:visited,.msg--site a:hover,.msg--site a:active {color: #eeeeee;}.msg__site,.msg__clear-filter,.msg__clear-filter:hover {color: #cccccc;}</style><style>.result a.result__a,.result a.result__a:hover,.result a.result__a:active,.result a.badge--ad,.result a.badge--ad:hover,.result a.badge--ad:focus,.sitelinks__title a.result__a,.sitelinks__title a.result__a:hover,.sitelinks__title a.result__a:active,.msg__all,.msg__all:visited,.msg__all:hover,.msg__clear,.msg__clear:active,.msg__clear:hover,.msg__clear:visited,.msg--spelling :link,.msg--spelling a:visited,.msg--spelling a:hover,.module__link,.module__link:hover,.module__link:focus,.module__link:active,.module__link a,.module__link a:hover,.module__link a:focus,.module__link a:active,.module--carousel__body__title,.module--carousel__body__title:active,.module--carousel__body__title:hover,.module--carousel__body__title:focus,.module--carousel__more,.module--carousel__more:active,.module--carousel__more:hover,.no-results__link,.no-results__link:visited,.no-results__link:active,.no-results__link:hover,.about-info-box__link-row__link:hover,.about-info-box__link-row__link:active {color: #adc2fc;}.result a.badge--ad,.result a.badge--ad:hover,.result a.badge--ad:focus {border-color: #adc2fc;}</style><style>.result__snippet,.result__snippet b,.sitelink--small__separator {color: #cccccc !important;}.report-ad__start {border-color: #333333;}.report-ad,.report-ad__link,.report-ad__link:hover,.report-ad__link:visited,.report-ad__link:visited:hover {color: !important;}.result__date {color: !important;}</style><style>.results a.result__a:visited,.module--news__body__title:visited,.module__link:visited, .module__link:visited:hover,.module__link a:visited, .module__link a:visited:hover{ color:#a591dc;}</style><style>.result__url,.result__url:visited,.result__url:active,.result__url:hover,.result__url:focus,.result__url:visited:focus,.result__url__full,.result__url__full:visited,.result__url__full:active,.result__url__full:hover,.result__url__full:focus,.result__url__full:visited:focus,.result--ad .result__url,.result--ad .result__url:hover,.result--ad .result__url:active,.result--ad .result__url:visited {color: #cccccc;}.badge--ad--inline,.badge--ad--inline:hover,.badge--ad--inline:focus {color: #cccccc;border-color: #cccccc;}.is-link-style-exp .result__url,.is-link-style-exp .result__url:visited,.is-link-style-exp .result__url:active,.is-link-style-exp .result__url:hover,.is-link-style-exp .result__url:focus,.is-link-style-exp .result__url:visited:focus,.is-link-style-exp .result__url__full,.is-link-style-exp .result__url__full:visited,.is-link-style-exp .result__url__full:active,.is-link-style-exp .result__url__full:hover,.is-link-style-exp .result__url__full:focus,.is-link-style-exp .result__url__full:visited:focus,.is-link-style-exp .result--ad .result__url,.is-link-style-exp .result--ad .result__url:hover,.is-link-style-exp .result--ad .result__url:active,.is-link-style-exp .result--ad .result__url:visited {color: #cccccc !important;}</style><style>.module:not(.module--carousel):not(.module--placeholder):not(.module--translations):not(.module__chromeless),.modal--popout .modal__box,.modal__box,.sidebar-modules .module,.results--main .result:not(.result--ad).highlight,.module .module--carousel__item,.user-loc-cta,.address-detail,.modal--dropdown.modal--popout .modal__box,.tile--info,.place-detail,.badge-link,.atb-banner__bottom,.multi-step-mobile-onboarding__step__content,.is-mobile .results_links_deep,.is-mobile .results_links,.is-mobile .related-searches,.user-loc-tooltip,.anomaly-modal__modal {border: 1px solid #282828;background: #282828;box-shadow: 0 1px 3px rgba(0,0,0,0.5);color: #cccccc;}.forecast-wrapper .module--forecast .module__items-item {background: #282828;}.multi-step-mobile-onboarding__step__content {border-width: 0;}.multi-step-mobile-onboarding__progress__fallback-bar {background-color: #282828 !important;}.vertical--map__sidebar__results__inner {border: 1px solid #282828;background: #282828;color: #cccccc;}.place-detail {border: none;}.address-detail {box-shadow: none;border-color: transparent;}.module--places-location {color: #eeeeee; }.dark-bg .module--places-location a {color: var(--sds-color-text-accent-01);}.dark-bg .module--places-location a.change-location-ghost-link {color: var(--sds-color-text-01);}.dark-bg .module--places-location .module--places-map-icon {fill: var(--sds-color-text-accent-01);}.dark-bg .module--places-location a:hover .module--places-map-icon {fill: #557FF3;}.dark-bg .module--places-location a:hover .module--places-map-ghost-icon {fill: var(--sds-color-text-01);}.vertical--map__search-examples,.vertical--map__search-web,.about-info-box__info-row,.is-mobile .related-searches__item,.module--places .module__places-more,.modal--dropdown.modal--dropdown--date .modal__footer,.modal--dropdown.modal--dropdown--license .modal__footer,.modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-table tbody,.modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .pika-single .pika-lendar {border-color: #333333;}.module--carousel__left,.module--carousel__right {background-color: #333333;box-shadow: 0 1px 3px 0 rgba(0,0,0,0.5);color: #eeeeee;border-color: #333333;}.module--carousel__left:hover,.module--carousel__right:hover,.tile__expand:hover {background-color: #444444;box-shadow: 0 1px 3px 0 rgba(0,0,0,0.5);border-color: #444444;color: #eeeeee;}.module__toggle,.tile__expand {background-color: #333333;color: #eeeeee;border-color: #282828;box-shadow: none;}.is-not-mobile-device .module__toggle:hover,.place-detail__cta-item:hover .place-detail__cta-icon {background-color: #444444;color: #cccccc;}.module__toggle--more::after, .ask-ai-chat-code::after {background: linear-gradient(rgba(40, 40, 40, 0), rgba(40, 40, 40, 1));}.is-mobile .module {border-color: transparent;}.module__text,.module--carousel__footer,.user-loc-cta__dismiss,.module__title__sub,.user-loc-content__addl-opts__title,.user-loc-content__addl-opts__subtitle,.module--carousel-autoads.bing.has-grid .module--carousel__item .module--carousel__body .module--carousel__body__pricing,.module--carousel-autoads.bing.has-grid .module--carousel__item .module--carousel__body .module--carousel__auto-ads-extra,.module--carousel-autoads.bing.has-grid .module--carousel__item .module--carousel__footer .module--carousel__gray-text {color: #cccccc;}.module--carousel-autoads.bing.has-grid .module--carousel__item .module--carousel__location {background: #1c1c1c;border-color: #1c1c1c;}.module--carousel-autoads.bing.has-grid .module--carousel__location img {filter: invert(1);}.tooltip.has-darker-background-dark-theme {background: #1c1c1c;}.tooltip--right.has-darker-background-dark-theme .tooltip__triangle-inner {border-right-color: #1c1c1c;}.tooltip--below.has-darker-background-dark-theme .tooltip__triangle-inner,.tooltip--mobile.has-darker-background-dark-theme .tooltip__triangle-inner {border-bottom-color: #1c1c1c;}.module__link,.module__link:visited,.module__link:hover,.module__link:focus,.module__link:active,.module__link a,.module__link a:visited,.module__link a:hover,.module__link a:focus,.module__link a:active,.about-profiles__link,.about-profiles__link:visited,.about-profiles__link:hover,.about-profiles__link:focus,.about-profiles__link:active,.modal--dropdown--settings .settings-dropdown--section .settings-dropdown--header .settings-dropdown--header--label,.multi-step-mobile-onboarding__step__content h2,.multi-step-mobile-onboarding__step__content__body,.multi-step-mobile-onboarding__progress label,.atb-banner__bottom .atb-banner__title,.atb-banner__bottom .atb-banner__link {color: #eeeeee !important;}.user-loc-link,.user-loc-link:visited,.user-loc-link:hover {color: #7295f6; }.multi-step-mobile-onboarding__close svg path {fill: #eeeeee !important;}.multi-step-mobile-onboarding__step__content header p,.multi-step-mobile-onboarding__step__content__body__remaining-items li a {color: #cccccc !important;}.multi-step-mobile-onboarding__step__content__body__remaining-items li a i {background-color: #333333 !important;}.module__nav__item.is-active {border-bottom-color: #cccccc;}.tile {content:"";box-shadow: 0 1px 3px 0 rgba(0,0,0,0.5);border-color: #282828;background: #282828;}.tile .tile__body,.metabar.is-stuck.has-ebi .explore-by-items a {border-color: #282828;background: #282828;}.tile .tile__title,.user-loc-badge__btn,.metabar.is-stuck.has-ebi .explore-by-items a {color: #eeeeee;}.modal .frm__select {border-color: transparent;}.modal .frm__select,.modal .frm__select select,.modal .frm__text,.modal .frm__input,.modal--dropdown--region .modal__list__divider,.modal--dropdown--privacy-reminder .modal__list__divider {resize: none;border-color: transparent;background: #333333;color: #eeeeee;}.user-loc-survey-reason__comment {border-color: transparent;background-color: #333333;color: #eeeeee;}.module--carousel__image-wrapper {background: #333333;}.user-loc-tooltip__address,.modal__header {background: #333333;}.modal__header,.module__section,.module__section:first-child.place-detail__section--tab,.module__clickable-header {border-color: #333333;}.modal .frm__select:after {color: #eeeeee;}.faq__section,.faq__section:last-child,.modal--dropdown--settings .settings-dropdown--section,.user-loc-content__addl-opts a {border-color: #333333;}.modal--dropdown--settings .settings-dropdown--section .frm__field .frm__select select {background: #282828;}.modal--dropdown--settings .settings-dropdown--section .settings-dropdown--header .settings-dropdown--header--link,.modal--dropdown--settings .settings-dropdown--section .settings-dropdown--link {color: #7295f6; ;}.modal__box.modal__box--custom_date.modal__box--headed .modal__box__content .custom_date__fields .custom_date__input {background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAV5JREFUKJGVkL9KA0EQxr/ZvT0Rcr3gMwQSNi9wKFhZ5gmC/zp7WyVdtLKwEQubNLYKynVpdielWqYRIWCVFLLe3ViYkyCYkK+ZYfb7zcwOMBMzn2KJ5j3kvb8A8CkiW0T0tAisPCKyBufcOQA45w6WTaw8zrlz8t5fxnF8sgyaVwjhLAJQDyHsrwICqIOZe/OVwWCwDgDee5NlWTRfqyIz99TfVsaYa2a2AA6TJDliZmuMuc6yLIrj2IsIoaJXXBPM3IsAQESImR8nk8lOrVa7UEpdAbAAQETDoij2ptPpcZIkD9ba7eFwCDV7FK11J03T3BjTFZEXpdSdUuquLMtnY0w3TdNca90hIgHwA4oIFUXR6ff7Os/zXa31Zp7nLRGxrVbrq9FovAFAs9kcVev+TiSi13a7XRLRKIQwUUqNy7Ic//fPqEqstbez9H4WPxYdiLz3NwDeVzgqAGx8Aw2hohTpNDNzAAAAAElFTkSuQmCC');}.vertical--map__sidebar__wrapper,.is-mobile-device .vertical--map__sidebar--normal .vertical--map__sidebar-mask {background: #282828;}.user-loc-tooltip, .tooltip {color: #eeeeee;border-color: #333333;background: #282828;}.user-loc-tile {background: #444444;color: #eeeeee;}.user-loc-tile:hover,.user-loc-badge__btn {background: #666666;}.user-loc-badge__desc {text-shadow: -1px -1px 0.5px #282828, 1px -1px 0.5px #282828, -1px 1px 0.5px #282828, 1px 1px 0.5px #282828;}.tooltip--mobile .tooltip__triangle-outer,.tooltip--below .tooltip__triangle-outer,.user-loc-tooltip--below .user-loc-tooltip__triangle-outer,.user-loc-tooltip--below-right .user-loc-tooltip__triangle-outer,.user-loc-tooltip--below-left .user-loc-tooltip__triangle-outer {border-bottom-color: #333333;}.tooltip--mobile .tooltip__triangle-inner,.tooltip--below .tooltip__triangle-inner,.user-loc-tooltip--below .user-loc-tooltip__triangle-inner,.user-loc-tooltip--below-right .user-loc-tooltip__triangle-inner,.user-loc-tooltip--below-left .user-loc-tooltip__triangle-inner {border-bottom-color: #282828;}.tooltip--right .tooltip__triangle-outer {border-right-color: #333333;}.tooltip--right .tooltip__triangle-inner {border-right-color: #282828;}.user-loc-tooltip__err-img-container div {background-image: url("/assets/location_help/location-help--dark.svg");}.set-themes .set-theme.is-checked {border-color: #282828;}.set-themes .set-theme[for=setting_kae_-1] {border-color: transparent;}.module--translations,.module--translations .module--translations-original textarea {background: none;box-shadow: none;}.module--translations .dropdown--translation-select,.module--translations .module--translations-translatedtext,.module--translations .module--translations-length {background: #282828;border: 0;}.module--translations-footer a,.module--translations-footer a:visited {color: #666666;}.module--translations .dropdown--translation-select,.module--translations .module--translations-original textarea,.module--translations .module--translations-translatedtext,.module--translations .module--translations-translatedtext.module--translations-error,.module--translations .module--translations-length,.module--translations-footer a:hover,.module--translations-footer a:active,.module--translations .module--translations-copy:hover,.module--translations .module--translations-swap:hover,.module--translations .module--translations-clear:hover,.module--translations .module--translations-copy:active,.module--translations .module--translations-swap:active,.module--translations .module--translations-clear:active {color: #eeeeee;}.module--translations .module--translations-swap .module--translations-swap-svg:hover,.module--translations .module--translations-swap .module--translations-swap-svg:active{fill: #eeeeee;}.module--translations .module--translations-original textarea::placeholder,.module--translations .module--translations-translatedtext.is-placeholder,.module--translations .module--translations-copy,.module--translations .module--translations-swap,.module--translations .module--translations-clear {color: #cccccc;}.module--translations .module--translations-swap .module--translations-swap-svg{fill: #cccccc;}.modal__list__filter {border-bottom: 1px solid #333333;}.modal--dropdown--translation .modal__list li.modal__list__divider,.modal--dropdown--translation .modal__list .is-active {background: #333333;}.modal__list__filter input {background: #282828;box-shadow: none;color: #cccccc;}.modal__list__filter input::placeholder,.modal__list__filter input::-webkit-placeholder,.modal__list__filter::before {color: #666666;}.ia-module--definitions,.ia-module--definitions .module--definitions__definition,.ia-module--definitions .module--definitions__pronunciation,.ia-module--definitions .module--definitions__part-of-speech,.ia-module--definitions .module__title {color: #eeeeee;}.ia-module--definitions .module--definitions__synonym {color: #eeeeee;background-color: rgba(255, 255, 255, 0.18);}.ia-module--definitions .module--definitions__synonym:hover {color: #eeeeee;background-color: rgba(255, 255, 255, 0.30);}.ia-module--definitions .play-btn__icn_hollow,.ia-module--definitions .play-btn__icn_filled {fill: #eeeeee;}.ia-module--definitions .module--definitions__group ol li a.module--definitions__reference,.ia-module--definitions .module--definitions__collapsed-group ol li a.module--definitions__reference {color: #769dff; // new UX link color in dark mode}.ia-module--definitions .module--definitions__attribution .module--definitions__attribution-text {color: #cccccc;}.ia-module--definitions .module__attribution {color: #ccc;}.ia-module--definitions .module__attribution-link {color: #aaa;}.ia-module--definitions .module__attribution-link:hover {color: #ccc;}.ia-module--sports .sports-module__controls__dropdown .dropdown {border: none;background-color: #333333;}.ia-module--sports .standings__tab.selected {border-bottom-color: #eeeeee;}.ia-module--stocks .module__title,.ia-module--stocks .stocks-module__latestUpdate,.ia-module--stocks .stocks-module__exchange,.ia-module--stocks .stocks-module__currentPrice,.ia-module--stocks .stocks-module__currency,.ia-module--stocks .stocks-module__timePeriod,.ia-module--stocks .stocks-module__chart-area-row .stocks-module__vertical-labels,.ia-module--stocks .stocks-module__horizontal-labels,.ia-module--stocks .stocks-module__stats-wrapper .stocks-module__stats,.ia-module--stocks .stocks-module__chart .stocks-module__placeholder-message,.ia-module--sports a,.ia-module--sports .sports-module__league-link,.ia-module--sports .sports-module__header,.ia-module--sports .sports-module__tab,.ia-module--sports .sports-module__controls__dropdown .dropdown__button,.ia-module--sports .standings__conference__list th:nth-child(1),.ia-module--sports .game-card,.ia-module--sports .game-card .game-card__quarters,.ia-module--sports .game-card .game-card__status__datetime {color: #eeeeee;}.ia-module--stocks .stocks-module__stats-wrapper .stocks-module__stats .stocks-module__stat-col .stocks-module__stat,.ia-module--sports .matchup .matchup__item,.ia-module--sports .standings__conference__list td {border-bottom-color: #666666;}.ia-module--sports .game-card .game-card__scores,.ia-module--sports .game-card .game-card__team {border-color: #666666;}.ia-module--stocks .stocks-module__footer,.ia-module--stocks .stocks-module__stat-disclaimer,.ia-module--stocks a.stocks-module__attribution,.ia-module--sports a:hover,.ia-module--sports .sports-module__footer,.ia-module--sports .sports-module__footer a {color: #cccccc;}.ia-module--stocks .stocks-module__chart-placeholder .stocks-module__placeholder-message,.ia-module--sports .matchup .matchup__item:hover,.ia-module--sports .standings__conference__list tbody tr:hover {background-color: #333333;}.ia-module--stocks .stocks-module__chart-area-row .stocks-module__chart .horizontal-line,.ia-module--stocks .stocks-module__chart-area-row .stocks-module__chart .vertical-line {stroke: #444444;}.is-mobile .ia-module--stocks .stocks-module__range-wrapper .stocks-module__range-fade {background-image: linear-gradient(90deg, rgba(40, 40, 40, 0), rgba(40, 40, 40, 1));}.ia-module--stocks .stocks-module__range .stocks-module__timePeriod,.ia-module--sports .sports-module__tab,.ia-module--sports .game-card .game-card__status__datetime {background-color: #4f4f4f;}.ia-module--stocks .stocks-module__range .stocks-module__timePeriod.selected,.ia-module--sports .sports-module__tab.selected {color: #222;background-color: #eaeaea;}.ia-module--sports .sports-module__tab:not(.selected):hover,.ia-module--stocks .stocks-module__range .stocks-module__timePeriod:not(.selected):hover {background-color: #696969;}.module.ia-module-covid .module__overflow {background: linear-gradient(90deg, rgba(40, 40, 40, 0), rgba(40, 40, 40, 1));}.module.ia-module-covid .module__grey {border-top: 1px solid #333333;}.module.ia-module-covid .covid__table tr {border-bottom: 1px solid #333333;}.module.ia-module-covid .covid__table th {color: #666666;}.dark-bg .module.ia-module-covid .covid__table th {color: #eeeeee84;}.module.ia-module-covid .covid19__footer,.module.ia-module-covid .covid19__footer__separator,.module.ia-module-covid .covid19__footer a {color: #666666;}.module.ia-module-covid .covid19__footer a:hover,.module.ia-module-covid .covid19__footer a:active {color: #eeeeee;}@media only screen and (max-width: 864px) {.dark-bg .module--translations {border-width: 0;box-shadow: 0 1px 3px rgba(0,0,0,0.5);padding-top: 40px;}.dark-bg .module--translations-original {background: #282828;}.dark-bg .module--translations-translatedtext,.dark-bg .module--translations .dropdown,.dark-bg .module--translations-swap {background: #333333;border-bottom-color: #333333;border-width: 0;}.translations-wrapper::after {background: linear-gradient(to top, #1c1c1cE5, #1c1c1c00);}.module--translations::after {background: linear-gradient(to top, #282828E5, #28282800);}.dark-bg .translations-wrapper::after {background: linear-gradient(to top, #282828E5, #28282800);bottom: 259px;}.dark-bg .module--translations::after {background: linear-gradient(to top, #333333E5, #33333300);}.modal--popover .modal__list__filter input {background: #333333;border-width: 0;}.modal--popover .modal__list__filter input {color: #cccccc;}}.module__inner-toggle .module__inner-toggle--chevron {color: #eeeeee;border: none;background-color: #333333;box-shadow: 0 1px 3px 0 rgba(0,0,0,0.5);color: #eeeeee;border-color: #333333;}.module__inner-toggle .module__inner-toggle--chevron:hover {background-color: #444444;border-color: #444444;}.module__inner-toggle::before, .module__inner-toggle::after {background-color: #444444; }.module--lyrics .module--lyrics__subtitle-box {border-color: #444444; }.module--lyrics:not(.is-expanded) .module--lyrics__footer.can-expand::after {background: linear-gradient(rgba(40, 40, 40, 0), #282828);}.set-head__menu .set-tab, .set-tab:visited {background-color: #444444; color: #EEE; }.set-head__menu .set-tab:hover {background-color: rgba(255, 255, 255, 0.30);color: #EEE; }.set-head__menu .set-tab.is-active {background-color: #EEE; color: #222; }.settings-page-wrapper .is-checked .frm__switch__label, .settings-page-wrapper .btn--primary, .settings-page-wrapper .set-theme.is-checked .set-theme__check {background-color: #7295f6; border-color: #7295f6; }.settings-page-wrapper .is-checked .frm__switch__label:hover, .settings-page-wrapper .btn--primary:hover, .settings-page-wrapper .set-theme.is-checked:hover .set-theme__check {background-color: #557ff3; border-color: #557ff3; }.settings-page-wrapper a:not(.btn):not(.set-tab){color: #7295f6; }.settings-page-wrapper a:not(.btn):not(.set-tab):hover{color: #557ff3; }.feedback-modal__duckassist-settings-link a, .feedback-modal__duckassist-settings-link a:visited {color: #7295f6; }.feedback-modal__duckassist-settings-link a:hover {color: #557ff3; }.atb-banner__bottom .atb-banner__close {color: hsla(0,0%,100%,0.6);}.atb-banner__bottom .atb-banner__title,.atb-banner__checklist ul li {color: #fff !important;}.atb-banner__bottom a.atb-banner__btn {background-color: #7295f6;color: #222;}.atb-banner__bottom .check-icon,.atb-banner__bottom .atb-banner__link {color: #7295f6 !important;}.set-main .domain-list {border-color: #282828;background: #282828;}.set-main .domain-list:empty::after {color: #cccccc;background: #333333;}.set-main .domain-item {border-bottom-color: #333333;}.set-main .domain-item:hover {background-color: #333333;}.set-main .domain-name {color: #eeeeee;}.set-main .domain-remove-btn {background-color: #333333;border-color: #282828;color: #eeeeee;}.set-main .domain-remove-btn:hover {background-color: #444444;border-color: #444444;color: #eeeeee;}</style><style>.msg--spelling :link,.msg--spelling :visited,.msg--spelling a:hover,.msg__clear,.msg__clear:hover,.msg__all,.msg__all:visited {color: #eeeeee !important;}</style><div class="TccjmKV6RraCaCw5L9gd"><span data-testid="feedback-prompt"><span class="VYRn0PqcTApLnWYi0GKA"><button type="button" class="ffON2NH02oMAcqyoh2UU hUUdRtuaOUx7mcSwc56s WktWJWUFfihMbuzAEqk2">Share Feedback</button></span></span></div><div class="iqWauQNeRzJ1Ot90nG8b"><div class="BEgMhHlL4pzYLkyLJv4B SzPW9boEgn116L6lq3RA"><header class="Fe7JdhVTO1JKVRlHT8gi"><span class="t5_JGL0gn0OZYrLgkYOJ">Custom date range</span><span class="DZHFpq3rUWEmzHu77zlF">X</span></header><div class="YZqM_sNA5T5wRIPK_wCK"></div></div></div><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><span data-testid="feedback-prompt"><span style="visibility: hidden; width: 0px; height: 0px;"></span></span><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></body></html>