Новый экспериментальный 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
👍40❤18🔥10
👣 С 27 августа начинается отбор в Яндекс Лицей, курс «Веб-разработка на Go»
Обучение специально разработано для школьников и студентов колледжей, техникумов.
За 3 месяца разберётесь, как проектировать серверные приложения и тестировать свой код. Научитесь работать с системами контроля версий, освоите Git на продвинутом уровне и поймёте, как разворачивать проекты на примере собственного проекта.
После обучения получите сертификат. Он может помочь получить дополнительные баллы при поступлении в вузах-партнёрах.
Обучение бесплатное, но есть отбор. Его нужно пройти до 23 сентября. Переходите по ссылке и регистрируетесь.
Обучение специально разработано для школьников и студентов колледжей, техникумов.
За 3 месяца разберётесь, как проектировать серверные приложения и тестировать свой код. Научитесь работать с системами контроля версий, освоите Git на продвинутом уровне и поймёте, как разворачивать проекты на примере собственного проекта.
После обучения получите сертификат. Он может помочь получить дополнительные баллы при поступлении в вузах-партнёрах.
Обучение бесплатное, но есть отбор. Его нужно пройти до 23 сентября. Переходите по ссылке и регистрируетесь.
😁17❤3👍2👏1🤯1
Также представлена новая команда
genkit init:ai-tools
для лёгкой интеграции с AI-ассистентами в процессе разработки. 🔑 Что нового в Genkit Go 1.0
1. Production-ready
API признан стабильным: все программы, написанные на Genkit 1.*, будут работать и собираться в будущих минорных версиях.
2. Type-safe AI-flows
- Определение “flows” через Go-структуры и JSON Schema.
- Повышенная типобезопасность, тестируемость, наблюдаемость и удобство при деплое.
3. Унифицированный интерфейс моделей
Поддержка разных провайдеров (Google AI, Vertex AI, OpenAI, Ollama и др.) через единый API — легко переключаться между ними.
4. Tool calling, RAG и мультимодальность
- Вызов внешних инструментов (tool calling).
- Retrieval-augmented generation (RAG).
- Поддержка мультимодальных сценариев (текст, изображения и др.).
5. Инструменты для разработчиков
- Независимая CLI-утилита для локальной разработки.
- Developer UI: тестирование промтов, отладка flows, отслеживание производительности и трассировка.
6. Команда `genkit init:ai-tools`
Автоматическая интеграция с AI-ассистентами разработки: Gemini CLI, Firebase Studio, Claude Code, Cursor и др.
7. Примеры кода
В официальной документации показано, как определять flows, запускать HTTP endpoints, работать с моделями и инструментами.
🚀 Почему это важно
- Быстрая и безопасная разработка AI-приложений на Go.
- Унифицированный API позволяет экспериментировать и менять провайдеров без переписывания логики.
- Встроенные dev-инструменты ускоряют отладку и интеграцию.
- Подходит как для прототипов, так и для production-решений.
📌 Официальный анонс: https://developers.googleblog.com/en/announcing-genkit-go-10-and-enhanced-ai-assisted-development/?linkId=16710004Нужно
@Golang_google
#Genkit #GoLang #GoogleAI #AIDevelopment #OpenSource #RAG
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40❤11👍6