Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Как это работает?
VK поддерживает сжатие запросов используя zstd со словарем. Для получения ссылки на словарь, вызвается метод
account.getZSTDDict
Файл начинается с версии словаря:
Сам zstd словарь начинается с магического номера
0xEC30A437
в little-endian формате.Версия словаря передается в поле
x-zstd-dict-version
Странности
Сейчас метод
account.getZSTDDict
не работает(по некоторым причинам). Сам метод можно вызывать только с помощью токена пользователя.Словарь для json или msgpack?
В выступлении(статье) говорится о использовании zstd вместе с msgpack, но сам словарь(
data_v2
) тренировался на json, что делает его бесполезным с msgpack...¯_(ツ)_/¯
Проблема загрузки словаря
В модуле github.com/klauspost/compress/zstd используется опциональная функция
zstd.WithDecoderDicts(data)
. Каждый вызовzstd.NewReader(resp.Body, optionWithDecoderDicts)
сначала разбирает словарь, а затем добавляет его к ридеру, что может сказаться на перфомансеThis close #180