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 copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
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 BUG-BOUNTY.md: mention the audit exception 2022-05-19 11:14:54 +02:00
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 copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CODE_OF_CONDUCT.md docs: Update to secure URL versions 2017-09-04 14:08:54 +00:00
CODE_REVIEW.md docs: spellfixes 2022-09-21 15:20:08 +02:00
CODE_STYLE.md scripts: move three scripts from lib/ to scripts/ 2022-03-23 15:26:11 +01:00
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 docs: grammar proofread, typo fixes 2022-01-30 12:06:05 +01:00
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 misc: use "autoreconf -fi" instead buildconf 2022-05-02 17:53:06 +02:00
INSTALL INSTALL: converted to markdown => INSTALL.md 2016-10-21 15:57:29 +02:00
INSTALL.cmake docs: reduce/avoid English contractions 2021-11-07 23:16:27 +01:00
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 docs: remove him/her/he/she from documentation 2022-07-27 13:52:53 +02:00
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 docs: reduce/avoid English contractions 2021-11-07 23:16:27 +01:00
NEW-PROTOCOL.md docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
options-in-versions curl: add --rate to set max request rate per time unit 2022-05-23 17:59:56 +02:00
PARALLEL-TRANSFERS.md docs: spellfixes 2022-09-21 15:20:08 +02:00
README.md docs: reduce/avoid English contractions 2021-11-07 23:16:27 +01:00
RELEASE-PROCEDURE.md docs: spellfixes 2022-09-21 15:20:08 +02:00
ROADMAP.md docs: update IETF links to use datatracker 2022-01-21 23:06:36 +01:00
RUSTLS.md misc: use "autoreconf -fi" instead buildconf 2022-05-02 17:53:06 +02:00
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: add contributors from the 7.85.0 release 2022-08-31 08:09:21 +02:00
THANKS-filter THANKS: merged two entries for Evgeny Grin 2022-07-01 09:49:14 +02:00
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.