Vortex: A High-Performance Rust BitTorrent Client for Linux

A hands-on exploration of Vortex, a high-performance Rust BitTorrent client built on io_uring. Join me as I install it, test it with a real torrent, and discover what makes it unique in the BitTorrent ecosystem. This is a practical learning journey—complete with actual commands, outputs, and real-world performance results from downloading a 1.5 GB ISO in just 63 seconds.

Jose Celano - 13/02/2026
Vortex: A High-Performance Rust BitTorrent Client for Linux

Introduction

The BitTorrent ecosystem is constantly evolving, and I'm always excited to discover new projects that push the boundaries of what's possible. When I came across Vortex, a Rust-based BitTorrent client built on io_uring that claims to be 3x faster than Transmission, I knew I had to try it.

As someone deeply interested in the BitTorrent ecosystem—through the Torrust project and beyond—I wanted to understand how Vortex works, what makes it different, and share my findings with others who are curious about modern BitTorrent implementations. This is a hands-on exploration where I install Vortex, test it with a real torrent from the Torrust Demo Index, and document everything I learn along the way.

This is a real, hands-on testing session. You'll see the actual commands I ran, their outputs, any issues I encountered, and how I solved them. The goal is to learn together and share knowledge about innovative projects in the BitTorrent space.

What is Vortex?

Vortex is an extremely fast, pure io_uring based BitTorrent library and client built from the ground up for modern Linux systems. Unlike traditional BitTorrent clients that rely on epoll for I/O, Vortex uses io_uring—the next-generation Linux I/O API—to achieve exceptional throughput with minimal overhead.

Key characteristics:

  • Repo: https://github.com/Nehliin/vortex
  • Author: Oskar Nehlin
  • Stars: Growing community interest.
  • License: BSD-3-Clause
  • Language: Rust
  • Current Status: BETA
  • Latest Releases:
    • vortex-bittorrent: v0.4.0 (January 25, 2026)
    • vortex-cli: v0.3.0 (January 25, 2026)
Vortex requires Linux Kernel 6.1 or newer due to its reliance on modern io_uring features. This is a conscious design decision to optimize for cutting-edge performance rather than broad compatibility.

Overview

Vortex represents a fundamental rethinking of how BitTorrent clients should be built. By embracing modern Linux kernel features and rejecting backward compatibility constraints, Vortex achieves performance levels that traditional clients cannot match.

The project is designed for users who prioritize speed and efficiency over universal platform support, making it ideal for server deployments, high-performance workstations, and enthusiasts who run modern Linux distributions.

Key Features

vortex-cli (TUI Client)

  • Fully Trackerless: All peer discovery via DHT (mainline)
  • TUI Interface: Terminal-based UI built with Ratatui
  • Real-time Metrics: Live graphs showing download/upload throughput
  • Metadata Download: Support for downloading from info-hash alone
  • Seeding Support: Continues seeding after download completion
  • XDG Directory Support: Follows Linux standards for config/data paths

vortex-bittorrent (Library)

  • io_uring Based: Zero-copy I/O with minimal syscall overhead
  • Custom Event Loop: No async runtime overhead
  • Parallel Hash Computation: Offloaded to thread pool
  • "Lockless" Design: Single I/O thread, leveraging Rust lifetimes
  • SSD/NVMe Optimized: No HDD head optimization overhead
  • Metrics Support: Integration with the metrics crate
  • Well Tested: Unit, integration, and fuzz tests

BitTorrent Enhancement Proposals (BEP) Support

Vortex implements many core BitTorrent protocols:

  • BEP 3: The BitTorrent Protocol Specification ✓
  • BEP 6: Fast Extension ✓
  • BEP 9: Extension for Peers to Send Metadata Files ✓
  • BEP 10: Extension Protocol ✓
  • BEP 20: Peer ID Conventions ✓
  • BEP 21: Extension for Partial Seeds ✓

Notable omissions include tracker support (BEP 7, 12), PEX (BEP 11), uTP (BEP 29), and BitTorrent v2 (BEP 52). These are intentional design decisions to keep the BETA release focused.

Step 1: Checking System Requirements

Before installing any software, it's important to verify your system meets the requirements. Vortex is picky—it only works on modern Linux systems.

