Skip to content

Commit

Permalink
add integration and prop tests with detailed readme.md
Browse files Browse the repository at this point in the history
Signed-off-by: cormick <[email protected]>

fix readme.md
  • Loading branch information
CormickKneey committed Jan 15, 2025
1 parent d58862b commit d1d8ace
Show file tree
Hide file tree
Showing 9 changed files with 530 additions and 72 deletions.
145 changes: 145 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ bytes = "1"

[dev-dependencies]
criterion = "0.5"
proptest = "1.4"

[[bench]]
name = "vortex"
Expand Down
35 changes: 31 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,40 @@
[![LICENSE](https://img.shields.io/github/license/dragonflyoss/vortex.svg?style=flat-square)](https://github.com/dragonflyoss/vortex/blob/main/LICENSE)
[![Discussions](https://img.shields.io/badge/discussions-on%20github-blue?style=flat-square)](https://github.com/dragonflyoss/vortex/discussions)

Vortex is a peer-to-peer (P2P) file transfer protocol that utilizes the TLV (Tag-Length-Value) format for
efficient and flexible data transmission. This protocol is designed to provide reliable and scalable file
sharing capabilities.
## Introduction

Vortex 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.

### Key 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](docs/README.md.md).
For details, please see [the specification](docs/README.md).

## Benchmarking

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

```bash
# 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)

## LICENSE

Expand Down
Loading

0 comments on commit d1d8ace

Please sign in to comment.