#json-schema #code-generation

macro bin schemafy

Generates serializeable Rust types from a json schema

17 releases

0.6.0 Oct 6, 2021
0.5.2 May 18, 2021
0.5.1 Jul 12, 2020
0.5.0 Jul 7, 2019
0.1.1 Nov 27, 2016

#290 in Procedural macros

Download history 12568/week @ 2023-06-01 16367/week @ 2023-06-08 13953/week @ 2023-06-15 14423/week @ 2023-06-22 10037/week @ 2023-06-29 15263/week @ 2023-07-06 13368/week @ 2023-07-13 15868/week @ 2023-07-20 17275/week @ 2023-07-27 16483/week @ 2023-08-03 16977/week @ 2023-08-10 18510/week @ 2023-08-17 27302/week @ 2023-08-24 15354/week @ 2023-08-31 14730/week @ 2023-09-07 8383/week @ 2023-09-14

69,791 downloads per month
Used in 13 crates (8 directly)

MIT license

110KB
1.5K SLoC

schemafy

Build Status Docs

This is a Rust crate which can take a JSON schema (draft 4) and generate Rust types which are serializable with serde. No checking such as min_value are done but instead only the structure of the schema is followed as closely as possible.

As a schema could be arbitrarily complex this crate makes no guarantee that it can generate good types or even any types at all for a given schema but the crate does manage to bootstrap itself which is kind of cool.

Example

Generated types for VS Codes debug server protocol: https://docs.rs/debugserver-types

Development

The types generated by the JSON schema specification can be regenerated with cargo build --features internal-regenerate if changes have been made in the library itself. Rustfmt is required so that src/schema.rs is readable.

Dependencies

~1.3–2MB
~42K SLoC