#clojure #io
#clojure #io
Вопрос:
Я хочу превратить an InputStream
в последовательность фреймов. Если я правильно понимаю код, gloss.io/lazy-decode-all
он с нетерпением использует свой второй аргумент, что в моем случае не вариант.
Я нашел способ сделать это с aleph/input-stream->channel
помощью , decode-channel
и lamina.core.operators/channel->lazy-seq
, но это выглядит слишком сложно для такой общей задачи. Также я немного обеспокоен производительностью в этом сценарии: приложению будет передано несколько гигабайт данных.
Я мог бы вручную считывать фреймы в ByteBuffer
s и decode
them, но они имеют динамическую длину, поэтому я продублирую большую часть логики в gloss.
Есть ли какой-нибудь краткий способ ленивого декодирования потока?