Enfin un FN que je peux suivre

Un système de filesharing simple en peer to peer et sans obligation de port forwarding

FriendNet is a self-hostable peer-to-peer file sharing system, similar to Soulseek or Direct Connect.

It uses a hub server to coordinate peer discovery and as a fallback relay if peers cannot connect to each other directly. The relay functionality provided by servers allows users who cannot open ports to participate, which sets FriendNet apart from other peer-to-peer file sharing systems.

The protocol is implemented with QUIC and Protocol Buffers. You can read the protocol documentation on GitHub.

Servers are made up of rooms, which function as logical hubs. Each room has its own accounts, forming the basis of FriendNet's system.

The FriendNet client and server are written in Go, and each expose a gRPC interface for controlling them.

The server's RPC interface can be accessed with a CLI or through any custom interface that understands its gRPC schema.

The client is implemented as a backend application, where a frontend controls it through its gRPC interface. The default frontend is a web UI. The decision to use a web UI instead of using a native toolkit like GTK was made for pragmatic reasons. Many file sharing clients, such as Transmission provide a web UI to control a headless client running on a home lab server or a seedbox, but others require separate clients for this functionality.

The file sharing system FriendNet was largely based on, Soulseek, has several clients, but most of them do not provide a web UI. To run a Soulseek client headless on a server, you need a separate client, slskd. FriendNet uses a web UI by default, removing the need for a separate client.

While a native UI does not currently exist, creating one is possible using the client gRPC interface, without the need to build a completely new implementation.

Proposition de projet
Dernière modification : il y a 6 jours, 8 heures
Mainteneur : LVBCKN
Participant : Astramast
Je veux participer !



Tâches

Commentaires