A better way to define schemas for your JSON.
If you want to take the system for a spin, please go to https://reproto.github.io.
Reproto is:
These things combined support an ecosystem where schemas can be maintained and shared across many teams.
You can install a binary version of reproto by running:
curl https://raw.githubusercontent.com/reproto/reproto/master/install.sh -sSf | bash
Note: This project is in an early stage. Things will change a lot. Please take it for a spin, but avoid building large repositories of schemas for now.
You want to help out? Great!
You might want to start on issues marked with good first issue. If you have a support for a programming language that you feel is lacking, please help out with language support.
For any of these, just poke the issue with a quick I want to do this!
.
If mentoring instructions are lacking, they will be made available as soon as possible.
Also make sure to join our Gitter channel.
Language | Tracking Issue | JSON | gRPC | HTTP/1.1* |
---|---|---|---|---|
Java | ✔️ | ✔️ | ✔️ test | |
Python | ✔️ | ✖️ | ✔️ test | |
C# | ✔️ | ✖️ | ✖️ | |
Rust | ✔️ | ✖️ | ✔️ test | |
JavaScript | ✔️ | ✖️ | ✖️ | |
Swift | ✔️ | ✖️ | ✖️ | |
Go | ✔️ | ✖️ | ✖️ | |
Dart | #61 | ✔️ | ✖️ | ✖️ |
*: HTTP/1.1 support is actively being outlined in #2
reproto
can generate rich markdown-based documentation from your specifications.
Go to https://reproto.github.io/reproto/doc-examples/ to see what this documentation looks like.
These have been generated from the examples project using tools/update-doc-examples.
Make sure you have gotten started with Rust.
Initialize submodules:
git submodule update --init
Pack syntax highlighting and themes:
cargo build-syntax
cargo build-themes
Build and install the CLI.
This will install reproto
into ~/.cargo/bin
, make sure it is in your PATH:
cargo install --path cli reproto
This project includes an extensive set of integration tests.
See cargo it --help
for documentation on what can be done.
Suites are fast tests which compiles a given set of rules, and compares with expected output stored in this repository.
cargo it --suites
To run UI tests:
cargo it --ui
Projects are complete project tests. These are projects written for various programming languages, and are generally harder to build.
cargo it --projects
To run all tests, do:
cargo it --all
For more information, run make help
.
Install Rust: https://rustup.rs
Install Dart SDK: https://dart.dev/get-dart
Install Python.
All python testing requires requests
to be installed.