Firefox v57 WritableStream

Streams API - хороший метод для взаимодействия с потенциально бесконечными потоками данных в браузере. ReadableStreams в частности, дать вам методы для представления потенциально бесконечных источников данных; где "обработка" выполняется по частям.

WritableStreams являются двойственными для этой концепции - представляют собой приемник, который может потреблять потенциально бесконечные порции данных. Кроме того, существует дополнительная ( недокументированная на MDN) концепция, называемая TransformStream; которая является просто комбинацией двух - представляющих преобразование данных по частям.

Мой вопрос довольно прост - почему Firefox воздерживается от реализации API WritableStream, если Chrome и даже IE поддерживают его? Есть ли конкретная философская причина не реализовывать это? В частности, ByteStream варианты потоков (которые не были полностью реализованы в спецификации, по- видимому), я считаю подозрительным.

1 ответ

Никакой философской причины, я думаю, просто прагматическая. В отличие от ReadableStream , который используется в API ответа выборки , ни один стандартный веб-API пока не использует шаблон WritableStream (по модулю собственного new WritableStream() конструктор, который сейчас служит главным образом инструментом JS для чтения потоков через конвейер).

Это имеет значение в двух отношениях. Первый - это приоритет ресурсов (патчи приветствуются!)

Во-вторых, реализация API браузера, использующего шаблон WritableStream, помогает обеспечить хорошую реализацию этого шаблона, который все еще относительно новый. В частности, байтовые потоки должны быть производительными.

Здесь отслеживается поддержка WritableStream в Firefox .

Некоторые новые веб-API на основе WritableStream находятся в процессе стандартизации в W3C и, вероятно, изменят ситуацию в Firefox. Но они все еще находятся на начальной стадии. Два из них:

  1. API WebTransport ( давно инкубированный в WICG). Поддержка Firefox отслеживается здесь .
  2. Медиа- потоки, закодированные в WebRTC, RTCRtpScriptTransform (также известные как «вставляемые потоки»).

В Chrome и Edge есть экспериментальные реализации WebTransport за pref, что, вероятно, связано с их ранней поддержкой WritableStream.

Другие вопросы по тегам