[](https://www.npmjs.com/package/@asyncapi/modelina) [](https://github.com/asyncapi/modelina/blob/master/LICENSE) [](https://github.com/asyncapi/modelina/commits/master) [](https://github.com/asyncapi/modelina/discussions) [](https://www.modelina.org) [](https://www.modelina.org/playground) <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -- [](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END --
Your one-stop tool for generating accurate and well-tested models for representing the message payloads. Use it as a tool in your development workflow, or a library in larger integrations, entirely in your control.
---
- Installing Modelina
- Features
- Requirements
- Documentation
- Examples
- Versioning and maintenance
- Development
- Contributing
- Contributors
Installing Modelina
Install Modelina directly as a dependency to your project:
npm install @asyncapi/modelinaOr if you want to run Modelina, use the CLI.
modelina generate <language> ./asyncapi.json<h2 align="center"What Does Modelina Do?</h2
<p align="center"Modelina puts YOU in control of your data models, here is how...</p
<table <tr <td<bModelina lets you generate data models from many types of <a href="#inputs"inputs</a</b</td <td
const asyncapi = ...
const jsonschema = ...
const openapi = ...
const metamodel = ...
...
const models = await generator.generate(
asyncapi | jsonschema | openapi | metamodel
);</td </tr <tr <td<bUse the same inputs across a range of different <a href="#outputs"generators</a</b</td <td
const generator = new TypeScriptGenerator();
const generator = new CsharpGenerator();
const generator = new JavaGenerator();
const generator = new RustGenerator();
...
const models = await generator.generate(input);</td </tr <tr <td<bEasily let you interact with the generated models.</b
- Want to show the generated models on a website? Sure!
- Want to generate the models into files? Sure!
- Want to combine all the models into one single file? Sure!