A high performance
peer-to-peer hub for ADC

uhub's low memory footprint lets it handle several thousand users on high-end servers, or run a small private hub on embedded hardware.

What is uhub?

A hub server for the ADC peer-to-peer network. It proxies chat and file-search traffic between connected clients, and is compatible with DC++, AirDC++, QuickDC and other ADC clients. New to the protocol? Start with what ADC is.

Small and fast

A single-threaded, event-driven core with very low memory usage — thousands of users on one server, or a private hub on embedded hardware.

🌐

IPv4 & IPv6

Full dual-stack networking. The hub auto-detects and prefers IPv6 where it is available.

📖

Free & open source

Licensed under the GPL v3 and developed in the open on GitHub — contributions are welcome.

Running a hub

A single, well-documented configuration file gets a hub up in minutes — and there is room to grow when it fills up.

🔒

Encrypted connections

Serve adcs:// with your own certificates. TLS 1.2 and 1.3, on OpenSSL or LibreSSL — see the TLS guide.

🛡️

Access control & moderation

Registered accounts and operators, nick and CID bans carrying a reason and an expiry, IP/CIDR deny rules, and configurable flood thresholds.

📊

Monitoring

A built-in Prometheus endpoint on the hub's own port, covering users, traffic, connections and event-loop latency.

🔗

Linking & scaling

Federate hubs across machines into one logical hub, or run a single hub across every CPU core as linked worker processes.

Extending uhub

Hub behaviour is driven by plug-ins that hook into events — logins, chat, searches, transfers — and can allow, deny or act on each one.

🧩

Bundled plug-ins

Authentication, logging, chat history, welcome messages, topic commands, flood action and more — load what you need.

📜

Scripting in JavaScript

Write hub logic as sandboxed JavaScript — no compiler, no ABI to match, and no filesystem or network access from a script.

🔌

C plug-in API

For storage backends and hot paths, the C API gives a plug-in the full hub surface, including its own user commands.