Repolode
glideapps

glideapps/quicktype

Generates strongly-typed models and serializers in many languages from JSON, JSON Schema, TypeScript, and GraphQL queries.

Stars
13,909
Forks
1,195
Open issues
235
Last commit
8 days ago

What is it?

quicktype turns sample JSON, JSON Schema, TypeScript type definitions, or GraphQL queries into typed models and serializers for a wide range of programming languages. It is aimed at developers who need to work with JSON data safely in typed code without writing the data classes by hand.

The tool can be used in several ways: a web app at app.quicktype.io that runs offline and keeps pasted data local, a global npm CLI, or the quicktype-core package for calling it from JavaScript or TypeScript. The recommended workflow is to infer a JSON Schema from sample data, review and commit it, then generate models for each target language as part of a build.

Target languages include Swift, Kotlin, Java, C#, Go, Rust, Python, TypeScript, C++, Dart, Scala, Elm, and others. The project requires Node.js 20 or newer for the CLI and Node.js packages.

Key features

  • 01Infers types from JSON samples, JSON Schema, TypeScript, and GraphQL queries.
  • 02Generates models for over a dozen languages including Swift, Go, Rust, and Java.
  • 03Offers a browser app that works offline and keeps sample data local.
  • 04Provides a CLI and a quicktype-core JavaScript API.
  • 05Supports custom renderers for extending output languages.

Use cases

  • Generating typed models for a mobile app from a backend's JSON API responses.
  • Maintaining a JSON Schema in a repo and generating matching models for several services.
  • Creating Go or Rust structs from sample API payloads during prototyping.
  • Building a shared data contract that different language stacks can serialize identically.

Quick start

  1. 1

    Install the quicktype CLI globally with npm

    npm install -g quicktype
  2. 2

    Generate Go source from a JSON sample using stdin

    echo '[1, 2, 3]' | quicktype -o ints.go

Things to know

  • The quicktype CLI and Node.js packages require Node.js 20 or newer.

In collections

Topics

FAQ

What is quicktype?
Generates strongly-typed models and serializers in many languages from JSON, JSON Schema, TypeScript, and GraphQL queries. quicktype turns sample JSON, JSON Schema, TypeScript type definitions, or GraphQL queries into typed models and serializers for a wide range of programming languages. It is aimed at developers who need to work with JSON data safely in typed code without writing the data classes by hand.
Is quicktype free to use? What license does it have?
quicktype is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is quicktype still maintained?
Actively maintained. The last commit to quicktype was on Oct 30, 2026.
What can I use quicktype for?
Generating typed models for a mobile app from a backend's JSON API responses. Maintaining a JSON Schema in a repo and generating matching models for several services. Creating Go or Rust structs from sample API payloads during prototyping. Building a shared data contract that different language stacks can serialize identically.
How do I install quicktype?
Install the quicktype CLI globally with npm: npm install -g quicktype Generate Go source from a JSON sample using stdin: echo '[1, 2, 3]' | quicktype -o ints.go
Where can I get quicktype?
The source code and installation instructions are on GitHub: https://github.com/glideapps/quicktype

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects