curl/docs
Daniel Stenberg e3f335148a
websockets: remodeled API to support 63 bit frame sizes
curl_ws_recv() now receives data to fill up the provided buffer, but can
return a partial fragment. The function now also get a pointer to a
curl_ws_frame struct with metadata that also mentions the offset and
total size of the fragment (of which you might be receiving a smaller
piece). This way, large incoming fragments will be "streamed" to the
application. When the curl_ws_frame struct field 'bytesleft' is 0, the
final fragment piece has been delivered.

curl_ws_recv() was also adjusted to work with a buffer size smaller than
the fragment size. (Possibly needless to say as the fragment size can
now be 63 bit large).

curl_ws_send() now supports sending a piece of a fragment, in a
streaming manner, in addition to sending the entire fragment in a single
call if it is small enough. To send a huge fragment, curl_ws_send() can
be used to send it in many small calls by first telling libcurl about
the total expected fragment size, and then send the payload in N number
of separate invokes and libcurl will stream those over the wire.

The struct curl_ws_meta() returns is now called 'curl_ws_frame' and it
has been extended with two new fields: *offset* and *bytesleft*. To help
describe the passed on data chunk when a fragment is delivered in many
smaller pieces.

The documentation has been updated accordingly.

Closes #9636
2022-10-07 12:50:58 +02:00
..
cmdline-opts misc: fix spelling in docs and comments 2022-10-05 16:12:10 +02:00
examples docs/examples: avoid deprecated options in examples where possible 2022-10-07 09:46:25 +02:00
libcurl websockets: remodeled API to support 63 bit frame sizes 2022-10-07 12:50:58 +02:00
.gitignore
ALTSVC.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
BINDINGS.md docs: update sourceforge project links [ci skip] 2022-10-01 18:40:47 +00:00
BUFREF.md docs: spellfixes 2022-09-21 15:20:08 +02:00
BUG-BOUNTY.md
BUGS.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
CHECKSRC.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CIPHERS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CMakeLists.txt
CODE_OF_CONDUCT.md
CODE_REVIEW.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CODE_STYLE.md
CONTRIBUTE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
curl-config.1 docs: spellfixes 2022-09-21 15:20:08 +02:00
CURL-DISABLE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
DEPRECATE.md configure: deprecate builds with small curl_off_t 2022-09-28 08:19:06 +02:00
DYNBUF.md docs: spellfixes 2022-09-21 15:20:08 +02:00
EXPERIMENTAL.md docs: spellfixes 2022-09-21 15:20:08 +02:00
FAQ docs: spelling nits 2022-09-29 21:29:04 +00:00
FEATURES.md docs: spellfixes 2022-09-21 15:20:08 +02:00
GOVERNANCE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HELP-US.md
HISTORY.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HSTS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HTTP2.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HTTP3.md HTTP3.md: update Caddy example 2022-09-30 08:21:15 +02:00
HTTP-COOKIES.md docs: spellfixes 2022-09-21 15:20:08 +02:00
HYPER.md
INSTALL
INSTALL.cmake
INSTALL.md Makefile.m32: major rework [ci skip] 2022-10-03 19:46:56 +00:00
INTERNALS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
KNOWN_BUGS docs: spellfixes 2022-09-21 15:20:08 +02:00
MAIL-ETIQUETTE
Makefile.am docs: use "WebSocket" in singular 2022-09-13 10:04:46 +02:00
MANUAL.md docs: spellfixes 2022-09-21 15:20:08 +02:00
mk-ca-bundle.1 docs: spellfixes 2022-09-21 15:20:08 +02:00
MQTT.md
NEW-PROTOCOL.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
options-in-versions
PARALLEL-TRANSFERS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
README.md
RELEASE-PROCEDURE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
ROADMAP.md
RUSTLS.md
SECURITY-PROCESS.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
SSL-PROBLEMS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
SSLCERTS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
THANKS
THANKS-filter
TheArtOfHttpScripting.md docs: spellfixes 2022-09-21 15:20:08 +02:00
TODO TODO: Provide the error body from a CONNECT response 2022-09-23 23:31:08 +02:00
URL-SYNTAX.md docs: spellfixes 2022-09-21 15:20:08 +02:00
VERSIONS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
WEBSOCKET.md docs: spellfixes 2022-09-21 15:20:08 +02:00

curl logo

Documentation

you will find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.

If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.