Мой вариант использования похож на эту запись, я хочу прочитать внутреннюю, огромный массив (несколько гигабайт в виде текста) из объекта JSON, например:
{ "a": "...", // root level fields to be read, separately
...
"bs": [ // the huge array, most of the payload (can be multiple GB's)
{...},
...
]
}
Вход доступен как Source[ByteString,_]
(поток Akka), и я использую Circe для декодирования JSON в другом месте.
Я вижу две проблемы:
Чтение массива
bs
в потоковом режиме (получениеSource[B,_]
за его потребление).Разделение исходного потока на два, чтобы я мог читать и анализировать поля корневого уровня до начала массива.
У вас есть указатели на решение такого варианта использования? Я проверил akka-stream-json и circe-iteratee.
akka-stream-json
выглядит как вещь, но в не очень хорошем состоянии. circe-iteratee
похоже, не имеет интеграции с Akka Streams.