- 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
25 lines
262 KiB
HTML
25 lines
262 KiB
HTML
<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: "DuckSansProduct", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", sans-serif; --sds-font-family-monospace: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro","Fira Mono", "Droid Sans Mono", "Courier New", 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: "DuckSansProduct", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", sans-serif; --default-font: "DuckSansProduct", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", 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&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&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&biaexp=b&eclsexp=a&litexp=c&msvrtexp=b&searchbarexp=b&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&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&ia=images&iax=images">Images</a></li><li><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&ia=videos&iax=videos">Videos</a></li><li><a class="kFFXe30DOpq5j1hbWU1q wZ4JdaHxSAhGy1HoNVja d26Geqs1C__RaCO7MUs2" href="/?q=rust+tokio+async+streaming+chunked+responses+backpressure+best+practices+2024&ia=news&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&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&ia=shopping&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&ia=web&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&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> › 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> › 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> › 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> › 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> › 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> › 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> › 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> › 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> › 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> › 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&pt=866401&mt=8&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&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">What’s 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> |