libretro / libretro/libretro-database

Compress RDB files

Open
#1,499 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.4k
Forks
877
Avg merge
3d 1h
Merged PRs (30d)
24

Description

I would like to propose that libretro consider compressing the RDB files. This would require support in libretro to read this format but that should be relatively straightforward. This would be useful for the following reasons:

  • It reduces the database size from 117.0 MiB to 34.6 MiB (3.4x reduction) using gzip
  • Highly compressible since they contain a lot of duplicate strings and numbers.
  • It shrinks the size of the release artifacts for every downstream system (retroarch, batocera, retrobat, rocknix, etc.)
  • They're already not editable plaintext so might as well store them as efficiently as possible.
  • They're copied to handhelds where storage is a premium that can be used for games or the OS.
  • It would reduce the size of the git checkout of this repo.
  • Might improve performance slightly since it reduces the amount of data to read and storage not compute is usually the bottleneck

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the RDB files and how libretro and downstream systems currently read them. Define the compressed format, compatibility requirements, and release-artifact changes; the work is done when compressed RDB files are supported without breaking existing consumers and the size reduction is verified.

Written by the indexing model from the issue text.

Assessment

Domain
database
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.