4 releases
Uses new Rust 2024
| new 0.1.0-alpha.6 | Jan 17, 2026 |
|---|---|
| 0.1.0-alpha.3 | Jan 14, 2026 |
| 0.1.0-alpha.2 | Jan 4, 2026 |
#640 in FFI
1MB
25K
SLoC
brk_bindgen
Code generation for BRK client libraries.
What It Enables
Generate typed client libraries for Rust, JavaScript, and Python from the OpenAPI specification. Keeps frontend code in sync with available metrics and API endpoints without manual maintenance.
Key Features
- Multi-language: Generates Rust, JavaScript, and Python clients
- OpenAPI-driven: Extracts endpoints and schemas from the OpenAPI spec
- Metric catalog: Includes all metric IDs and their supported indexes
- Type definitions: Generates types/interfaces from JSON Schema
- Selective output: Generate only the languages you need
Core API
use brk_bindgen::{generate_clients, ClientOutputPaths};
let paths = ClientOutputPaths::new()
.rust("crates/brk_client/src/lib.rs")
.javascript("modules/brk-client/index.js")
.python("packages/brk_client/brk_client/__init__.py");
generate_clients(&vecs, &openapi_json, &paths)?;
Generated Clients
| Language | Contents |
|---|---|
| Rust | Typed API client using brk_types, metric catalog |
| JavaScript | ES module with JSDoc types, metric catalog, fetch helpers |
| Python | Typed client with dataclasses, metric catalog |
Each client includes:
- All REST API endpoints as typed functions
- Complete metric catalog with index information
- Type definitions for request/response schemas
Built On
brk_queryfor metric enumerationbrk_typesfor type schemas
Dependencies
~51MB
~823K SLoC