Skip to content

Latest commit

 

History

History
23 lines (16 loc) · 1.8 KB

File metadata and controls

23 lines (16 loc) · 1.8 KB

RecordBox

RecordBox is a mutable music library manager. It's designed to fill the gap with subsonic-type music players which never modify the underlying files and allow for the library to be tagged, standardized, and organized more effectively. It's built completely in Rust and supports statically-linked standalone compilation, so it can be dropped into any environment.

Currently, the frontend proof-of-concept is in an incomplete state. It cannot interact with most endpoints of the backend, but the framework is in place for the missing features. To get a full sense of the backend's capabilities, make requests to the endpoints defined in server.rs.

Building

This project uses the cargo package manager. The frontend must be built for wasm32-unknown-unknown, and the backend is designed to be built for x86_64-unknown-linux-musl. A working build chain can be reproduced from ci.yml. For development, a script is provided to run an unoptimized version.

You can download the latest linux release from the CI pipeline at https://nightly.link/MaxAPCS/recordbox/workflows/ci/main/artifact.zip.

Running

Configuration is required for the server, and an example is provided in config.example.yaml. Rename it to config.yaml, change the relevant options, and create the directory specified in library:. Environment variables are also parsed as config options, as specified in the comments.

Bibliography

Frameworks

  • axum: Web Framework
  • mp4ameta: Metadata Parser & Writer
  • image: Image Loading
  • wgpu: GPU Interface

Generative AI Use Disclosure

Generative AI assistance was used solely to locate relevant portions of code, and to fix specific bugs. The program architecture and most specifics were entirely written by hand.