🎉 Go 1.25 Release Candidate 3 уже доступен!
🔈 Анонс: https://groups.google.com/g/golang-announce/c/sTNnwCTjr1Y/m/tdIX-dDUAgAJ
📦 Скачать https://go.dev/dl/#go1.25rc3
⚠️ Исправлены баги: в этом релизе исправлены две уязвимости:
• os/exec.LookPath мог непредсказуемо возвращать путь к бинарям, если PATH содержит исполняемые файлы вместо папок — исправлено (CVE‑2025‑47906).
• В database/sql.Rows.Scan иногда возвращались некорректные результаты — теперь проблемы устранены.
🚀 Можно ставить в прод или тестировать: go.dev/issue/new
#golang #Go125 #release
@golang_google
🔈 Анонс: https://groups.google.com/g/golang-announce/c/sTNnwCTjr1Y/m/tdIX-dDUAgAJ
📦 Скачать https://go.dev/dl/#go1.25rc3
⚠️ Исправлены баги: в этом релизе исправлены две уязвимости:
• os/exec.LookPath мог непредсказуемо возвращать путь к бинарям, если PATH содержит исполняемые файлы вместо папок — исправлено (CVE‑2025‑47906).
• В database/sql.Rows.Scan иногда возвращались некорректные результаты — теперь проблемы устранены.
🚀 Можно ставить в прод или тестировать: go.dev/issue/new
#golang #Go125 #release
@golang_google
👍25🔥8❤7
Новый экспериментальный JSON API в Go
В версии Go 1.25 появился новый способ работы с JSON — пакеты
Пока они работают только в экспериментальном режиме: чтобы включить, нужно указать
Зачем это нужно?
Старая библиотека
- Принимает некорректный UTF-8 и дубли ключей в объектах — это нарушает стандарт и может вести к багам.
-
- Сопоставление полей Go-структур нечувствительно к регистру — медленно и запутанно.
- Нет нормального стриминга JSON.
- Есть лишние аллокации и даже квадратичные замедления при рекурсии.
Что изменилось в
- Код разделён на два уровня: синтаксис (`jsontext`) и работа со значениями (`json/v2`). Это упростило и ускорило библиотеку.
- Marshal работает так же быстро, как в старой версии, а Unmarshal стал значительно быстрее.
- Поведение можно тонко настраивать через новые опции.
- Ошибки прошлого (дубли ключей, странное поведение с
📌 Как запустить?
или
Новый API делает работу с JSON быстрее, чище и предсказуемее. Пока он экспериментальный, но, если сообщество даст положительный отклик, то в Go 1.26 или следующей версии json/v2 станет стандартом.
Почитай официальный блог: https://go.dev/blog/jsonv2-exp
@Golang_google
#Go #Golang #JSON #Go125 #encodingjson #jsonv2
В версии Go 1.25 появился новый способ работы с JSON — пакеты
encoding/json/v2
и encoding/json/jsontext
. Пока они работают только в экспериментальном режиме: чтобы включить, нужно указать
GOEXPERIMENT=jsonv2
или собрать проект с тегом goexperiment.jsonv2
.Зачем это нужно?
Старая библиотека
encoding/json
существует с первых версий Go и за годы накопила массу проблем:- Принимает некорректный UTF-8 и дубли ключей в объектах — это нарушает стандарт и может вести к багам.
-
nil`-срезы и карты сериализуются как `null
, хотя логичнее было бы []
или {}
. - Сопоставление полей Go-структур нечувствительно к регистру — медленно и запутанно.
- Нет нормального стриминга JSON.
- Есть лишние аллокации и даже квадратичные замедления при рекурсии.
Что изменилось в
v2
?- Код разделён на два уровня: синтаксис (`jsontext`) и работа со значениями (`json/v2`). Это упростило и ускорило библиотеку.
- Marshal работает так же быстро, как в старой версии, а Unmarshal стал значительно быстрее.
- Поведение можно тонко настраивать через новые опции.
- Ошибки прошлого (дубли ключей, странное поведение с
nil
, нечувствительность к регистру) исправлены.📌 Как запустить?
go run -tags goexperiment.jsonv2 .
или
GOEXPERIMENT=jsonv2 go run .
Новый API делает работу с JSON быстрее, чище и предсказуемее. Пока он экспериментальный, но, если сообщество даст положительный отклик, то в Go 1.26 или следующей версии json/v2 станет стандартом.
Почитай официальный блог: https://go.dev/blog/jsonv2-exp
@Golang_google
#Go #Golang #JSON #Go125 #encodingjson #jsonv2
👍38❤16🔥10