Независимый от языка RPC-фреймворк с генератором кода для создания совместимых клиентов и серверов на множестве языков программирования.
glideapps/quicktype
Создаёт типизированные модели и сериализаторы на разных языках по JSON, JSON Schema, TypeScript и GraphQL-запросам.
- Звёзды
- 13,909
- Форки
- 1,195
- Открытые issues
- 235
- Последний коммит
- 9 дней назад
Что это?
quicktype преобразует примеры JSON, определения JSON Schema и типов TypeScript или GraphQL-запросы в типизированные модели и сериализаторы для множества языков программирования. Он предназначен для разработчиков, которым нужно безопасно работать с JSON в коде со строгой типизацией и не хочется вручную писать классы данных.
Инструмент доступен в нескольких вариантах: как веб-приложение на app.quicktype.io, которое работает офлайн и хранит вставленные данные локально, как глобальная npm CLI или как пакет quicktype-core для вызова из JavaScript или TypeScript. Рекомендуемый рабочий процесс: вывести JSON Schema из примеров данных, проверить её и добавить в репозиторий, а затем генерировать модели для каждого целевого языка в рамках сборки.
Среди поддерживаемых языков — Swift, Kotlin, Java, C#, Go, Rust, Python, TypeScript, C++, Dart, Scala, Elm и другие. Для CLI и пакетов Node.js требуется Node.js версии 20 или новее.
Ключевые возможности
- 01Выводит типы из примеров JSON, JSON Schema, TypeScript и GraphQL-запросов.
- 02Создаёт модели более чем для дюжины языков, в том числе Swift, Go, Rust и Java.
- 03Предлагает браузерное приложение, которое работает офлайн и хранит примеры данных локально.
- 04Предоставляет CLI и JavaScript API quicktype-core.
- 05Поддерживает пользовательские рендереры для добавления новых языков вывода.
Сценарии использования
- Генерация типизированных моделей для мобильного приложения по ответам JSON API от бэкенда.
- Хранение JSON Schema в репозитории и генерация соответствующих моделей для нескольких сервисов.
- Создание структур Go или Rust по примерам данных API на этапе прототипирования.
- Создание общего контракта данных, который разные языковые стеки сериализуют одинаково.
Быстрый старт
- 1
Установите quicktype CLI глобально с помощью npm
npm install -g quicktype - 2
Сгенерируйте исходный код Go на основе примера JSON, используя stdin
echo '[1, 2, 3]' | quicktype -o ints.go
Что важно знать
- Для работы quicktype CLI и пакетов Node.js требуется Node.js версии 20 или новее.
В подборках
Темы
Частые вопросы
- Что такое quicktype?
- Создаёт типизированные модели и сериализаторы на разных языках по JSON, JSON Schema, TypeScript и GraphQL-запросам. quicktype преобразует примеры JSON, определения JSON Schema и типов TypeScript или GraphQL-запросы в типизированные модели и сериализаторы для множества языков программирования. Он предназначен для разработчиков, которым нужно безопасно работать с JSON в коде со строгой типизацией и не хочется вручную писать классы данных.
- quicktype можно использовать бесплатно? Какая у него лицензия?
- quicktype распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- quicktype всё ещё поддерживается?
- Активно поддерживается. Последний коммит в quicktype — 30 окт. 2026 г..
- Для чего можно использовать quicktype?
- Генерация типизированных моделей для мобильного приложения по ответам JSON API от бэкенда. Хранение JSON Schema в репозитории и генерация соответствующих моделей для нескольких сервисов. Создание структур Go или Rust по примерам данных API на этапе прототипирования. Создание общего контракта данных, который разные языковые стеки сериализуют одинаково.
- Как установить quicktype?
- Установите quicktype CLI глобально с помощью npm: npm install -g quicktype Сгенерируйте исходный код Go на основе примера JSON, используя stdin: echo '[1, 2, 3]' | quicktype -o ints.go
- Где скачать quicktype?
- Исходный код и инструкции по установке — на GitHub: https://github.com/glideapps/quicktype
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрая библиотека для сериализации и валидации данных в Python: кодирует и декодирует JSON, MessagePack, YAML и TOML с помощью стандартных аннотаций типов.
Редактор JSON с открытым исходным кодом: превращает JSON, YAML, CSV и XML в интерактивные графы, конвертирует форматы и генерирует код.
Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.
TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных.
Высокопроизводительная библиотека YAML 1.2 для C# с низким числом аллокаций, поддержкой .NET и Unity и сериализацией на основе генерации исходного кода.