#music #streaming #music-streaming #subsonic #rest

submarine

A library for connecting with a subsonic server

2 releases

new 0.1.1 Apr 27, 2025
0.1.0 Apr 27, 2025

#1 in #subsonic

MIT license

235KB
6K SLoC

This is a pure rust implementation for the subsonic API

API description of subsonic: http://www.subsonic.org/pages/api.jsp
xsd schema: http://www.subsonic.org/pages/inc/api/schema/subsonic-rest-api-1.16.1.xsd
This implements everything up to version v1.16.1.


Submarine

Submarine is a library for sending requests to a subsonic server for rust code. It implements everything for version v1.16.1.

There are other servers that implement more or less the same interface. Submarine strives to incorporate these differences.

Implemented differences so far

As implementations differ from the subsonic interface, others can specifically activated by turning on a feature like in the following example Cargo.toml:

# Cargo.toml
...
[dependencies]
submarine = { version = "0.1.0", features = ["navidrome"] }
...

Navidrome

The navidrome api can be seen here. The feature flag is called navidrome.

Dependencies

~6–18MB
~252K SLoC