dlna-dmr

Crates.iodlna-dmr
lib.rsdlna-dmr
version0.1.3
created_at2025-05-29 10:21:39.171278+00
updated_at2025-06-08 12:13:24.723272+00
descriptionAn extensible DLNA DMR (Digital Media Renderer) implementation
homepage
repositoryhttps://github.com/PRO-2684/dlna-dmr
max_upload_size
id1693659
size117,649
PRO (PRO-2684)

documentation

README

dlna-dmr

GitHub License GitHub Workflow Status GitHub Release GitHub Downloads (all assets, all releases) Crates.io Version Crates.io Total Downloads docs.rs

An extensible DLNA DMR (Digital Media Renderer) implementation.

🤔 Cli or Lib?

The dlna-dmr cli itself is a dummy DMR that only logs the received commands, without actually doing anything with them. It is perfect for debugging purposes, but to build a real DMR, refer to the library documentation.

📥 Installation

Using binstall

cargo binstall dlna-dmr

Downloading from Releases

Navigate to the Releases page and download respective binary for your platform. Make sure to give it execute permissions.

Compiling from Source

cargo install dlna-dmr

📖 Usage

To run the dummy DMR, simply execute the following command in your terminal:

$ dlna-dmr
[2025-05-30T14:49:48Z INFO  dlna_dmr] DMR started
[2025-05-30T14:49:48Z INFO  dlna_dmr::ssdp] SSDP server running on 172.31.117.144:1900
[2025-05-30T14:49:48Z INFO  dlna_dmr::http] HTTP server listening on 172.31.117.144:8080
[2025-05-30T14:50:11Z INFO  dlna_dmr::http] RenderingControl::SetMute channel: Master, desired_mute: false
[2025-05-30T14:50:38Z INFO  dlna_dmr::http] AVTransport::SetAvTransportUri current_uri: http://example.com/sample.mp4?param1=a&param2=b
^C
[2025-05-30T14:50:46Z INFO  dlna_dmr::http] HTTP server stopped
[2025-05-30T14:50:46Z INFO  dlna_dmr::ssdp] SSDP server stopped
[2025-05-30T14:50:46Z INFO  dlna_dmr] DMR stopped

To configure, simply pass in a path to a configuration file:

dlna-dmr path/to/config.toml

For more information on configuration options, see the documentation for DMROptions.

✅ TODO

  • Actual XML parsing
  • Config file
  • "Heartbeat" - send periodic alive messages to the network
  • Removing the 'static requirement
  • Command line arguments parsing
  • Testing HTTP server via TestRequest
Commit count: 45

cargo fmt