Kernel Version

First, check your kernel version:

bash
uname -r

My system output:

console
6.17.0-14-generic

Result: My kernel is 6.17.0, which is well above the 6.1 minimum requirement. If your kernel is older than 6.1, you'll need to upgrade before Vortex will work.

Rust Installation

Vortex is distributed via cargo, so you need Rust installed:

bash
cargo --version

My output:

console
cargo 1.95.0-nightly (ce69df6f7 2026-02-12)

✅ I already had Rust installed. If you don't have it, install from https://rustup.rs.

Step 2: Installing Vortex

Now for the installation. Vortex can be installed from crates.io, which is the easiest method:

bash
cargo install --locked vortex-cli

What this command does:

  • Downloads the source code from crates.io
  • Compiles it for your specific system (this takes 2-5 minutes)
  • Installs the binary to ~/.cargo/bin/vortex-cli
  • The --locked flag uses exact dependency versions tested by the author

I ran the installation command, and after compilation finished, I verified it was ready:

bash
vortex-cli --version
console
vortex-cli 0.3.1

Success! Vortex 0.3.1 is installed and ready to use.

Step 3: Getting a Test Torrent

For this test, I'm using the Arch Linux ISO from the Torrust Demo Index. This is a legitimate, legal torrent that's perfect for testing—it's about 1.5 GB, well-seeded, and represents a real-world use case.

Torrent Details:

  • Name: Arch Linux 2026.02.01 x86_64 ISO
  • Torrust Index Link: archlinux-20260201-x86-64iso
  • Info Hash: 8e3f4283d1c8360d2f18544a8b166813086675a1
  • Size: 1.5 GB

Starting the Download

One of Vortex's most powerful features is its ability to download torrents using just the info hash, without needing a .torrent file. It discovers peers via DHT (Distributed Hash Table), retrieves the metadata, and starts downloading:

bash
vortex-cli --info-hash 8e3f4283d1c8360d2f18544a8b166813086675a1 -d ./downloads

What this command does:

  • Uses only the info hash (no .torrent file needed)
  • Discovers peers via DHT (Distributed Hash Table)
  • Downloads the torrent metadata from peers
  • Starts downloading the actual file
  • Shows a real-time TUI with graphs and statistics

Alternative: Using a .torrent File

While DHT-only downloads are convenient, Vortex also supports traditional .torrent files. You can download the torrent file from the Torrust Demo Index:

bash
mkdir -p ~/vortex-test && cd ~/vortex-test
wget -O archlinux-2026.02.01.torrent "https://index.torrust-demo.com/api/v1/torrent/download/8e3f4283d1c8360d2f18544a8b166813086675a1"

Then start the download with the torrent file:

bash
vortex-cli -t archlinux-2026.02.01.torrent -d ./downloads

Benefits of using a .torrent file:

  • Contains tracker URLs for faster peer discovery
  • Includes metadata, so no DHT lookup needed
  • Can work in environments where DHT is blocked
  • Standard method compatible with all BitTorrent clients

Step 4: Download Results

The TUI Experience

Vortex's TUI (Terminal User Interface) immediately impressed me. Within seconds of starting, I saw:

  • Real-time throughput graphs showing download and upload speeds
  • Progress bar showing download completion
  • Peer count and connection information
  • Live updates without terminal flicker or performance issues
Vortex TUI showing real-time download progress with throughput graphs and peer information

The interface is clean, informative, and doesn't get in the way of the actual downloading.

Performance Metrics

Here's what I observed during the download:

  • File Size: 1.5 GB
  • Initial Peer Discovery: Nearly instant via DHT
  • Metadata Download: Completed within seconds
  • Download Speed: Consistently high, fully saturating my fiber connection
  • Download Completion: Very fast, completed in just over a minute
  • Final Status: Automatically switched to seeding mode
Performance Verdict: Vortex handled the 1.5 GB download smoothly and quickly. The DHT peer discovery was remarkably fast—no tracker needed! The download speeds maxed out my available bandwidth, showing that Vortex can fully utilize high-speed connections.

File Verification

After the download completed, I verified the file:

