github librespot-org/librespot v0.7.0

latest releases: v0.8.0, v0.7.1
2 months ago

Changed

  • [core] MSRV is now 1.85 with Rust edition 2024 (breaking)
  • [core] AP connect and handshake have a combined 5 second timeout.
  • [core] stream_from_cdn now accepts the URL as TryInto<Uri> instead of CdnUrl (breaking)
  • [core] Add TLS backend selection with native-tls and rustls-tls options, defaulting to native-tls
  • [connect] Replaced has_volume_ctrl with disable_volume in ConnectConfig (breaking)
  • [connect] Changed initial_volume from Option<u16> to u16 in ConnectConfig (breaking)
  • [connect] Replaced SpircLoadCommand with LoadRequest, LoadRequestOptions and LoadContextOptions (breaking)
  • [connect] Moved all public items to the highest level (breaking)
  • [connect] Replaced Mercury usage in Spirc with Dealer
  • [metadata] Replaced AudioFileFormat with own enum. (breaking)
  • [playback] Changed trait Mixer::open to return Result<Self, Error> instead of Self (breaking)
  • [playback] Changed type alias MixerFn to return Result<Arc<dyn Mixer>, Error> instead of Arc<dyn Mixer> (breaking)
  • [playback] Optimize audio conversion to always dither at 16-bit level, and improve performance
  • [playback] Normalizer maintains better stereo imaging, while also being faster
  • [oauth] Remove loopback address requirement from redirect_uri when spawning callback handling server versus using stdin.

Added

  • [connect] Add command line parameter for setting volume steps.
  • [connect] Add support for seek_to, repeat_track and autoplay for Spirc loading
  • [connect] Add pause parameter to Spirc::disconnect method (breaking)
  • [connect] Add volume_steps to ConnectConfig (breaking)
  • [connect] Add and enforce rustdoc
  • [playback] Add track field to PlayerEvent::RepeatChanged (breaking)
  • [playback] Add PlayerEvent::PositionChanged event to notify about the current playback position
  • [core] Add request_with_options and request_with_protobuf_and_options to SpClient
  • [core] Add try_get_urls to CdnUrl
  • [oauth] Add OAuthClient and OAuthClientBuilder structs to achieve a more customizable login process

Fixed

  • [test] Missing bindgen breaks crossbuild on recent runners. Now installing latest bindgen in addition.
  • [core] Fix "no native root CA certificates found" on platforms unsupported
    by rustls-native-certs.
  • [core] Fix all APs rejecting with "TryAnotherAP" when connecting session
    on Android platform.
  • [core] Fix "Invalid Credentials" when using a Keymaster access token and
    client ID on Android platform.
  • [connect] Fix "play" command not handled if missing "offset" property
  • [discovery] Fix libmdns zerconf setup errors not propagating to the main task.
  • [metadata] Show::trailer_uri is now optional since it isn't always present (breaking)
  • [metadata] Fix incorrect parsing of audio format
  • [connect] Handle transfer of playback with empty "uri" field
  • [connect] Correctly apply playing/paused state when transferring playback
  • [player] Saturate invalid seek positions to track duration
  • [audio] Fall back to other URLs in case of a failure when downloading from CDN
  • [core] Metadata requests failing with 500 Internal Server Error
  • [player] Rodio backend did not honor audio output format request

Deprecated

  • [oauth] get_access_token() function marked for deprecation
  • [core] try_get_url() function marked for deprecation

Removed

  • [core] Removed get_canvases from SpClient (breaking)
  • [core] DeviceType homething removed due to crashes on Android (breaking)
  • [metadata] Removed genres from Album (breaking)
  • [metadata] Removed genre from Artists (breaking)

Don't miss a new librespot release

NewReleases is sending notifications on new releases.