Cargo Features

[dependencies]
rivven-schema = { version = "0.0.22", default-features = false, features = ["types", "cli", "avro", "json-schema", "protobuf", "server", "jwt", "cedar", "broker", "metrics"] }
default = avro, cli, json-schema, protobuf, server

These default features are set whenever rivven-schema is added without default-features = false somewhere in the dependency tree.

types

Types only - minimal feature for other crates to depend on (no heavy deps)

cli default

CLI features

Enables reqwest ^0.12 and tracing-subscriber

avro default

Schema formats

Enables apache-avro ^0.17

json-schema default

Enables jsonschema ^0.18

protobuf default

Enables prost-types ^0.13 and protox-parse ^0.8

server default

Server features

Enables axum ^0.7, tower, and tower-http

axum:

HTTP Server

Affects rivven-schema::auth, rivven-schema::server

jwt

JWT/OIDC token validation

Enables jsonwebtoken ^9

JWT validation for OAuth2/OIDC (optional)

Affects auth::AuthConfig.jwt_config

cedar

Cedar policy-based authorization (fine-grained RBAC)

Enables cedar of rivven-core

Authentication & authorization (RBAC, Cedar, etc.)

Affects auth::AuthConfig.use_cedar, auth::ServerAuthState, auth::check_subject_permission_cedar, server::ServerState.cedar_authorizer

broker

Broker-backed storage (store schemas in rivven topics for durability)

Enables rivven-client

Broker-backed storage (optional)

metrics

Metrics support (uses metrics crate facade)

Enables metrics

Metrics (optional - uses metrics crate facade, not prometheus crate)

Affects rivven-schema::metrics