Files
ncspot/Cargo.toml
Henrik Friedrichsen ec4b7c209a Create IPC socket on UNIX platforms (#1018)
* Create IPC socket on UNIX platforms

Creates an IPC socket which remote programs/scripts can connect to. This
can be used to control ncspot or fetch the current playback status.

At the moment, only remote control is implemented. Next step is to send
the current player status as a JSON object.

Fixes #524

* Publish status changes to connected sockets

Whenever the playback mode (playing, paused, stopped) or the track changes, all
socket listeners will be notified.

Fixes #924, fixes #1019

* Document IPC feature
2022-12-28 19:01:59 +01:00

101 lines
3.2 KiB
TOML

[package]
authors = ["Henrik Friedrichsen <henrik@affekt.org>"]
description = "ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes."
edition = "2021"
exclude = ["images/**"]
keywords = ["spotify", "ncurses", "librespot", "terminal"]
license = "BSD-2-Clause"
name = "ncspot"
readme = "README.md"
repository = "https://github.com/hrkfdn/ncspot"
version = "0.11.2"
[badges]
maintenance = {status = "actively-developed"}
[dependencies]
chrono = "0.4"
clap = "4.0.0"
clipboard = {version = "0.5", optional = true}
crossbeam-channel = "0.5"
dbus = {version = "0.9.6", optional = true}
dbus-tree = {version = "0.9.2", optional = true}
fern = "0.6"
futures = "0.3"
ioctl-rs = {version = "0.2", optional = true}
lazy_static = "1.3.0"
libc = "0.2.131"
librespot-core = "0.4.2"
librespot-playback = "0.4.2"
librespot-protocol = "0.4.2"
log = "0.4.16"
pancurses = {version = "0.17.0", optional = true}
parse_duration = "2.1.1"
platform-dirs = "0.3.0"
rand = "0.8"
regex = "1"
reqwest = {version = "0.11", features = ["blocking", "json"]}
serde = "1.0"
serde_cbor = "0.11.2"
serde_json = "1.0"
strum = "0.24.1"
strum_macros = "0.24.3"
tokio = {version = "1", features = ["rt-multi-thread", "sync", "time", "net"]}
tokio-util = {version = "0.7.4", features = ["codec"]}
tokio-stream = {version = "0.1.11", features = ["sync"]}
toml = "0.5"
unicode-width = "0.1.9"
url = "2.2"
cursive_buffered_backend = "0.6.1"
[target.'cfg(target_os = "linux")'.dependencies]
wl-clipboard-rs = {version = "0.7", optional = true}
[target.'cfg(unix)'.dependencies]
signal-hook = "0.3.0"
[dependencies.rspotify]
default-features = false
features = ["client-ureq", "ureq-rustls-tls"]
version = "0.11.5"
[dependencies.cursive]
default-features = false
version = "0.20.0"
[dependencies.notify-rust]
default-features = false
version = "4"
# Use dbus, which we already depend on, instead of zbus.
features = ["d"]
optional = true
[features]
alsa_backend = ["librespot-playback/alsa-backend"]
cover = ["ioctl-rs"] # Support displaying the album cover
default = ["share_clipboard", "pulseaudio_backend", "mpris", "notify", "termion_backend"]
mpris = ["dbus", "dbus-tree"] # Allow ncspot to be controlled via MPRIS API
notify = ["notify-rust"] # Show what's playing via a notification
pancurses_backend = ["cursive/pancurses-backend", "pancurses/win32"]
portaudio_backend = ["librespot-playback/portaudio-backend"]
pulseaudio_backend = ["librespot-playback/pulseaudio-backend"]
rodio_backend = ["librespot-playback/rodio-backend"]
share_clipboard = ["clipboard", "wl-clipboard-rs"] # Share a link to the system clipboard
share_selection = ["clipboard", "wl-clipboard-rs"] # Use the primary selection for sharing - linux and bsd only
termion_backend = ["cursive/termion-backend"]
[package.metadata.deb]
assets = [
["target/release/ncspot", "usr/bin/", "755"],
["misc/ncspot.desktop", "usr/share/applications/", "644"],
["images/logo.svg", "usr/share/icons/hicolor/scalable/apps/ncspot.svg", "644"],
["README.md", "usr/share/doc/ncspot/README.md", "644"],
]
depends = "$auto, pulseaudio"
extended-description = """\
ncurses Spotify client written in Rust using librespot. \
It is heavily inspired by ncurses MPD clients, such as ncmpc."""
license-file = ["LICENSE"]
priority = "optional"
section = "sound"