plac-for-apple-platform

Unofficial Roon client for Apple devices

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
<!--
Copyright 2025 Shota FUJI

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SPDX-License-Identifier: Apache-2.0
-->

# Plac

Third-party [Roon](https://roon.app/) clients.

## [Plac for GTK4](./gtk-adwaita/)

GTK4 application implemented using GNOME widgets.
Best suited for Linux, but it also works on other systems where GTK4 and libadwaita are installed.

## [Plac for macOS](./macos/)

(WIP)

macOS native application.

## License

This project is licensed under [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).
This project contains asset files licensed under [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/legalcode.en).

Every file has [REUSE][reuse-license] annotation for copyright and license.

## Development

### Internal Packages

#### [Core](./core/)

Core logic available as C API, written in Zig.
This package provides clean API abstracting Roon API and networkings.

#### [CLI](./cli/)

Simple command line application for testing and profiling core API.
Internal only and not intended for real world uses.

### System Dependencies

This project has `flake.nix` for development environment setup.
To start development shell, run:

```
nix develop
```

To develop without [Nix](https://nixos.org/) [Flakes](https://wiki.nixos.org/wiki/Flakes), install required dependencies listed at `outputs > devShell > packages` section in `flake.nix`.

### Code Formatting

This project uses [dprint](https://dprint.dev/) as a code formatter frontend.
After installing system dependencies, you can format source code by:

```
dprint fmt
```

### License Checking

This project adheres to [REUSE][reuse-license] framework.
You can check files have valid REUSE annotations by:

```
reuse lint
```

[reuse-license]: https://reuse.software/