Soulseek server implementation in D
Note that Soulfind exists for local testing, and should not be used in production.
Ensure the following dependencies are available:
ldc
,dmd
orgdc
for compilerdub
for build systemsqlite3
for database
You can download a compiler for Windows and macOS on dlang.org. The dub build system is included. On other systems, use a package manager to install the dependencies.
On Windows and macOS, the sqlite3 library shipped with the system is used. No separate sqlite3 installation is necessary.
On other systems, you must additionally install gcc
for linking.
To compile Soulfind, run:
dub build
To compile Soulfind with debug logging enabled:
dub build --debug=db --debug=msg --debug=user
To compile a static binary on supported systems (mainly musl-based Linux distributions), run:
dub build --config=static
Once compiled, binaries are available in the bin/
folder.
LDC is used as the default D compiler. Set the DC environment variable to use a different compiler:
DC=dmd dub build
DC=gdc dub build
Soulfind stores all its configuration in a SQLite database. On startup,
Soulfind will look for the file soulfind.db
by default, unless provided a
different path with the --database
flag.
The default config values are:
- port:
2242
- max_users:
65535
- motd:
Soulfind <version>
Server owners can configure the server and add admins with the soulsetup
utility.
Admins can interact with the server by sending commands in a private
chat with the server
user (help
to see all commands).
Important
If an owner adds a username to the admin list before the user has registered
a password, it is no longer possible to register through the Soulseek client.
Only an owner can register the user in the Registered users
section in the
soulsetup
utility.
- Rate limits
- Private rooms
- Distributed search network
Soulfind is free and open source software, released under the terms of the GNU General Public License v3.0 or later.
People who have contributed to Soulfind:
- seeschloss (creator)
- mathiascode
- slook
© 2005–2025 Soulfind Contributors