XIDL (eXtensible IDL) is an OMG IDL-based code generator. It generates
C/C++/Rust/Typescript code and also supports
[HTTP](docs/rfc/http.md)/[JSONRPC](docs/rfc/jsonrpc.md).
> Currently,
> [HTTP-STREAM](docs/rfc/http-stream.md)/[JSONRPC-STREAM](docs/rfc/jsonrpc-stream.md) are still in an implementation/experimental stage.
[](https://github.com/xidl/xidl/actions/workflows/publish-release.yml)
[](https://github.com/xidl/xidl/actions/workflows/publish-crates.yml)
[](https://github.com/xidl/xidl/actions/workflows/deploy-docs.yml)
>)
>)

[](https://github.com/xidl/xidl)
## Installation
=== "Release (macOS / Linux)"
```bash
curl --proto '=https' --tlsv1.2 -sSf https://xidl.github.io/xidl/public/install.sh | sh
```
=== "Release (Windows PowerShell)"
```powershell
iwr -useb https://xidl.github.io/xidl/public/install.ps1 | iex
```
=== "Cargo"
```bash
cargo install xidlc
```
=== "Cargo Binstall"
```bash
cargo binstall xidlc
```
## Quick Start
```bash
# Generate code
xidlc -l rust -o out your.idl
```
## Built-in Targets
- `c`
- `cpp`
- `rust`
- `rust-jsonrpc`
- `rust-axum`
- `ts` / `typescript`