A language-independent RPC framework with a code generator that builds interoperable clients and servers across many programming languages.
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
Install the quicktype CLI globally with npm
npm install -g quicktype - 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
A fast Python serialization and validation library that encodes and decodes JSON, MessagePack, YAML, and TOML using standard type annotations.
Open-source JSON editor that turns JSON, YAML, CSV and XML into interactive graphs, with format conversion and code generation.
A declarative schema language that generates type-safe data models and RPC code for TypeScript, Python, Java, Go, C++ and more from one .skir file.
TypeScript transformer that compiles pure TypeScript types into runtime validators, JSON serializers, protobuf codecs and random generators.
A high-performance, low-allocation YAML 1.2 library for C# focused on .NET and Unity, with source-generated serialization.