A self-hostable soulseek client.
This is still a WORK IN PROGESS and not usable yet.
Make sure port 2255 is open and transfered to your machine ip, peer can attempt direct connection to your vessel instance.
RUST_LOG=debug cargo run
If you want to log a specific module please refer to https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html
cd vessel_web
npm install
npm run dev
-
soulseek_protocol : This crate provide serializaion and deserialisation for soulssek TCP message.
-
vessel_sse : Dispatch message from soulseek to the web client. Messages are sent in json format with the following content :
{ "UserJoinedRoom": { // message type // content ... "room": "ARGENTINA", "username": "vessel", "status": 2, "avgspeed": 0, "downloadnum": 0, "files": 0, "dirs": 0, "slotsfree": 0, "countrycode": "FR" } }
For a list of available messages run the following command :
cargo doc --workspace cargo doc --open
And browse to
soulseek_protocol/server.server::messages/request/enum.ServerRequest.html
-
vessel_server : The main process :
- Initiate logging
- Spawn TCP listeners (Soulseek server + outgoing/incoming distributed connections).
- Spawn HTTP and SSE task.
- Send login credentials to soulseek after every process has started.
-
REST api endpoints to communicate with the server, note that these endpoints are "write only". most of them will answer with 202/Accepted, response will be later send via server sent event.
-
A web application, sending request via HTTP and getting response asynchronously via SSE.
(ip.src == 192.168.0.17 && ip.dst==208.76.170.59) && tcp.port == 2242 && tcp && tcp.analysis.push_bytes_sent
- Start slsk_dump
cargo build
sudo ./target/debug/slsk_dump
- Run nicotine or another soulseek client to produce the desired messages