Git Product home page Git Product logo

musicbrainz_rust's Introduction

MusicBrainz-Rust

The aim of this project is to provide an ergonomic client for the MusicBrainz music database. Specifically this is a client for the version 2 of the MusicBrainz XML web service.

Status

The library is an early stage so no stability guarantees are made yet. Especially testing and documentation will require more work before a proper release.

musicbrainz_rust's People

Contributors

leoschwarz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

fat84 jaccarmac

musicbrainz_rust's Issues

Improve Testing

  • Setup HTTP mocking for in-tree client tests.
  • Automatic test generation to try deserializing random elements from the MusicBrainz database and find potential errors in our deserialization code more easily.

Better support for querying entity relationships

Currently only a select number of them is hard coded when fetching an entity, however to be really useful, there should be a way to query other relationships too. The API for this is not really written yet.

Define all search fields

This is mostly a boring data entry job, so if it's only done for the most relevant types for searching, I guess this would be fine also.
See the file src/search/fields.rs for more information.

Consider ergonomics of the search builder API not being generic over the queried entity

Due to limitations in generics I decided to go with the current approach since it allows for a type safe API preventing one to add fields to a query which are not available, however this has the caveat that a different method has to be called depending on the entity that is to be queried, which might make some API using code more ugly than it had to be.

(The alternative would probably involve code generation using macros, so it's questionable whether it's really worth it.)

Easy to use but more sophisticated query builder

The current query builder only links everything together using AND. Lucene syntax allows to group together things using brackets, so we might want a query builder which allows (in a type-safe way) to specify AND / OR with proper precedence and user defined groups ("brackets").

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.