schemajen

Crates.ioschemajen
lib.rsschemajen
version0.2.0
sourcesrc
created_at2023-04-12 01:30:12.727234
updated_at2023-04-13 04:23:17.154985
descriptionSchemaJen - Auto-magically infer language bindings given a JSON schema.
homepagehttps://github.com/davnotdev/schemajen
repositoryhttps://github.com/davnotdev/schemajen
max_upload_size
id836484
size47,172
(davnotdev)

documentation

README

SchemaJen

Auto-magically infer language bindings given a JSON schema.

Bridging client and backend is hard. This is especially true if your backend is written in a different language from your client. Schemajen is a tool that makes the process almost painless. Given a JSON request, response, or literally anything, SchemaJen can infer working language bindings.

Language Support

  • Rust
  • Typescript
  • Dart
  • Python 3.8+
  • Java (via java.io.Serializable)

Feel free to send in language requests or additional implementations!

Try it now!

You can try the web version of SchemaJen here.

Alternatively, you can also install the CLI version of SchemaJen using cargo.

cargo install schemajen

Contributing / Using the Crate

Being built in Rust, SchemaJen comes as a crate. You can find more on the docs and crate information pages.

Example Usage

use schemajen::*;

//  See [`ACCUMULATOR_SUPPORT_LIST`] for string options.
//  let mut accumulator = accumulator_choose_with_str("rust");

let mut accumulator = Box::new(RustAccumulator::begin());
let res = generate(&mut accumulator, "MyType", r#"{"a": 10}"#);
res.unwrap();
eprintln!("{}", res);

Commit count: 44

cargo fmt