1 июня, после почти полутора лет разработки, состоялся выпуск 1.8.0 библиотеки и консольной утилиты jq, предназначенных для обработки данных в формате JSON с использованием встроенного сверхвысокоуровневого функционального языка программирования. Код проекта написан на языке Си и распространяется по лицензии MIT.
Для регулярных выражений опционально может использоваться библиотека Oniguruma.
Начиная с этого выпуска, шаблон нумерации версий изменён на X.Y.Z.
Исправления ошибок безопасности:
- CVE-2024-23337: исправлено целочисленное переполнение в функциях
jvp_array_writeиjvp_object_rehash. Теперь максимальный размер массивов и объектов установлен в 536870912 (2^29) элементов. - CVE-2024-53427: исправлен парсинг значений вида
NaNчисло, напримерNaN1,NaN10и т. п. Другие расширения JSON (подобныеNaN,Infinity) остаются поддерживаемыми. - CVE-2025-48060: исправлено переполнение буфера в функции
jv_string_vfmt. - Исправлено использование неинициализированного значения в функции
check_literal - Исправлено падение в функциях
strftimeиstrflocaltime. - Исправлено необработанное целочисленное переполнение в функции
@base64d.
Изменения в консольной утилите:
- Исправлено поведение ключа
--indent 0, ранее неявно включавшего режим--compact-output. - Улучшены сообщения об ошибках парсинга.
- Улучшена обработка длинных значений переменной среды
JQ_COLORS, таких какtruecolor. - Исправлено поведение
--slurp --stream, когда входные данные не содержат завершающего символа новой строки. - Исправлена обработка пробелов при разборе чисел.
- Максимальная глубина парсинга JSON увеличена до 10000.
- Улучшено цветное форматирование вывода.
- Другие незначительные изменения.
Изменения в языке:
- Добавлены функции
trim,ltrim,rtrim,trimstr(...),add(...),skip(..., ...),tobooleanи формат@urid, обратный@uri. - Функции
indices(...),index(...)иrindex(...)теперь в качестве индекса используют кодовые позиции Юникода. Используйтеutf8bytelengthдля получения позиции байта. - Улучшена производительность и поведение функции
tonumber, связанное с обработкой лидирующих и замыкающих пробельных символов. Для их удаления рекомендуется использовать функциюtrim. - Улучшено форматирование времени в функциях
strftimeиstrflocaltime. - Улучшена производительность функции
bsearch(...), которая была переписана на Си. - Улучшена производительность функций
uniqueиunique_by(...). - Удалена функция
pow10. Вместо неё используйте функциюexp10. - Удалён приватный и недокументированный фильтр
_nwise. - Исправлен приоритет унарных и бинарных арифметических операторов.
- Добавлена поддержка многострочных комментариев в стиле Tcl (строка после
# \считается комментарием). - Исправлены ошибки в
foreachиreduce. - Добавлена поддержка переносов строк CRLF в фильтрах.
- Улучшена производительность повторения строк.
- Другие незначительные изменения.
Также улучшены документация и тестирование; исправлены ошибки сборки.













