retrom-grpc-service

Crates.ioretrom-grpc-service
lib.rsretrom-grpc-service
version0.7.51
created_at2025-12-01 04:10:50.817294+00
updated_at2026-01-18 23:58:49.046777+00
descriptionThe Retrom video game library gRPC service handlers
homepage
repositoryhttps://github.com/JMBeresford/retrom
max_upload_size
id1959274
size381,957
John Beresford (JMBeresford)

documentation

README

Retrom gRPC Service

The Retrom gRPC Service package provides the core gRPC API implementation for the Retrom video game library management system. It defines a set of specialized service handlers that handle requests from clients through Protocol Buffers and gRPC.

[!TIP] Check out the retrom-service package for details on setting up the development environment, running the service, and contributing.

Overview

This package implements several gRPC services that handle different aspects of the Retrom application:

  • Library Service: Manages game libraries, collections, and content resolution
  • Game Service: Handles game metadata, files, and operations
  • Platform Service: Provides platform information and management
  • Metadata Service: Interfaces with external metadata providers
  • Client Service: Manages client registrations and interactions
  • Server Service: Provides server information and configuration
  • Emulator Service: Manages emulator configurations
  • File Explorer Service: Provides filesystem browsing capabilities
  • Job Service: Manages background jobs and tasks
  • Saves Service: Handles game save files and states

Architecture

The package follows a modular architecture where each service is implemented as a separate handler struct that implements the corresponding gRPC service trait. The main components include:

  • Service Handlers: Implement the gRPC service interfaces defined in Protocol Buffers
  • Database Integration: Uses Diesel ORM for PostgreSQL database access
  • Connection Pooling: Maintains separate connection pools for services with different usage patterns
  • Media Cache: Implements caching for game and platform media assets
  • Job Management: Provides background processing capabilities
  • Content Resolution: Resolves game content, platforms, and metadata
Commit count: 943

cargo fmt