Я пытаюсь создать клиент-серверное приложение на основе RPC Cap'n Proto в Rust.Глядя на пример кода калькулятора , RPC хочет запихнуть все в один круговой вызов.Это потрясающе, но как это будет вести себя, когда данные для отправки имеют порядок гигабайт?Будет ли библиотека пытаться сохранить все это в памяти или в какой-то момент она поймет, что это слишком много?
Примечание: у меня пока нет кода для показа, но мой идеальный псевдокод клиента будет:
job = new_job(...) // rpc call
for f in (millions...) {
file = job.new_file(f) // rpc call
for data in f.chunks(thousands...) {
file.process_chunk(data) // rpc call
}
}
Как бы я структурировал свой клиентский код?Нужно ли в какой-то момент вызывать сброс (и, судя по всему, читать фиктивные данные с сервера)?
Пока что сервер кажется простым, просто обрабатывает файлы и куски по мере их поступления, ноесли там есть какие-то ошибки, я тоже весь в ушах.