mirror of
https://github.com/curl/curl.git
synced 2026-04-14 21:31:42 +03:00
rtmp: drop support
- librtmp has no test cases, makes no proper releases and has not had a single commit within the last year - librtmp parses the URL itself and requires non-compliant URLs for this - we have no RTMP tests - RTMP was used by 2.2% of curl users (self-identified in the 2025 survey) Closes #20673
This commit is contained in:
parent
ff28f67970
commit
ceae02db04
37 changed files with 82 additions and 740 deletions
|
|
@ -16,18 +16,6 @@ how your use case cannot be satisfied properly using a workaround.
|
|||
|
||||
In March 2026, we drop support for all c-ares versions before 1.16.0.
|
||||
|
||||
## RTMP
|
||||
|
||||
RTMP in curl is powered by the 3rd party library librtmp.
|
||||
|
||||
- RTMP is barely used by curl users (2.2% in the 2025 survey)
|
||||
- librtmp has no test cases, makes no proper releases and has not had a single
|
||||
commit within the last year
|
||||
- librtmp parses the URL itself and requires non-compliant URLs for this
|
||||
- we have no RTMP tests
|
||||
|
||||
Support for RTMP in libcurl gets removed in April 2026.
|
||||
|
||||
## TLS-SRP Authentication
|
||||
|
||||
Transport Layer Security Secure Remote Password is a TLS feature that does not
|
||||
|
|
@ -73,3 +61,5 @@ After curl 8.19.0 NTLM support becomes opt-in.
|
|||
- Support for Windows XP (removed in 8.19.0)
|
||||
- OpenSSL-QUIC (removed in 8.19.0)
|
||||
- CMake 3.17 and older (removed in 8.20.0)
|
||||
- RTMP (removed in 8.20.0)
|
||||
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ The curl project produces two products:
|
|||
### libcurl
|
||||
|
||||
A client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER,
|
||||
GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTMP,
|
||||
RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
|
||||
GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S,
|
||||
RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
|
||||
|
||||
libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading,
|
||||
Kerberos, SPNEGO, HTTP form based upload, proxies, cookies, user+password
|
||||
|
|
|
|||
|
|
@ -493,3 +493,7 @@ We drop support for krb-ftp, Heimdal, wolfSSH and the winbuild build system.
|
|||
Add support for Apple SecTrust, native CA certs on Apple systems.
|
||||
|
||||
December 15: the website served 78 TB over the last month.
|
||||
|
||||
## 2026
|
||||
|
||||
April: removed support for RTMP
|
||||
|
|
|
|||
|
|
@ -367,7 +367,6 @@ Details via CMake
|
|||
- `USE_APPLE_IDN`: Use Apple built-in IDN support. Default: `OFF`
|
||||
- `USE_APPLE_SECTRUST`: Use Apple OS-native certificate verification. Default: `OFF`
|
||||
- `USE_LIBIDN2`: Use libidn2 for IDN support. Default: `ON`
|
||||
- `USE_LIBRTMP`: Enable librtmp from rtmpdump. Default: `OFF`
|
||||
- `USE_NGHTTP2`: Use nghttp2 library. Default: `ON`
|
||||
- `USE_NGTCP2`: Use ngtcp2 and nghttp3 libraries for HTTP/3 support. Default: `OFF`
|
||||
- `USE_QUICHE`: Use quiche library for HTTP/3 support. Default: `OFF`
|
||||
|
|
@ -418,8 +417,6 @@ Details via CMake
|
|||
- `LIBIDN2_LIBRARY`: Absolute path to `libidn2` library.
|
||||
- `LIBPSL_INCLUDE_DIR`: Absolute path to libpsl include directory.
|
||||
- `LIBPSL_LIBRARY`: Absolute path to `libpsl` library.
|
||||
- `LIBRTMP_INCLUDE_DIR`: Absolute path to librtmp include directory.
|
||||
- `LIBRTMP_LIBRARY`: Absolute path to `librtmp` library.
|
||||
- `LIBSSH_INCLUDE_DIR`: Absolute path to libssh include directory.
|
||||
- `LIBSSH_LIBRARY`: Absolute path to `libssh` library.
|
||||
- `LIBSSH_USE_STATIC_LIBS`: Configure for static libssh libraries. (experimental)
|
||||
|
|
|
|||
|
|
@ -623,7 +623,6 @@ disabling support for some features (run `./configure --help` to see them all):
|
|||
- `--without-ngtcp2` (HTTP/2 using ngtcp2)
|
||||
- `--without-zstd` (Zstd on-the-fly decompression)
|
||||
- `--without-libidn2` (internationalized domain names)
|
||||
- `--without-librtmp` (RTMP)
|
||||
- `--without-ssl` (SSL/TLS)
|
||||
- `--without-zlib` (gzip/deflate on-the-fly decompression)
|
||||
|
||||
|
|
|
|||
|
|
@ -141,9 +141,8 @@ curl supports the following schemes on URLs specified to transfer. They are
|
|||
matched case insensitively:
|
||||
|
||||
`dict`, `file`, `ftp`, `ftps`, `gopher`, `gophers`, `http`, `https`, `imap`,
|
||||
`imaps`, `ldap`, `ldaps`, `mqtt`, `pop3`, `pop3s`, `rtmp`, `rtmpe`, `rtmps`,
|
||||
`rtmpt`, `rtmpte`, `rtmpts`, `rtsp`, `smb`, `smbs`, `smtp`, `smtps`, `telnet`,
|
||||
`tftp`
|
||||
`imaps`, `ldap`, `ldaps`, `mqtt`, `pop3`, `pop3s`, `rtsp`, `smb`, `smbs`,
|
||||
`smtp`, `smtps`, `telnet`, `tftp`
|
||||
|
||||
When the URL is specified to identify a proxy, curl recognizes the following
|
||||
schemes:
|
||||
|
|
@ -209,10 +208,9 @@ only if the URL starts with a scheme.
|
|||
If the port number is not specified in the URL, curl uses a default port
|
||||
number based on the provide scheme:
|
||||
|
||||
DICT 2628, FTP 21, FTPS 990, GOPHER 70, GOPHERS 70, HTTP 80, HTTPS 443,
|
||||
IMAP 143, IMAPS 993, LDAP 389, LDAPS 636, MQTT 1883, POP3 110, POP3S 995,
|
||||
RTMP 1935, RTMPS 443, RTMPT 80, RTSP 554, SCP 22, SFTP 22, SMB 445, SMBS 445,
|
||||
SMTP 25, SMTPS 465, TELNET 23, TFTP 69
|
||||
DICT 2628, FTP 21, FTPS 990, GOPHER 70, GOPHERS 70, HTTP 80, HTTPS 443, IMAP
|
||||
143, IMAPS 993, LDAP 389, LDAPS 636, MQTT 1883, POP3 110, POP3S 995, RTSP 554,
|
||||
SCP 22, SFTP 22, SMB 445, SMBS 445, SMTP 25, SMTPS 465, TELNET 23, TFTP 69
|
||||
|
||||
# Scheme specific behaviors
|
||||
|
||||
|
|
@ -381,15 +379,3 @@ machine's fully qualified domain name, which you might have obtained from an
|
|||
external function such as gethostname or getaddrinfo.
|
||||
|
||||
The default smtp port is 25. Some servers use port 587 as an alternative.
|
||||
|
||||
## RTMP
|
||||
|
||||
There is no official URL spec for RTMP so libcurl uses the URL syntax supported
|
||||
by the underlying librtmp library. It has a syntax where it wants a
|
||||
traditional URL, followed by a space and a series of space-separated
|
||||
`name=value` pairs.
|
||||
|
||||
While space is not typically a "legal" letter, libcurl accepts them. When a
|
||||
user wants to pass in a `#` (hash) character it is treated as a fragment and
|
||||
it gets cut off by libcurl if provided literally. You have to escape it by
|
||||
providing it as backslash and its ASCII value in hexadecimal: `\23`.
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
**curl** is a tool for transferring data from or to a server using URLs. It
|
||||
supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS,
|
||||
IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTMP, RTMPS, RTSP, SCP,
|
||||
SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
|
||||
IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB,
|
||||
SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
|
||||
|
||||
curl is powered by libcurl for all transfer-related features. See
|
||||
*libcurl(3)* for details.
|
||||
|
|
|
|||
|
|
@ -30,9 +30,6 @@ supported (yet).
|
|||
## POP3(S)
|
||||
Downloading from a pop3 server means getting an email. With or without using
|
||||
TLS.
|
||||
## RTMP(S)
|
||||
The **Realtime Messaging Protocol** is primarily used to serve streaming media
|
||||
and curl can download it.
|
||||
## RTSP
|
||||
curl supports RTSP 1.0 downloads.
|
||||
## SCP
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ set, it returns error.
|
|||
These are the available protocols:
|
||||
|
||||
DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,
|
||||
MQTT, MQTTS, POP3, POP3S, RTMP, RTMPE, RTMPS, RTMPT, RTMPTE, RTMPTS, RTSP,
|
||||
SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS, WSS
|
||||
MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET,
|
||||
TFTP, WS, WSS
|
||||
|
||||
You can set "ALL" as a short-cut to enable all protocols. Note that by setting
|
||||
all, you may enable protocols that were not supported the day you write this
|
||||
|
|
@ -81,6 +81,10 @@ int main(int argc, char **argv)
|
|||
}
|
||||
~~~
|
||||
|
||||
# HISTORY
|
||||
|
||||
RTMP and its related protocol schemes are not supported since curl 8.20.0
|
||||
|
||||
# %AVAILABILITY%
|
||||
|
||||
# RETURN VALUE
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@ By default libcurl allows HTTP, HTTPS, FTP and FTPS on redirects (since
|
|||
These are the available protocols:
|
||||
|
||||
DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,
|
||||
MQTT, MQTTS, POP3, POP3S, RTMP, RTMPE, RTMPS, RTMPT, RTMPTE, RTMPTS, RTSP,
|
||||
SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS, WSS
|
||||
MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET,
|
||||
TFTP, WS, WSS
|
||||
|
||||
You can set "ALL" as a short-cut to enable all protocols. Note that by setting
|
||||
all, you may enable protocols that were not supported the day you write this
|
||||
|
|
|
|||
|
|
@ -970,12 +970,12 @@ CURLPROTO_LDAPS 7.19.4
|
|||
CURLPROTO_MQTT 7.71.0
|
||||
CURLPROTO_POP3 7.20.0
|
||||
CURLPROTO_POP3S 7.20.0
|
||||
CURLPROTO_RTMP 7.21.0
|
||||
CURLPROTO_RTMPE 7.21.0
|
||||
CURLPROTO_RTMPS 7.21.0
|
||||
CURLPROTO_RTMPT 7.21.0
|
||||
CURLPROTO_RTMPTE 7.21.0
|
||||
CURLPROTO_RTMPTS 7.21.0
|
||||
CURLPROTO_RTMP 7.21.0 8.20.0
|
||||
CURLPROTO_RTMPE 7.21.0 8.20.0
|
||||
CURLPROTO_RTMPS 7.21.0 8.20.0
|
||||
CURLPROTO_RTMPT 7.21.0 8.20.0
|
||||
CURLPROTO_RTMPTE 7.21.0 8.20.0
|
||||
CURLPROTO_RTMPTS 7.21.0 8.20.0
|
||||
CURLPROTO_RTSP 7.20.0
|
||||
CURLPROTO_SCP 7.19.4
|
||||
CURLPROTO_SFTP 7.19.4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue