7 releases

0.7.51 Jan 18, 2026
0.7.50 Jan 14, 2026
0.7.48 Dec 25, 2025

#4 in #retrom


Used in 3 crates (via retrom-service)

GPL-3.0 license

460KB
10K SLoC

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

Dependencies

~60–86MB
~1.5M SLoC