bash
ls -lh downloads/archlinux-2026.02.01-x86_64.iso/
file downloads/archlinux-2026.02.01-x86_64.iso/archlinux-2026.02.01-x86_64.iso
console
total 1.5G
-rw-rw-r-- 1 josecelano josecelano 1.5G Feb 13 13:54 archlinux-2026.02.01-x86_64.iso

archlinux-2026.02.01-x86_64.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'ARCH_202602' (bootable)

Verification Success: The file is a valid ISO 9660 filesystem, correctly identified as an Arch Linux bootable ISO. The download was successful and the file is intact.

Key Observations and Findings

What Worked Really Well

  • DHT Peer Discovery: Found peers almost instantly without any tracker—truly impressive
  • Download Speed: Maxed out my connection with peak speeds near 60 MB/s
  • TUI Interface: Clean, informative, and responsive even at high speeds
  • Automatic Seeding: Seamlessly transitioned to seeding after download completed
  • No Configuration Needed: Worked perfectly with zero config files or tweaking
  • Resources Usage: Minimal CPU and memory usage throughout the download

Minor Quirks

  • Download Directory Structure: Vortex creates a directory named after the torrent and places the file inside it, rather than just saving the ISO directly. This makes sense for multi-file torrents, but for single-file torrents it adds an extra directory level.
  • No Pause/Resume: As documented, you can't pause and resume downloads yet (Issue #92). Once you start, you're committed until it finishes.
  • Seeding Exit: Had to manually quit (Ctrl+C) to stop seeding—no automatic shutdown after a certain ratio or time period.

These are all minor issues, and most are documented as planned features or deliberate design choices.

Comparison Context

The author claims Vortex is ~3x faster than transmission-cli (4.0.6). In my test, I was limited by my network bandwidth rather than the client, so I couldn't verify the performance multiplier. However, the fact that Vortex fully saturated my connection while using minimal resources is impressive in itself.

For users on faster connections (10 Gbps+) or in data center environments, the io_uring-based architecture would likely show even more significant performance advantages.

Final Verdict

Vortex delivers on its core promise: exceptional BitTorrent performance on modern Linux systems. In my hands-on test, it successfully downloaded a 1.5 GB ISO in just over a minute, maxing out my network connection with peak speeds near 60 MB/s. The DHT-only approach worked flawlessly— peers were discovered instantly and the download started without any trackers.

The TUI is clean and informative, providing real-time metrics without getting in the way. Resource usage was minimal throughout—Vortex is clearly well-optimized. The automatic transition to seeding after download completion shows thoughtful UX design.

Yes, it's BETA software. Yes, it lacks features like pause/resume. Yes, it's Linux-only. But within its design constraints, Vortex is exceptional. It's a focused tool that does one thing really well: download torrents fast on modern Linux systems.

Real-World Performance: Successfully downloaded 1.5 GB quickly with consistently high speeds and full bandwidth saturation. Minimal CPU/RAM usage throughout. DHT peer discovery took only seconds.

The project is actively developed, the codebase is clean, and the BSD-3-Clause license is permissive. I'll be watching Vortex's development with interest, and I recommend giving it a try if you match the target audience.

Bottom Line: If you're on Linux 6.1+ and want the fastest BitTorrent client available, try Vortex. It's BETA, but it works impressively well. Just don't expect a feature-complete replacement for traditional clients—yet.

What I Learned About the BitTorrent Ecosystem

Testing Vortex reinforced something I already believed: the BitTorrent ecosystem is healthier when we have diverse implementations with different goals and trade-offs. Vortex makes bold architectural decisions—Linux-only, io_uring-based, DHT-only—that allow it to excel in its niche. That's valuable.

Projects like Vortex, Torrust, Transmission, qBittorrent, and others serve different needs and push the technology forward in different ways. Some prioritize cross-platform compatibility, others focus on features, and some (like Vortex) optimize relentlessly for performance on modern hardware. All of these approaches contribute to a robust ecosystem.

If you're interested in BitTorrent technology—whether as a user, developer, or just someone curious about decentralized systems—I encourage you to explore different implementations. Each one teaches you something new about protocol design, performance optimization, and the various ways to solve the same fundamental problem.

Vortex is a great example of what's possible when you embrace modern technology and make focused design decisions. I'm excited to see where the project goes, and I hope this hands-on exploration helps others discover and learn from it too.