Hi Syncthing Team,
We are currently exploring the possibility of having our client software make use of Syncthing server components (relay servers, discovery servers). Specifically, this concerns the German AusweisApp, which does not implement the Block Exchange Protocol, but would like to leverage the relay server functionality to enable its “Smartphone as Card Reader” feature [1].
In the past, we submitted pull requests [2][3] aiming to allow different types of client software to interact with these servers without interfering with each other.
We would like to understand your perspective on reusing Syncthing server software for other clients. Our preferred approach would be to contribute any necessary changes upstream and potentially run our own discovery and relay servers. This would allow a strict separation between different types of clients, maintaining the intended usage patterns of the server components.
Without such separation, there is a risk that different types of clients could use servers intended for other purposes. While this might technically work, it would mean that the AusweisApp could potentially use all public relay servers.
Could you share your opinion on this matter and any guidance on how you would prefer external clients to interact with Syncthing server components?
Thank you very much for your time and input.
Best regards
[1] BSI - Bundesamt für Sicherheit in der Informationstechnik - Ergänzung zu BSI TR-03112 Teil 6 eCard-API-Framework - IFD Service, Version 1.1 [2] Add support for custom ALPN by misery · Pull Request #9529 · syncthing/syncthing · GitHub [3] Use config.NextProtos instead of hardcoded value by misery · Pull Request #9667 · syncthing/syncthing · GitHub