bye bye RTMP
好的,我现在需要帮用户总结一篇文章,控制在100字以内。用户已经提供了文章内容,我得先通读一遍,理解主要内容。 文章主要讲的是curl在2010年5月合并了RTMP协议支持,但后来因为测试不足、用户少以及维护问题,决定在2026年4月移除这个支持。此外,还提到了兼容性问题和curl现在支持的其他协议。 接下来,我需要提取关键点:合并时间、原因、移除原因、移除时间以及curl当前支持的协议数量。然后把这些信息浓缩成简洁的句子,确保不超过100字。 可能会遇到的问题是如何在有限的字数内涵盖所有重要信息。我需要选择最核心的内容,比如合并和移除的时间、原因以及当前状态。 最后,组织语言,确保流畅且准确。可能的结构是:curl在2010年合并RTMP,因测试不足和用户少,在2026年4月移除,并提到目前支持27种协议。 检查字数是否符合要求,并确保没有遗漏关键信息。 </think> curl于2010年5月合并了RTMP协议支持,后因测试不足、用户稀少及维护问题,在2026年4月正式移除该功能,并宣布将从8.20.0版本起不再支持RTMP及相关协议。 2026-3-21 14:6:12 Author: daniel.haxx.se(查看原文) 阅读量:6 收藏

In May 2010 we merged support for the RTMP protocol suite into curl, in our desire to support the world’s internet transfer protocols.

RTMP

The protocol is an example of the spirit of an earlier web: back when we still thought we would have different transfer protocols for different purposes. Before HTTP(S) truly became the one protocol that rules them all.

RTMP was done by Adobe, used by Flash applications etc. Remember those? RTMP is an ugly proprietary protocol that simply was never used much in Open Source.

The common Open Source implementation of this protocol is done in the rtmpdump project. In that project they produce a library, librtmp, which curl has been using all these years to handle the actual binary bits over the wire. Build curl to use librtmp and it can transfer RTMP:// URLs for you.

librtmp

In our constant pursuit to improve curl, to find spots that are badly tested and to identify areas that could be weak from a security and functionality stand-point, our support of RTMP was singled out.

Here I would like to stress that I’m not suggesting that this is the only area in need of attention or improvement, but this was one of them.

As I looked into the RTMP situation I realized that we had no (zero!) tests of our own that actually verify RTMP with curl. It could thus easily break when we refactor things. Something we do quite regularly. I mean refactor (but also breaking things). I then took a look upstream into the librtmp code and associated project to investigate what exactly we are leaning on here. What we implicitly tell our users they can use.

I quickly discovered that the librtmp project does not have a single test either. They don’t even do releases since many years back, which means that most Linux distros have packaged up their code straight from their repositories. (The project insists that there is nothing to release, which seems contradictory.)

Is there perhaps any librtmp tests perhaps in the pipe? There had not been a single commit done in the project within the last twelve months and when I asked one of their leading team members about the situation, I was made clear to me that there is no tests in the pipe for the foreseeable future either.

How about users?

In November 2025 I explicitly asked for RTMP users on the curl-library mailing list, and one person spoke up who uses it for testing.

In the 2025 user survey, 2.2% of the respondents said they had used RTMP within the last year.

The combination of few users and untested code is a recipe for pending removal from curl unless someone steps up and improves the situation. We therefor announced that we would remove RTMP support six months into the future unless someone cried out and stepped up to improve the RTMP situation.

We repeated this we-are-doing-to-drop-RTMP message in every release note and release video done since then, to make sure we do our best to reach out to anyone actually still using RTMP and caring about it.

If anyone would come out of the shadows now and beg for its return, we can always discuss it – but that will of course require work and adding test cases before it would be considered.

Compatibility

Can we remove support for a protocol and still claim API and ABI backwards compatibility with a clean conscience?

This is the first time in modern days we remove support for a URL scheme and we do this without bumping the SONAME. We do not consider this an incompatibility primarily because no one will notice. It is only a break if it actually breaks something.

(RTMP in curl actually could be done using six separate URL schemes, all of which are no longer supported: rtmp,rtmpe,rtmps, rtmpt,rtmpte,rtmpts.)

The offical number of URL schemes supported by curl is now down to 27: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.

When

The commit that actually removed RTMP support has been merged. We had the protocol supported for almost sixteen years. The first curl release without RTMP support will be 8.20.0 planned to ship on April 29, 2026


文章来源: https://daniel.haxx.se/blog/2026/03/21/bye-bye-rtmp/
如有侵权请联系:admin#unsafe.sh