FlatBuffers (фактический двоичный файл, сериализованные буферы / файлы) имеют прямую и обратную совместимость для всех языков, платформ и версий. Таким образом, вы можете обновить код, который читает или записывает эти буферы в любом порядке, не сталкиваясь с проблемами совместимости форматов.
Однако код, сгенерированный конкретной версией flatc
для определенного языка, должен быть скомпилированпротив времени выполнения точно той же версии. Сгенерированный код и среда выполнения очень тесно связаны для системы такого же низкого уровня, как FlatBuffers, поэтому невозможно обеспечить стабильность API между этими двумя версиями во всех версиях. Это чисто проблема компиляции кода, однако она не должна влиять на сериализованные данные.
Не следует отменять связь между ними. Если вы отправляете код, основанный на сгенерированном коде, вам необходимо убедиться, что проект также содержит соответствующую среду выполнения, а не полагаться на внешнюю среду выполнения, которая может уже присутствовать в пользовательской системе или как угодно.
Javaнедавно внесенные изменения, чтобы гарантировать, что люди не будут не соответствовать времени выполнения, хотя этого не было в 1.10.