Back to MetaBrainz Foundation Inc
GSoC 2026

GraphQL Server as a Musicbrainz API Alternative

The MusicBrainz XML/JSON API makes you stack inc= parameters just to get related data, and looking up multiple entities of the same type in one request isn't possible at all. This project aims to build a GraphQL server in Rust to fix that properly. It covers five entity types: Artist, Release, Release Group, Recording, and Label with MBID based lookup including transparent redirect handling for merged entities, keyset cursor pagination, and field coverage matching the existing API: aliases, annotations, tags, genres, ratings, ISRCs, IPIs, and release tracklists through the correct Medium and Track chain. Artist credits are exposed as structured types rather than raw joins. DataLoaders batch database queries across all relationship resolvers to prevent N+1 problems. Depth and complexity limits reject expensive requests before they touch the database. Caching is only applied where load testing shows it actually helps, not speculatively. Deliverables include a working server with Docker setup, integration tests, a documented performance baseline, and API docs auto-generated via magidocs CLI.

Project details

Contributor

Sreehari Rathish

Mentors

Not available

Technologies

Not listed in the archive