A P2P file transfer protocol
Go to file
Gaius e9d510bdb9
chore: upgrade rust-toolchain to 1.85.0 (#27)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-24 01:13:28 +08:00
.github chore: upgrade rust-toolchain to 1.85.0 (#27) 2025-05-24 01:13:28 +08:00
benches chore: rename vortex to vortex-protocol 2025-04-16 21:51:45 +08:00
docs chore: rename vortex to vortex-protocol 2025-04-16 21:51:45 +08:00
src feat: support close tag for tlv (#23) 2025-04-14 20:12:00 +08:00
tests chore: rename vortex to vortex-protocol 2025-04-16 21:51:45 +08:00
.gitignore feat: init cargo (#1) 2025-01-10 17:45:06 +08:00
.markdownlint.yml chore: add github actions (#2) 2025-01-10 18:12:34 +08:00
.typos.toml chore: add github actions (#2) 2025-01-10 18:12:34 +08:00
Cargo.lock chore: rename vortex to vortex-protocol 2025-04-16 21:51:45 +08:00
Cargo.toml chore: rename vortex to vortex-protocol 2025-04-16 21:51:45 +08:00
LICENSE Initial commit 2025-01-10 12:16:28 +08:00
README.md chore: rename vortex to vortex-protocol 2025-04-16 21:51:45 +08:00
rust-toolchain.toml chore: upgrade rust-toolchain to 1.85.0 (#27) 2025-05-24 01:13:28 +08:00

README.md

Vortex Protocol

LICENSE Discussions

Introduction

Vortex protocol is a high-performance peer-to-peer (P2P) file transfer protocol implementation in Rust, designed as part of the Dragonfly project. It utilizes the TLV (Tag-Length-Value) format for efficient and flexible data transmission, making it ideal for large-scale file distribution scenarios.

Features

  • Efficient TLV Protocol: Optimized for fast serialization and deserialization of data packets.
  • Large File Support: Handles piece sizes up to 1 GiB and value fields up to 4 GiB.
  • Memory Safety: Built in Rust with zero-cost abstractions and memory safety guarantees.
  • High Performance: Designed for high-throughput file transfer scenarios.
  • Extensible Design: Reserved tags for future protocol extensions like compression and encryption.

Documentation

For details, please see the specification.

Benchmarking

Vortex protocol includes comprehensive benchmarks for packet creation, serialization, and deserialization:

# Run all benchmarks
cargo bench

# Run specific benchmark group
cargo bench "Vortex Packet Creation"

The benchmarks cover various packet sizes:

  • Small packets (32 bytes)
  • Medium packets (1 KB)
  • Large packets (1 MB)
  • Extra large packets (16 MB)