An integrated API platform for connecting and sharing data across the Azisaba Network.
Important
Graph is under active development. The API and generated SDKs may change before a stable release.
Graph exposes shared Azisaba Network data through a scope-protected HTTP API and a Server-Sent Events stream. The OpenAPI specification is the source of truth for available resources, operations, schemas, authentication, and event types.
The server is implemented in Rust with Axum. It uses MariaDB for persistent data, Redis Pub/Sub for event delivery across instances, and optional S3-compatible storage for uploaded files.
The specification declares https://graph.azisaba.net as the production server. Requests use Bearer API-key authentication as documented in OpenAPI.
To browse the current specification with Swagger UI:
docker compose -f openapi/compose.yaml upOpen http://localhost:8080.
Client SDKs are generated from the OpenAPI specification with OpenAPI Generator. The configured publishing targets are:
| Language | Package | Package repository and documentation |
|---|---|---|
| TypeScript | @azisaba/graph |
npm |
| Java | net.azisaba.graph:graph |
Azisaba Repository |
| Rust | azisaba-graph |
crates.io · docs.rs |
Generate SDKs locally with:
pnpm generate:typescript-sdk
pnpm generate:java-sdk
pnpm generate:rust-sdkGenerated files are written to ignored generated/ directories under sdks/. Each language keeps its generator configuration, post-processing script, and overrides together in its SDK directory.
The generated StreamApi is replaced during generation with the SSE adapters under overrides/. The override paths mirror the generated package layout and reuse the generated configuration, authentication, and StreamEvent models.
Install the pinned pnpm dependencies, validate the API definition, and generate the Rust server contract:
pnpm install --frozen-lockfile
pnpm openapi:lint
pnpm generate:serverThen check and test the server:
cd server
cargo check -p graph-server
cargo test -p graph-serverThe development stack is defined in server/compose.yaml. It provides the primary MariaDB database and Redis; a compatible punishments database must be supplied separately:
PUNISHMENTS_DATABASE_URL='<mariadb-url-reachable-from-docker>' \
docker compose -f server/compose.yaml upRuntime configuration is kept close to the implementation in server/app/src/main.rs and the Compose file, reducing duplication in this README.
Update the OpenAPI contract first, regenerate the server interface, implement the generated traits, and run the validation and test commands above.
Azisaba Graph is available under the MIT License.