dwww Home | Manual pages | Find package

CURLOPT_STREAM_WEIGHT(3)    Library Functions Manual   CURLOPT_STREAM_WEIGHT(3)

NAME
       CURLOPT_STREAM_WEIGHT - numerical stream weight

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_WEIGHT, long weight);

DESCRIPTION
       Set the long weight to a number between 1 and 256.

       When  using HTTP/2, this option sets the individual weight for this par-
       ticular stream used by the easy handle. Setting and using  weights  only
       makes sense and is only usable when doing multiple streams over the same
       connections, which thus implies that you use CURLMOPT_PIPELINING(3).

       This  option  can  be  set during transfer and causes the updated weight
       info get sent to the server the next time an HTTP/2 frame is sent to the
       server.

       See section 5.3 of RFC 7540 for protocol details.

       Streams with the same parent should be allocated  resources  proportion-
       ally based on their weight. If you have two streams going, stream A with
       weight  16 and stream B with weight 32, stream B gets two thirds (32/48)
       of the available bandwidth (assuming the server can send  off  the  data
       equally for both streams).

DEFAULT
       16

PROTOCOLS
       This functionality affects http only

EXAMPLE
       int main(void)
       {
         CURL *curl = curl_easy_init();
         CURL *curl2 = curl_easy_init(); /* a second handle */
         if(curl) {
           curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/one");
           curl_easy_setopt(curl, CURLOPT_STREAM_WEIGHT, 10L);

           /* the second has twice the weight */
           curl_easy_setopt(curl2, CURLOPT_URL, "https://example.com/two");
           curl_easy_setopt(curl2, CURLOPT_STREAM_WEIGHT, 20L);

           /* then add both to a multi handle and transfer them */
         }
       }

AVAILABILITY
       Added in curl 7.46.0

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK  (0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLMOPT_PIPELINING(3), CURLOPT_PIPEWAIT(3),  CURLOPT_STREAM_DEPENDS(3),
       CURLOPT_STREAM_DEPENDS_E(3)

libcurl                            2026-07-12          CURLOPT_STREAM_WEIGHT(3)

Generated by dwww version 1.16 on Sat Oct 3 05:46:17 CEST 2026.