{"id":46691704,"url":"https://github.com/xidl/xidl","last_synced_at":"2026-06-12T08:01:32.528Z","repository":{"id":343129982,"uuid":"1021129025","full_name":"xidl/xidl","owner":"xidl","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-05T06:50:51.000Z","size":5269,"stargazers_count":6,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-05T08:05:29.146Z","etag":null,"topics":["axum","c","cpp","dds","idl","jsonrpc","omg","openapi","openrpc","ros2","rust","xidl"],"latest_commit_sha":null,"homepage":"https://xidl.netlify.app","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xidl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-07-16T23:53:47.000Z","updated_at":"2026-06-04T06:27:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"da4f3b38-119f-46f9-bc2e-c4f9031f495f","html_url":"https://github.com/xidl/xidl","commit_stats":null,"previous_names":["xidl/xidl"],"tags_count":92,"template":false,"template_full_name":null,"purl":"pkg:github/xidl/xidl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xidl%2Fxidl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xidl%2Fxidl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xidl%2Fxidl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xidl%2Fxidl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xidl","download_url":"https://codeload.github.com/xidl/xidl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xidl%2Fxidl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34234557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axum","c","cpp","dds","idl","jsonrpc","omg","openapi","openrpc","ros2","rust","xidl"],"created_at":"2026-03-09T04:11:56.663Z","updated_at":"2026-06-12T08:01:32.477Z","avatar_url":"https://github.com/xidl.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XIDL\n\n![demo](./assets/demo.svg)\n\nDefine interfaces once. Generate APIs, SDKs, specs, and tooling from one\nsource of truth.\n\nXIDL is an IDL-first contract platform for teams that want one interface\ndefinition to drive HTTP, JSON-RPC, streaming APIs, security metadata,\ngenerated SDKs, and machine-readable specs. It combines contract authoring,\nprotocol mapping, code generation, and interactive tooling into one workflow.\n\n[![publish-release](https://github.com/xidl/xidl/actions/workflows/publish-release.yml/badge.svg)](https://github.com/xidl/xidl/actions/workflows/publish-release.yml)\n[![publish-crates](https://github.com/xidl/xidl/actions/workflows/publish-crates.yml/badge.svg)](https://github.com/xidl/xidl/actions/workflows/publish-crates.yml)\n[![build-docs](https://github.com/xidl/xidl/actions/workflows/build-docs.yml/badge.svg)](https://github.com/xidl/xidl/actions/workflows/build-docs.yml)\n[![Netlify Status](https://api.netlify.com/api/v1/badges/aa1dd32f-337a-4845-b38a-6e3c84efcb23/deploy-status)](https://app.netlify.com/projects/xidl/deploys)\n![Crates.io Version](\u003chttps://img.shields.io/crates/v/xidlc?label=xidlc(crates.io)\u003e)\n![Crates.io Version](\u003chttps://img.shields.io/crates/v/xidl-build?label=xidl-build(crates.io)\u003e)\n![GitHub Release](https://img.shields.io/github/v/release/xidl/xidl)\n[![VS Code Extension](https://img.shields.io/badge/Install-VS%20Code%20Extension-007ACC?logo=visualstudiocode\u0026logoColor=white)](https://marketplace.visualstudio.com/items?itemName=cathaysia.vscode-idl-language)\n[![GitHub](https://img.shields.io/badge/View_on-GitHub-181717?logo=github)](https://github.com/xidl/xidl)\n\n## What XIDL Makes Possible\n\n![XIDL capabilities](website/public/assets/xidl-capabilities.svg)\n\nXIDL works well as the contract layer for API teams because interface intent is\nexplicit, structured, and centralized. That makes the system easier for humans\nto review and easier for tools and AI systems to understand, generate from,\nlint, and keep in sync.\n\n## Why Teams Use XIDL\n\n- One contract drives multiple protocols and outputs.\n- HTTP and JSON-RPC live in the same interface system instead of separate toolchains.\n- Streaming and security annotations stay attached to the contract, not scattered across framework code.\n- Specs, SDKs, stubs, examples, and tests can all be generated from the same IDL.\n- Structured contracts are easier for automation, agents, and interactive tools to reason about.\n\n## Core Capabilities\n\n- Interface-first development with OMG IDL-compatible foundations and XIDL extensions.\n- Protocol mappings for HTTP and JSON-RPC, plus stream-oriented workflows.\n- Generated outputs for Rust, TypeScript, C, C++, OpenAPI, and OpenRPC.\n- Security-aware contracts including HTTP auth and API key mappings.\n- Formatting support through `xidlc fmt`.\n- Editor and language tooling through [`idl-language-server`](https://github.com/xidl/idl-language-server).\n- Interactive HTTP exploration from IDL, including launching client workflows with tools such as Scalar.\n\n## What One IDL Produces\n\n![XIDL generated outputs](website/public/assets/xidl-outputs.svg)\n\nOne XIDL contract can radiate into runtime surfaces, generated SDKs, machine\nreadable specs, and implementation assets that stay aligned because they come\nfrom the same source.\n\n## What You Can Build\n\n- HTTP services and generated clients from one IDL contract.\n- JSON-RPC services and generated clients from the same modeling approach.\n- OpenAPI and OpenRPC specs that stay aligned with implementation contracts.\n- Stream-oriented APIs with shared contract semantics.\n- Contract-driven examples, tests, and review flows.\n\n## How Teams Use XIDL\n\n![XIDL workflow](website/public/assets/xidl-workflow.svg)\n\nTeams author and review the contract once, then generate the artifacts they\nneed to build servers, ship clients, publish specs, and keep examples and tests\nsynchronized.\n\n## Quick Start\n\nInstall `xidlc`:\n\n```bash\ncargo install xidlc\n```\n\nFormat IDL files:\n\n```bash\nxidlc fmt --inplace api.idl\n```\n\nUse this repository as a `pre-commit` hook:\n\n```yaml\nrepos:\n  - repo: https://github.com/xidl/xidl\n    rev: v0.31.0\n    hooks:\n      - id: xidlc-fmt\n```\n\nGenerate Rust types:\n\n```bash\nxidlc gen --out-dir out rust api.idl\n```\n\nGenerate an Axum HTTP surface:\n\n```bash\nxidlc gen --out-dir out rust-axum api.idl\n```\n\nGenerate OpenAPI:\n\n```bash\nxidlc gen --out-dir generated openapi api.idl\n```\n\n## Documentation\n\n- [Quickstart](website/src/content/docs/guide/quickstart.mdx)\n- [Installation](website/src/content/docs/guide/quickstart.mdx)\n- [Using xidlc](website/src/content/docs/docs/xidlc.mdx)\n- [HTTP Guide](website/src/content/docs/docs/http.mdx)\n- [JSON-RPC Guide](website/src/content/docs/docs/jsonrpc.mdx)\n- [Targets Reference](website/src/content/docs/docs/targets.mdx)\n- [HTTP RFC](website/src/content/docs/rfc/http.mdx)\n- [JSON-RPC RFC](website/src/content/docs/rfc/jsonrpc.mdx)\n\n## Ecosystem\n\n- [`xidlc`](https://crates.io/crates/xidlc): compiler and generators\n- [`xidl-build`](https://crates.io/crates/xidl-build): Rust `build.rs` integration\n- [`xidl-rust-axum`](xidl-rust-axum/README.md): Axum runtime for generated HTTP services\n- `xidl-jsonrpc`: JSON-RPC runtime support\n- [`idl-language-server`](https://github.com/xidl/idl-language-server): editor support, diagnostics, and interactive workflows\n\n## Status\n\nHTTP and JSON-RPC are available today. Stream support exists and continues to\nevolve, especially in the more advanced transport and interactive workflows.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxidl%2Fxidl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxidl%2Fxidl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxidl%2Fxidl/lists"}