Skip to content

gRPC Debugging

SyncTV public gRPC and HTTP REST share server.port, default 8080.

server.enable_reflection=false by default. Development environments can enable it explicitly to explore services with grpcurl; production should usually keep reflection disabled and use checked-in protobuf files.

Start with reflection:

Terminal window
SYNCTV_SERVER_ENABLE_REFLECTION=true \
cargo run -p synctv --bin synctv -- serve

List services:

Terminal window
grpcurl -plaintext localhost:8080 list
grpcurl -plaintext localhost:8080 list synctv.client.AuthService

Public client services include synctv.client.AuthService, UserService, RoomService, PublicService, EmailService, NotificationService, OAuth2Service, ProviderCommonService, AlistProviderService, BilibiliProviderService, EmbyProviderService, and RtmpProviderService. The public admin gRPC service is synctv.admin.AdminService. The management gRPC service is a separate endpoint named synctv.management.ManagementService; it is not served on server.port.

-plaintext is for local development or trusted internal networks only. Production deployments should use TLS at the proxy or client connection layer.

Terminal window
grpcurl -plaintext -d '{
"username": "alice",
"email": "alice@example.com",
"password": "SecurePassword123"
}' localhost:8080 synctv.client.AuthService/Register
Terminal window
grpcurl -plaintext -d '{
"username": "alice",
"password": "SecurePassword123"
}' localhost:8080 synctv.client.AuthService/Login

OpenAPI documents HTTP APIs only. gRPC debugging uses reflection or protobuf files. See OpenAPI Access for Swagger UI and OpenAPI JSON.